Lulucat

మూడు హైలైటర్ జ్యామితి ఇంజిన్లను స్టాంప్‌లతో ఎందుకు మార్చాం

Gaoge ZhangGaoge Zhang

నిజమైన Apple Pencil డేటా కృత్రిమ పరీక్షలు గుర్తించని లోపాలను బయటపెట్టింది; Lulucat Notes మూడు అవుట్‌లైన్ ఇంజిన్ల నుంచి MaLiang స్టాంప్ మోడల్‌కు మారింది.

నవీకరించబడింది

Lulucat Notes ఒక సాంప్రదాయ హైలైటర్ రెండరర్‌తో ప్రారంభమైంది: నమూనాలు తీసుకున్న పాత్ చుట్టూ జ్యామితీయ అవుట్‌లైన్‌ను నిర్మించి, ఆ అవుట్‌లైన్‌ను అర్ధపారదర్శక రంగుతో ఒక్కసారి ఫిల్ చేయడం. ఒక్కసారి ఫిల్ చేయడం వల్ల అర్ధపారదర్శక భాగాలు ఒకదానిపై మరొకటి పడిన చోట కనిపించే ముదురు పట్టీలు రావు. అదే సమయంలో ప్రతి జాయిన్, స్వీయ-ఖండన, క్యాప్, చిన్న స్ట్రోక్‌ను ఒకే జ్యామితి సమస్యలోకి తెస్తుంది.

కస్టమ్ జ్యామితి యొక్క మూడు తరాలు ఒక్కొక్కటి ఒక రకం లోపాన్ని తొలగించి, మరొకదాన్ని బయటపెట్టాయి. మేము ఇప్పుడు విడుదల చేస్తున్న రెండరర్ MaLiang ఆధారంగా మృదువైన వృత్తాకార స్టాంప్‌లను ఉపయోగిస్తుంది. MaLiang Harley-xk రూపొందించిన MIT లైసెన్స్‌డ్ ఓపెన్-సోర్స్ డ్రాయింగ్ ఫ్రేమ్‌వర్క్. అవుట్‌లైన్ వైఫల్యాల ఒక పూర్తి వర్గాన్ని తొలగించడానికి బదులుగా, ముదురు స్వీయ-ఖండనలు మరియు ప్రెజర్‌తో టేపర్ అయ్యే చివరలను మేము అంగీకరించాం.

iPadలో పట్టుకున్న నీలి హైలైటర్ చేతిరాత; అనేక స్ట్రోక్‌ల మొదలు, చివరల్లో పలుచని హుక్స్ కనిపిస్తున్నాయి.

228% జూమ్‌లో ఉన్న అసలు డివైస్ స్క్రీన్‌షాట్. అనేక స్ట్రోక్‌ల రెండు చివరల్లోనూ చిన్న హుక్స్ కనిపిస్తాయి.

సింథటిక్ సన్నివేశాల్లో కనిపించని హుక్స్‌ను నిజమైన చేతిరాత సృష్టించింది

మా సింథటిక్ సన్నివేశాల్లో నేరుగా వెళ్లే గీతలు, ఆర్క్‌లు, చిన్న ట్యాప్‌లు, వెనక్కి వెళ్లే కదలికలు, ప్రెజర్ మార్పులు, పదునైన మలుపులు ఉన్నాయి; ఇవన్నీ శుభ్రంగా రెండర్ అయ్యాయి. నిజమైన చైనీస్ చేతిరాత అనేక స్ట్రోక్‌ల మొదలు, చివరల్లో సుమారు 1–3 పాయింట్ల పొడవైన హుక్స్‌ను సృష్టించింది.

అందుకే యాప్‌లో సేవ్ బటన్‌ను జోడించి, 29 పూర్తి స్ట్రోక్‌లను రికార్డ్ చేశాం. ప్రతి నమూనాలో దాని స్థానం, వ్యాసార్థం, ప్రెజర్, అజిముత్, ఆల్టిట్యూడ్, టైమ్‌స్టాంప్, UIKit అంచనా ఫ్లాగ్‌లు అన్నీ అలాగే నిలిచాయి. ఒక ఆఫ్‌లైన్ ప్రోగ్రామ్ ఆ JSONను డీకోడ్ చేసి, యాప్ ఉపయోగించే అదే Stroke.swift, StrokeRenderer.swift, HighlighterStrokeBuilder.swift ఫైళ్లను కంపైల్ చేసింది. దాని అవుట్‌పుట్ హుక్స్‌తో సహా డివైస్ స్క్రీన్‌షాట్‌లోని ప్రతి స్ట్రోక్‌తో సరిపోయింది.

రికార్డ్ చేసిన ఇన్‌పుట్ ఒక్కటితోనే ఆఫ్‌లైన్ రెండరర్ లోపాన్ని పునరుత్పత్తి చేయగలిగింది కాబట్టి, కారణం డిస్‌ప్లే ప్రవర్తనలో కాకుండా నమూనాలు మరియు జ్యామితిలోనే ఉందని తేలింది. ఇప్పుడు రెండరర్‌లోకి వెళ్లిన ఖచ్చితమైన నమూనాలను చదవగలిగాం.

మొదట టచ్‌డౌన్, లిఫ్ట్-ఆఫ్ సమయంలో అంచనా వేసిన Pencil దిశాభిముఖతను కారణంగా భావించాం. డేటా దాన్ని తిరస్కరించింది. మొత్తం 29 స్ట్రోక్‌లలో, మొదటి మరియు చివరి ఎనిమిది నమూనాల పరిధిలో అజిముత్ మార్పు గరిష్ఠంగా 0.09 రేడియన్లు, ఆల్టిట్యూడ్ మార్పు గరిష్ఠంగా 0.02 రేడియన్లు మాత్రమే; ఆ iPadలో ప్రతి అంచనా ఫ్లాగ్ కూడా falseగానే ఉంది. ప్రెజర్, దిశలు తీవ్రంగా మారుతున్నప్పటికీ దిశాభిముఖత స్థిరంగా ఉంది.

డేటాలోని స్పష్టమైన ఖాళీ నుంచి ప్రెజర్ ఫ్లోర్ వచ్చింది

రికార్డ్ చేసిన ప్రతి స్ట్రోక్‌లోని చివరి నమూనా ప్రెజర్ 0.000గా ఉంది. రాస్తున్నప్పుడు తీసిన నమూనాలు 0.01 లేదా అంతకంటే ఎక్కువగా ఉండగా, Pencil ఉపరితలాన్ని విడిచిన తర్వాత రికార్డ్ చేసిన నమూనాలు 0.002 లేదా అంతకంటే తక్కువగా ఉన్నాయి. ఆ గాల్లో ఉన్న నమూనాలు తరచూ మరో 2–7 పాయింట్ల వరకు కొనసాగి, 0.8–9.0 పాయింట్లు ప్రయాణించాయి; వాటి దిశ రాసిన స్ట్రోక్‌కు దూరంగా సుమారు 90 డిగ్రీలు తిరగగలిగింది.

స్ట్రోక్ 2 ఈ విధానాన్ని చూపిస్తుంది. దాని శరీరం 143 నుంచి 180 డిగ్రీల మధ్య ముగిసింది. ఆ తర్వాత తక్కువ-ప్రెజర్ తోక −90 నుంచి −67 డిగ్రీలకు తిరిగి, మరో 8.5 పాయింట్లు ప్రయాణించింది. అవుట్‌లైన్ రెండరర్ చివరి గాల్లో ఉన్న పాయింట్‌ను తుది endpointగా పరిగణించింది; అందువల్ల ఆ పాయింట్ వైపు సన్నని జ్యామితి ముక్కను పొడిగించింది.

కొలిచిన ప్రెజర్ విలువలు రాస్తున్న కదలికకు, గాల్లోని కదలికకు మధ్య దాదాపు ఒక ఆర్డర్ ఆఫ్ మ్యాగ్నిట్యూడ్ ఖాళీని చూపించాయి. అందుకే ఆ ఖాళీలోనే కట్‌ఆఫ్ పరిమితిని పెట్టాం:

private static let pressureFloor: CGFloat = 0.005

రెండు చివర్లలోని తక్కువ-ప్రెజర్ నమూనాలు మాత్రమే తొలగుతాయి. స్ట్రోక్ మధ్యలోని తక్కువ-ప్రెజర్ నమూనా దానిలోనే ఉంటుంది. ఈ నియమం కొలిచిన ఈవెంట్ సరిహద్దును అనుసరిస్తుంది, రాసిన పాత్‌ను మార్చదు.

ట్రిమ్ చేయడానికి ముందు ఇన్‌స్ట్రుమెంట్ చేసిన క్లోజ్-అప్: ఆకుపచ్చ ఇన్‌పుట్ నమూనాలు స్ట్రోక్‌ నుంచి దూరంగా తిరుగుతుండగా, ఎరుపు అవుట్‌లైన్ సన్నని హుక్‌ను రూపొందిస్తోంది.

ట్రిమ్ చేయడానికి ముందు, రెండరర్ క్యాప్‌ను గాల్లో ఉన్న నమూనాలకు యాంకర్ చేస్తుంది. ఆకుపచ్చ చుక్కలు ముడి నమూనాలు; ఎరుపు గీత రూపొందించిన అవుట్‌లైన్.

ట్రిమ్ చేసిన తర్వాత ఇన్‌స్ట్రుమెంట్ చేసిన క్లోజ్-అప్: నీలి ఫిల్ చివరి రాసిన నమూనాల వద్ద ముగుస్తుంది, తక్కువ-ప్రెజర్ ఆకుపచ్చ చుక్కలు దాని బయట ఉంటాయి.

0.005 కంటే తక్కువ ఉన్న నమూనాలను ట్రిమ్ చేసిన తర్వాత, క్యాప్ చివరి రాసిన పాయింట్ వద్ద ముగుస్తుంది. ఈ ప్రెజర్ ఫ్లోర్ ప్రస్తుత స్టాంప్ రెండరర్‌లోనూ ఉంది.

ఈ ఫ్లోర్ వల్ల పొడవైన గాల్లోని హుక్స్ తొలగిపోయాయి. 0.005 కంటే ఎక్కువగా ఉన్న ప్రెజర్‌తో కూడిన చిన్న టచ్‌డౌన్ డ్రాగ్‌లు, లిఫ్ట్-ఆఫ్ ఆర్క్‌లు రాసిన కదలిక కావడంతో అలాగే మిగిలాయి. అవుట్‌లైన్ మోడల్‌లో ఆ కదలికలను నిర్వహించడమే తర్వాతి జ్యామితి రౌండ్లకు దారి తీసింది.

మూడు జ్యామితి ఇంజిన్లు లోపాలను ఒక చోటు నుంచి మరొకచోటికి తరలించాయి

మొదటి తరం: ఒక అవుట్‌లైన్, ఒక ఫిల్

మొదటి ప్రెజర్‌కు స్పందించే ఇంజిన్ ఒక పరిచితమైన పైప్‌లైన్‌ను అనుసరించింది. అది ఒక స్పైన్‌ను స్మూత్ చేసి, ఎడమ మరియు కుడి ఆఫ్‌సెట్‌లను లెక్కించి, వాటిని ఒకే బహుభుజంగా జాయిన్ చేసి, ఆ బహుభుజాన్ని ఒక్కసారి ఫిల్ చేసింది. నిబ్ Apple Pencil అజిముత్, ఆల్టిట్యూడ్ ఆధారంగా నడిచే ఎలిప్స్; అందువల్ల రాసే దిశతో దాని క్రాస్-సెక్షన్ మారేది. చిన్న ట్యాప్‌లకు ప్రత్యేక ఆకారం ఉండేది, అలాగే వైండింగ్ విలువ శూన్యంగా ఉండే పాకెట్లను నివారించడానికి ఫ్లాట్ క్యాప్‌లలో చిన్న అసమానతలను ఉపయోగించేవాళ్లం.

ఒక్కసారి చేసే ఫిల్ ఒకే స్ట్రోక్‌లో అపాసిటీ పేరుకుపోవడాన్ని పరిష్కరించింది, కానీ ప్రతి మలుపులోనూ చెల్లుబాటు అయ్యే బహుభుజం అవసరమయ్యేది. టచ్‌డౌన్ డ్రాగ్‌లు క్యాప్, శరీరం మధ్య వెడ్జ్‌లను సృష్టించాయి. వెనక్కి వెళ్లే కదలికలు తెల్లని అర్ధచంద్రాకార ఖాళీలను సృష్టించగలిగాయి. పదునైన మలుపుల్లో లోపలి అవుట్‌లైన్ స్వయంగా ఖండించుకుని, ఫిల్ కాని నాచ్‌ను వదిలేది.

రెండవ తరం: చివరల దగ్గర అవుట్‌లైన్‌ను రిపేర్ చేయడం

రెండవ ఇంజిన్ అవుట్‌లైన్‌ను అలాగే ఉంచి, స్థానిక రిపేర్‌లను జోడించింది: వెనక్కి వెళ్లే కదలిక ట్రిమ్మింగ్, ప్రారంభంలో అంచనా వేసిన ప్రాపర్టీలకు డ్యాంపింగ్, ఎండ్‌పాయింట్ సూటీకరణ, తాత్కాలిక-దిశ ట్రిమ్మింగ్, చిన్న క్యాప్ పొడిగింపు. ప్రతి ప్యాచ్ పునరుత్పత్తి చేసిన ఒక లోపాన్ని పరిష్కరించింది. అన్నీ కలిపి ఎండ్‌పాయింట్ ప్రవర్తన అనేక పరిమితులు, విండోలపై ఆధారపడేలా చేశాయి.

ఆ తర్వాత నిజమైన రాత ఆ విండోలకు బయట ఉన్న సందర్భాలను సృష్టించింది. స్థిరమైన 24-పాయింట్ల సూటీకరణ విండో చిన్న స్ట్రోక్‌లలో ఉద్దేశపూర్వకంగా చేసిన హుక్స్‌ను చెరిపేసింది. అనుకూల విండో ఆ హుక్స్‌ను కాపాడింది, కానీ లిఫ్ట్-ఆఫ్ ఆర్క్‌లు ఇంకా కనిపించే మూలలుగా మారగలిగాయి. దిశ-ఆధారిత ట్రిమ్మింగ్ మరింత తాత్కాలిక కదలికను తొలగించింది, అయితే ఒక రికార్డ్ చేసిన స్ట్రోక్‌లో నిజంగా వంకరగా ఉన్న మొదలులో సుమారు 2.5 పాయింట్లను వదులుకోవాల్సి వచ్చింది.

ప్రతి ప్యాచ్ తన లక్ష్య లోపాన్ని సరిచేసింది. అయినా వాటి కింద ఉన్న మోడల్‌కు శబ్దభరితమైన, వంకర ఇన్‌పుట్‌లోనూ చెల్లుబాటు అయ్యేలా ఉండే కఠినమైన అవుట్‌లైన్ అవసరమయ్యేది.

మూడవ తరం: క్లిప్ చేసిన చదరపు క్యాప్‌లతో కవరేజ్ యూనియన్

మూడవ ఇంజిన్ ఒకే కాంటూర్‌ను నిర్మించడం ఆపేసింది. అది ప్రతి సెగ్మెంట్‌కు ఒక ట్రాపిజాయిడ్‌ను, ప్రతి లోపలి నమూనా వద్ద ఒక డిస్క్‌ను గ్రేస్కేల్ మాస్క్‌లో గీసి, వాటి కవరేజ్ యూనియన్‌ను తీసుకుని, ఆ తర్వాత హైలైటర్ రంగును ఒక్కసారి వర్తింపజేసింది. రెండరర్ ఇక బహుభుజ వైండింగ్‌పై ఆధారపడకపోవడంతో వెనక్కి వెళ్లే కదలికల అర్ధచంద్రాలు, స్వీయ-ఖండనలో ముదురడం, వైండింగ్ విలువ శూన్యంగా ఉండే రంధ్రాలు అన్నీ మాయమయ్యాయి.

యూనియన్ చివరలను గుండ్రంగా చేసింది; రెండు ఎండ్‌పాయింట్ అర్ధ-సమతలాలకు వ్యతిరేకంగా కవరేజ్‌ను క్లిప్ చేసి చదరపు క్యాప్‌లను తిరిగి తెచ్చాం. ఆ క్లిప్ స్థిరమైన-ప్రెజర్ నేరుగా వెళ్లే గీతలను సరిచేసింది, కానీ మరింత తీవ్రమైన లోపాన్ని సృష్టించింది: వంకర స్ట్రోక్ శరీరం చట్టబద్ధంగానే ఎండ్‌పాయింట్ అర్ధ-సమతలాన్ని దాటవచ్చు, అప్పుడు క్యాప్ క్లిప్ స్ట్రోక్ మధ్యలోని భాగాన్ని తొలగిస్తుంది. లైవ్ ఇన్‌పుట్‌లో ఎండ్‌పాయింట్ దిశ మారుతూనే ఉండటంతో, క్లిప్ చేసిన ప్రాంతం కదిలి స్ట్రోక్ ఫ్లికర్ అయ్యేది.

క్యాప్-క్లిప్ పరిష్కారానికి ముందు వంకర నీలి స్ట్రోక్; దాని పైభాగం ఒక తిర్యక్ గీత వెంట కత్తిరించబడింది, ఆకుపచ్చ చుక్కలు మొత్తం నమూనా పాత్‌ను చూపిస్తున్నాయి.

గ్లోబల్ క్యాప్ పరిమితి వంకర స్ట్రోక్ శరీరం గుండా కత్తిరిస్తుంది.

స్థానిక ఆర్క్-లెంగ్త్ గేట్ జోడించిన తర్వాత అదే వంకర నీలి స్ట్రోక్; ఆకుపచ్చ నమూనా పాత్ చుట్టూ రెండు శాఖలు తిరిగి వచ్చాయి.

క్యాప్ క్లిప్పింగ్‌ను ఎండ్‌పాయింట్‌కు ఒక హాఫ్-విడ్త్‌లో ఉన్న ప్రిమిటివ్‌లకే పరిమితం చేయడం వల్ల ఈ స్ట్రోక్ తిరిగి సరిచేయబడుతుంది.

ఆర్క్-లెంగ్త్ గేట్ క్యాప్ క్లిప్పింగ్‌ను స్థానికంగా చేసి, రికార్డ్ చేసిన ప్రతి సందర్భాన్ని సరిచేసింది. ఒక తీవ్రమైన సింథటిక్ హుక్‌లో, తక్కువ-ప్రెజర్ టిప్ క్లిప్ చేసిన క్యాప్‌ను కలిసే చోట చిన్న తెల్లని నాచ్ ఇంకా కనిపించింది. మూడవ ఇంజిన్ మళ్లీ ఒక జ్యామితి వైఫల్యాన్ని మరొకదానికి మార్చింది.

MaLiang కఠినమైన సరిహద్దును తొలగిస్తుంది

MaLiang ఒక మూసిన అవుట్‌లైన్‌కు బదులుగా పునరావృతమయ్యే టెక్స్చర్ స్టాంప్‌లతో స్ట్రోక్‌ను నిర్మిస్తుంది. దాని పాత్ జనరేటర్ పక్కపక్కన ఉన్న నమూనాల మధ్యబిందువుల గుండా వెళ్లే క్వాడ్రాటిక్ Bézier సెగ్మెంట్‌లను ఉపయోగిస్తుంది, అలాగే దాని లైన్ రెండరర్ ఆ పాత్‌పై క్రమమైన స్టెప్‌తో స్టాంప్‌లను ఉంచుతుంది. స్ట్రోక్ అంతటా స్టాంప్ పరిమాణం, భ్రమణం, రంగు, అపాసిటీ అన్నీ మారవచ్చు.

మృదువైన స్టాంప్‌కు ప్రత్యేక క్యాప్, జాయిన్ లేదా వైండింగ్ నియమం ఉండదు. దిశలోని పదునైన మార్పు ఒకదానిపై మరొకటి పడే గుర్తుల శ్రేణిగానే ఉంటుంది. వెనక్కి వెళ్లే కదలికలు ఖాళీ బహుభుజపు పాకెట్‌ను సృష్టించలేవు, ఎండ్‌పాయింట్ అర్ధ-సమతలం స్ట్రోక్ మధ్యాన్ని కత్తిరించలేను, ఎందుకంటే ఈ మోడల్‌లో ఎండ్‌పాయింట్ క్లిప్ అనే దాంట్లోనే లేదు.

మేము కోడ్‌ను కాదు, మోడల్‌ను స్వీకరించాం. ప్రస్తుత HighlighterStrokeBuilder నాలుగు ఆపరేషన్‌లు చేస్తుంది:

  1. ప్రెజర్ 0.005 కంటే తక్కువగా ఉన్న ఎండ్‌పాయింట్ నమూనాలను మాత్రమే తొలగిస్తుంది.
  2. మధ్యబిందువు క్వాడ్రాటిక్ Bézier సెగ్మెంట్‌లతో స్థానాలను స్మూత్ చేస్తుంది.
  3. ఆర్క్ లెంగ్త్‌లోని ప్రతి పాయింట్‌కు ఒక వృత్తాకార స్టాంప్‌ను ఉంచుతుంది.
  4. సాధారణీకరించిన ప్రెజర్ నుంచి స్టాంప్ వ్యాసాన్ని సెట్ చేసి, source-over ఆల్ఫాతో స్టాంప్‌లను కాంపోజిట్ చేస్తుంది.

బిల్డర్ 686 లైన్ల నుంచి 190కి తగ్గింది. అజిముత్, ఆల్టిట్యూడ్, అవుట్‌లైన్ నిర్మాణం, యూనియన్ మాస్క్‌లు, ఎండ్‌పాయింట్ దిశా విండోలు, క్యాప్ ఎక్స్‌టెన్షన్, క్యాప్ క్లిప్పింగ్ అన్నీ హైలైటర్ పాత్ నుంచి తొలగిపోయాయి. ఇన్‌పుట్ మోడల్ దానికి మద్దతు ఇస్తున్నందున Pencil దిశాభిముఖతను ఇంకా రికార్డ్ చేస్తున్నాం; కానీ హైలైటర్ ఇక ఆ ఫీల్డ్‌లను చదవదు.

MaLiang ప్రెజర్ ఫార్ములాకు డివైస్ క్యాలిబ్రేషన్ అవసరమైంది

MaLiang స్టాంప్‌ను ఈ ఫార్ములాకు సమానమైన విధానంతో పరిమాణం చేస్తుంది:

ఇందులో force 0 నుంచి 1 వరకు ఉన్న పరిధిలో ఉపయోగకరమైన భాగాన్ని ఉపయోగిస్తుందని భావిస్తుంది. మా డివైస్ డేటా అలా లేదు. సుమారు 3,400 Apple Pencil నమూనాల్లో మధ్యక ప్రెజర్ 0.047, గరిష్ఠం 0.178. ఆ విలువలను నేరుగా ఫార్ములాలో పెట్టగా, సాధారణ రాత నామమాత్ర బ్రష్ పరిమాణం కంటే చాలా పలుచగా కనిపించింది.

అందుకే గమనించిన మధ్యక విలువ చుట్టూ ముందుగా సాధారణీకరించి, తర్వాత ఘాతాన్ని వర్తింపజేసి, ఫలితాన్ని క్లాంప్ చేస్తాం:

ఇప్పుడు రాసేటప్పటి మధ్యక ప్రెజర్ నామమాత్ర 12-పాయింట్ల వ్యాసానికి మ్యాప్ అవుతుంది. చాలా తేలికైన స్పర్శ నామమాత్ర పరిమాణంలో 35% వద్ద కనిపిస్తూనే ఉంటుంది, ఎక్కువ ప్రెజర్ 120% వద్ద పెరగడం ఆగుతుంది.

ఈ క్యాలిబ్రేషన్ MaLiangకు కాకుండా ఇన్‌పుట్ డివైస్‌కు, బ్రష్ ప్రవర్తనకు సంబంధించినది. మన స్వంత ప్రెజర్ పంపిణీని కొలవకుండా అసలు ఫార్ములాను కాపీ చేసి ఉంటే, ఆర్కిటెక్చర్ అలాగే ఉండేది కానీ బ్రష్ తప్పుగా తయారయ్యేది.

తెలిసిన ఓవర్‌ల్యాప్ కౌంట్ నుంచి ప్రతి స్టాంప్ ఆల్ఫా వచ్చింది

MaLiang ఓవర్‌ల్యాప్ అయ్యే అర్ధపారదర్శక స్టాంప్‌లను alpha ÷ overlapping × 2.5 అనే అనుభవాధారిత వ్యక్తీకరణతో సరిచేస్తుంది. మా బ్రష్‌కు 12-పాయింట్ల స్థిరమైన నామమాత్ర వ్యాసం, 1-పాయింట్ స్టాంప్ స్టెప్ ఉన్నాయి; అందువల్ల దాని మధ్యరేఖకు సుమారు 12 లేయర్లు వస్తాయి. మా సందర్భంలో ఓవర్‌ల్యాప్ కౌంట్ తెలిసినదే, కాబట్టి పరిహారాన్ని అంచనా వేయకుండా పరిష్కరించవచ్చు.

లక్ష్య స్ట్రోక్ అపాసిటీ , సమానమైన source-over లేయర్‌ల సంఖ్య ఉన్నప్పుడు, ఒక స్టాంప్ అపాసిటీ ఇస్తుంది

కాబట్టి ఒక స్టాంప్‌కు అవసరమైనది

మరియు ఉన్నప్పుడు, ప్రతి స్టాంప్ సుమారు అపాసిటీని ఉపయోగిస్తుంది. పునరావృత కాంపోజిషన్ తర్వాత మధ్యభాగం ఉద్దేశించిన రంగును చేరుతుంది; అంచుకు తక్కువ స్టాంప్‌లు పడటంతో ఒకటి లేదా రెండు పాయింట్ల ఫెదర్‌డ్ మార్పు మిగులుతుంది.

లూప్‌లు, హుక్స్, చిన్న గుర్తులు, స్వీయ-ఖండనలతో సహా తుది సాఫ్ట్-స్టాంప్ మోడల్‌లో రెండర్ చేసిన విభిన్న నీలి హైలైటర్ స్ట్రోక్‌ల షీట్.

రికార్డ్ చేసిన డివైస్ పాత్‌లను తుది రెండరర్‌తో మళ్లీ ప్లే చేసిన ఫలితం. హుక్స్, తిర్యక్ కట్స్, తెల్లని పాకెట్లు కనిపించవు.

మేము అంగీకరించిన రెండు ఖర్చులు

స్వీయ-ఖండనలు మరింత ముదురుతాయి. source-over కాంపోజిషన్ ప్రతి స్టాంప్‌ను లెక్కిస్తుంది; అదే ప్రాంతం మీద ముందు చేసిన పాస్‌లో వేసిన స్టాంప్‌లను కూడా. కవరేజ్-యూనియన్ ఇంజిన్ దీనిని నివారించింది. అయినా మేము ముదురు ఓవర్‌ల్యాప్‌ను అంగీకరించాం, ఎందుకంటే అది ఊహించగలిగినదిగా ఉండి, స్ట్రోక్ ఆకారాన్ని అలాగే ఉంచుతుంది.

ప్రెజర్‌తో ఎండ్‌పాయింట్‌లు సన్నబడతాయి. నిజమైన లిఫ్ట్-ఆఫ్ ప్రెజర్‌ను తగ్గిస్తుంది, దాంతో స్టాంప్ వ్యాసం తగ్గుతుంది; అందువల్ల స్ట్రోక్ పూర్తి-వెడల్పు చదరపు క్యాప్‌తో ముగియకుండా టేపర్ అవుతుంది. మూడు జ్యామితి ఇంజిన్లలోనూ ఆ చదరపు క్యాప్‌ను తప్పనిసరి అవసరంగా పరిగణించాం. దాన్ని వదిలేయడం వల్ల పైన చెప్పిన అనేక లోపాల వెనుక ఉన్న క్లిప్పింగ్, ఎండ్‌పాయింట్ యంత్రాంగం తొలగిపోయింది; అందుకే టేపర్ అయిన చివరను అంగీకరించాం.

అందువల్ల మేము విడుదల చేసే మోడల్, దాని ముందు ఉన్న మోడళ్ల కంటే తక్కువ పని చేస్తుంది. ఇది కొలిచిన రాత ఈవెంట్‌ను కాపాడుతుంది, డివైస్ క్యాలిబ్రేషన్ తర్వాత ప్రెజర్‌కు స్పందిస్తుంది, అలాగే ప్రపంచవ్యాప్తంగా చెల్లుబాటు అయ్యే అవుట్‌లైన్ అవసరం లేకుండా వంకరగా, స్వయంగా దాటుకునే పాత్‌లను రెండర్ చేస్తుంది. చిసెల్ ఆకారపు నిబ్, పూర్తిగా చదరపు క్యాప్, ముడి నమూనాల మధ్య ఉన్న ఖచ్చితమైన పాలీలైన్ — వీటి కోసం మేము ఆ మోడల్‌ను వదులుకున్నాం.

ఈ పరిశీలన నుంచి వచ్చిన ప్రతిదాంట్లో, ప్రెజర్ ఫ్లోర్‌నే ఇతర ప్రాజెక్టులకు అత్యంత నేరుగా బదిలీ చేయగల అంశం. నిజమైన ఇన్‌పుట్‌లోని రెండు క్లస్టర్ల మధ్య ఉన్న ఖాళీ నుంచి 0.005 విలువ వచ్చింది: రాయడం 0.01 మరియు అంతకంటే ఎక్కువ, గాల్లో ట్రాకింగ్ 0.002 మరియు అంతకంటే తక్కువ. అదే రికార్డ్ చేసిన స్ట్రోక్‌లు ప్రతి జ్యామితి రిపేర్ ఎక్కడ విఫలమైందో చూపించాయి; ఆ వైఫల్యాలే స్టాంప్ మోడల్‌కు మారేలా చేసి, మేము అంగీకరించిన రెండు ఖర్చులను నిర్వచించాయి.