CSGã¯éåžžã«éèŠãªæ©èœã§ã...ä»ã®3Dãã¬ãŒã ã¯ãŒã¯ã¯CSGãã«ãã€ã³ïŒBabylon.jsïŒããµããŒãããŠããŸããç§ãèŠã€ããããšãã§ããå¯äžã®CSGã¯ã7幎åã®ãã©ã°ã€ã³ïŒhttps://github.com/chandlerprall/ThreeCSGïŒã§ãã
ãã®ãã©ã°ã€ã³ãbufferGeometryçšã«æŽæ°ããCSGãµããŒãã®å ¬åŒãã©ã°ã€ã³ãšããŠthree.jsã³ãŒãããŒã¹ã«è¿œå ããããšãææ¡ããŸãã
ç§ã¯ãããèµ·ããã®ãèŠãããã«è³éãå¯ä»ããããšæã£ãŠããŸãã
ä»é±æ«ã«è©ŠããŠã¿ãããšãã§ããŸã...ã©ããªããèŠãŠã¿ãŸãããã
ãããšãOrbitControlsãè¿œå ããŸããããçµæã調ã¹ããšãããããŸãæ£ãããªãããã§ãã ãã®ã©ã€ãã©ãªã¯ååã«ãã¹ããããŠããŸããïŒ
ããããã¡ãªã³ã°ãããåã«ãããã€ããã¹ãããŠãã ããð
src/
ãã©ã«ããŒã«ãã³ãã«ããã®ã¯æ£ããæ¹åã§ã¯ãªããšæããŸãããBufferGeometryããµããŒãããããã«æŽæ°ããããšã¯ææã«æããŸãã ã©ã€ãã©ãªãååã«ãã¹ããããŠãããã©ããã¯ããããŸããã :)
ã³ã¢ã³ãŒãããŒã¹ã«è¿œå ããã®ã¯å°ãè€éãããããŸãããçŸåšã®ããŒãžã§ã³ïŒ
v1 branch
ïŒã¯TypeScriptã«ãããŸããr100
ïŒããã«ã¯r103
ïŒã§ãåé¡ãªãåäœããŸãïŒäŸ
ãã®ãããç©æ¥µçã«éçºãããŠããŸãã ãã®ã¿ã°ã¯èŠåœãããŸããã§ããã ãããŠ... v1ã¿ã°ã¯BufferGeometryããµããŒãããŠããããã§ãïŒ @ThreeDfish
ãã®ãªããžããªã«CSGæ©èœãå«ããªãããšã«æ祚ããŸãã å¿
èŠã«å¿ããŠãããè¯ãThreeCSG
ããµããŒããããŸãã
ãã®ãããç©æ¥µçã«éçºãããŠããŸãã ãã®ã¿ã°ã¯èŠåœãããŸããã§ããã ãããŠ... v1ã¿ã°ã¯BufferGeometryããµããŒãããŠããããã§ãïŒ @ThreeDfish
ç§ã¯ããã¯æããŸãããããã¯v1ããŒãžã§ã³ã§ã®BufferGeometryã®
function convertGeometryToTriangles(geometry) {
if (isBufferGeometry(geometry)) {
throw new Error('threecsg: Only Three.Geometry is supported.');
}
ThreeCSGã®ææè ã«é£çµ¡ããŠã圌ãã®èšç»ãäœã§ãããããŸãã¯BufferGeometryããµããŒãããããã«PRãåãå ¥ããçšæããããã©ããã確èªããããšãã人ã¯ããŸããïŒ ç§ãå°ãèå³ããããŸãã
BufferGeometryã«ã€ããŠèª°ã質åããŠããªãããã§ã...
äŒè©±ãhttps://github.com/chandlerprall/ThreeCSGã«ã·ããããŠã¿ãŸãã@chandlerprallã圌ã®ãããžã§ã¯ãã«ãã®ãããªèå³ãæã£ãŠãããã®ãèŠãŠåãã§ããã«
FWIW ThreeCSGã«ã¯ãå®å šãªæžãçŽããšã¯ãªãŒã³ã¢ããã§ããæ°ããv1ãã©ã³ãããããŸãã ãã¬ãŒã³ã»ã¬ã¯ã¿ãŒã¢ã«ãŽãªãºã ãæé©åããå¿ èŠããããŸããããããã°ãnpmå ¬éã®æºåãæŽããŸãã 誰ããè¿œå æ©èœãæäŸãããå Žåã¯ãç§ã¯ããããããŸãïŒhttps://github.com/chandlerprall/ThreeCSG/issues/51ãåç §ïŒ
ãåèãŸã§ã«ïŒ
https://github.com/chandlerprall/ThreeCSGã«å ããŠã次ã®CSGã©ã€ãã©ãªãæè¿ã®Discourseãã©ãŒã©ã ã¹ã¬ããã§èšåãããŸããã
ããã3ã€ã®ãã¡ã®ã©ãããthree.jsã®CSGãµããŒãã®åºç€ãšããŠåœ¹ç«ã€ã¹ããã©ããã«ã€ããŠç§ã¯æèŠããããŸããã
ç§ã¯ãmadebyevan CSGã©ã€ãã©ãªã®å¥ã®å€æãè¡ããŸãããããã¯ãçŸåšã®3ã€ïŒ103ïŒã§åäœããå€ãã¢ãžã¥ãŒã«ã§çºçããããã€ãã®åé¡ãä¿®æ£ããŸããã ãããã¡ãžãªã¡ããªãèš±å¯ããŸãããå éšã§ãžãªã¡ããªã«å€æããããšã«ãã£ãŠã®ã¿å¯èœã«ãªããŸãã
https://github.com/manthrax/THREE-CSGMesh
ããã誰ããå©ãããã£ãŒãããã¯/ææ¡ãæ°è»œã«æäŸããããšãé¡ã£ãŠããŸãã
@manthraxããªãã®ãããžã§ã¯ãã¯ã three.js
ãã©ãŒã©ã ã®æ¬¡ã®ã¹ã¬ããã«è¿œå ãããšããã®ã§ããã©ã°ã€ã³ãæ¢ããŠãã人ã¯å®éã«ãã©ã°ã€ã³ãèŠã€ããããšãã§ããŸãð
https://discourse.threejs.org/t/looking-for-updated-plug-in-for-csg/6785
çŽ æŽãããïŒ ãããã©ãã»ã©å®çŸå¯èœãã¯ããããŸãããããããã®ãœãªã¥ãŒã·ã§ã³ã®ãããããå€ãã®ãšã³ãžã³ãšãã£ã¿ãŒãçŸåšæã£ãŠãããããªããã©ãŒãã³ã¹ãšãªã¢ã«ã¿ã€ã ç·šéæ©èœã瀺ãããã€ãã®äŸããæ©æµãåãããšæããŸãã
ç§ã®å人çãªå¥œã¿ã¯ãCSGãã©ã€ãã©ãªããé€å€ããç¬èªã«éçºããããšã§ãã
ç§ã¯ããã«åæããŸããããé¢é£ãããªããžããªãã®å
¬åŒã»ããããããšäŸ¿å©ãããããŸããã å
ã«é²ãããšã«ããå Žåã«ããã«äœ¿çšã§ããçµç¹ãäœæããŸããã github.com/threejs
ã¯@enricomarinoã«ãã£ãŠãŸããã github.com/three-js
ããããŸããã ç§ã¯æææš©ã誰ã«ã§ãè²æž¡ããŸããååã«é£ã³ã€ãã®ã¯è¯ãããšã ãšæã£ãã ãã§ãïŒ
ãããã£ãŠããã®çµç¹ã¯ãããã«å®å šã«é©åããªãthree.jsã«é¢é£ãããããžã§ã¯ããäœæããã人ãªã誰ã§ãå©çšã§ããŸãã
three.jsã«é¢é£ãããããžã§ã¯ãããã¹ãããããã«çµç¹https://github.com/threejsãäœæããŸããã
å®ã¯åœæããthree.jsãã®ã¢ããªããžããªãè€æ°ã®ãªããžããªã«åå²ããããšæã£ãŠããŸãããã
ãthreejs / coreãããtreejs / examplesãããthreejs / editorãããthreejs / docsãã
ãmrdoob / three.jsããéåžžã«å€§ãããªããããŠã³ããŒããéããªã£ããã...
ããããããã¯å¥ã®è©±ã§ã...
ããªããããã䜿ããããªãã°ãçµç¹ã¯ããªãã®åŠåã«ãããŸãïŒ
ã©ã€ãã©ãªã«ãã¢ãšã¹ã¯ãªãŒã³ã·ã§ãããè¿œå ããŸããã
https://github.com/manthrax/THREE-CSGMesh
誰ãå©ããå¿ èŠãªå Žåã¯æããŠãã ããïŒ
@yomboprime @ThreeDfish
移æ€ããCSGã©ã€ãã©ãªã«ã¹ã¯ãªãŒã³ã·ã§ãããšãã¢ãè¿œå ããŸããã 圹ã«ç«ã£ããæããŠãã ããã
https://github.com/manthrax/THREE-CSGMesh
@yomboprime @ThreeDfish
移æ€ããCSGã©ã€ãã©ãªã«ã¹ã¯ãªãŒã³ã·ã§ãããšãã¢ãè¿œå ããŸããã 圹ã«ç«ã£ããæããŠãã ããã
https://github.com/manthrax/THREE-CSGMesh
@ThreeDfishãŸã èå³ãããã°ããã®ã©ã€ãã©ãªã§CSG.toBufferGeometry
é¢æ°ãäœæã§ããŸãã CSGã¯åŒãç¶ãGeometryãå
¥åãšããŠåãå
¥ããŸãããåºåã¯GeometryïŒããŒã«æŒç®ã®å ŽåïŒãŸãã¯BufferGeometryïŒã¬ã³ããªã³ã°ã®æçµåºåïŒã®å ŽåããããŸãã
@manthraxã¯ã©ãæã
@enricomarino github.com/threejsãžã®ã¢ã¯ã»ã¹ãæããŠããã ããŸããïŒ LWOLoader
ãã¹ãã¢ãã«ã䜿çšããŠãªããžããªãèšå®ããããšæããŸãã ãšããã§ãããªãã¯ðã®é£çµ¡å
ã®è©³çŽ°ãèŠã€ããã®ã¯é£ãã人ã§ã
@yomboprimeããªããäœãæ±ããŠããã®ã
移æ€ããããŒãžã§ã³ã¯ãBufferGeometryã¡ãã·ã¥ãšGeometryã¡ãã·ã¥ã®äž¡æ¹ãåãå ¥ããŸããGeometryãåºåããŸããããã¯ã次ã®ã³ãã³ãã§BufferGeometryã«å€æã§ããŸãã
mesh.geometry = new THREE.BufferGeometry().fromGeometry(mesh.geometry)
ãããã£ãŠãå€æã¯éåžžã«ç°¡åãªã®ã§ãè¿œå ã®ãã«ããŒé¢æ°ãæ¬åœã«å¿ èŠãã©ããã¯ããããŸããã
Geometry
-> BufferGeometry
å€æã¯ãæ®å¿µãªããããªãæ倱ããããŸããïŒçœã®ïŒé ç¹ã®è²ãè¿œå ããã ãã§ãªããã€ã³ããã¯ã¹ä»ãã®ãžãªã¡ããªã®ã€ã³ããã¯ã¹ã解é€ããé ç¹ã®æ°ãå¢ãããŸãã BufferGeometryãšããŠã®æçµåºåã¯ããããçæ³çã§ãã
CSGæäœã¯ã€ã³ããã¯ã¹ä»ããæ°ã«ããŸããã äœããã£ãŠããäžè§åœ¢ããšã«3ã€ã®åºæã®é ç¹ãæäœããŠåºåããŸãã
ãŸããé ç¹ã®è²ãåŠçããŸããã
çµæã®ã¡ãã·ã¥ãæé©åããããšã¯ãä»ã®ããŒã«/ãã«ããŒé¢æ°ãimhoã§å®è¡ã§ãã/å®è¡ããå¿ èŠããããã®ã§ãã
ãã以å€ã®å Žåã¯ãå®éã«ã¯å¥ã®ã©ã€ãã©ãªã«ããã¯ãã®ãã æ©èœãè€è£œããŠããã ãã§ãã
THREE.jsã®ãžãªã¡ããªãæé©åããããã®ãŠãŒãã£ãªãã£ã«é¢ããŠã¯ãééããªãã¹ããŒã¹ãããããšã«åæããŸãã ãã®åé¡ã¯ãBufferGeometry以å€ã«ãåœãŠã¯ãŸããŸãã ããããå®è¡æã«jsãä»ããŠå€§èŠæš¡ãªãããã¡ãŒã«æé©åãé©çšããããšã¯ãåä»ãªæäœã§ããè€éãã軜æžããããã«é©çšããææ³ãã€ãŸãocttree / kdtreeã¯éåžžã«é«éã«è€éã«ãªããç¬èªã®ãã©ã¡ãŒã¿ãŒåã®ã»ãããå¿ èŠã«ãªããŸãã
ã³ãŒããè€é床/æè»æ§/ãŠãŒãã£ãªãã£ããšãGPUçšã«è¶ æé©åãã®éã«ã¯ãã¬ãŒããªããããããã«æããŸããJavaScript以å€ã®èšå®ã§ã¯åŸè çšã«æé©åãããŸãããjs / webã·ããªãªã§ã¯åè ã§ãããåŸè ãè¿œæ±ããå¿ èŠããããšå€æããå Žåã«ã®ã¿ãwabasmãªã©ã䜿çšããŠããŒã¿ãåŠçããŸãã
èšããŸã§ããªãããããã®CSGæäœã¯ãã§ã«ããªãé ãã§ã..ç§ã®gitã®ãã¢ã¯ãããã¯ã¹ãš8ã€ã®ãµããã£ããžã§ã³çã§ãã¬ãŒã ããšã«10ã®æäœãããªããã»ãšãã©ã€ã³ã¿ã©ã¯ãã£ãã§ã¯ãããŸãã...
ããã¯èšã£ãŠã..ç§ã¯ã¡ããã©babyloncsgãã¢ãèŠãŸãã..ãããŠç§ã¯ããããŸã£ããåãã©ã€ãã©ãªã®ç§»æ€ã§ãããšããªã確信ããŠããŸãã
ãŸãããã®ãã¢ã§ããªã¢ã«ã¿ã€ã ã§å®è¡ãããŠããŸããã
https://www.babylonjs.com/demos/csg/
ãããç§ãå€æããããŒãžã§ã³ã§ãããç°¡åãªäŸããªã¢ã«ã¿ã€ã ã§å®è¡ããŠããŸãã
ç§ã¯ãCSGã®æäœãç¹ã«ãªã¢ã«ã¿ã€ã ã«é©ããŠããããã§ã¯ãªããã©ã€ãã©ãªããªã¢ã«ã¿ã€ã ã«é©ããŠãããµããããå¿
èŠããªãããšã«åæããŸãã ãã ããGeometryã¯æçµçã«three.jsã©ã€ãã©ãªããåé€ããã examples/js/*
ãšexamples/jsm/*
移åãããããšã«æ³šæããŠãã ããã ãã®æç¹ã§ããŠãŒã¶ãŒã¯ã»ãŒç¢ºå®ã«ãçµæãšããŠBufferGeometryã䜿çšããæ¹ãç°¡åã«ãªããŸãã CSGã³ãŒããGeometryã«å
éšäŸåããŠããå Žåã¯ããã¡ããåé¡ãªãããã§ãã
ç§ã¯ããããã®ããã«èšãã§ããã...
æäœãé£éããããå Žåã¯ã Geometry
ãå
¥åããŠGeometry
ãåºåããã®ãçã«ããªã£ãŠããŸããããã¯ãCSGããã®ããŒã¿æ§é ã§ã®ã¿åäœããããã§ãã
ãã ãã Geometry
ã¯éããªãã¬ã³ããªã³ã°ã§ããªããªããããæåŸã®ã¹ãããã§åºåãBufferGeometry
ã«å€æããå¿
èŠãããããšã«æ³šæããŠãã ããã
@manthrax QuickHullå®è£
ã¯ç¬èªã®ã¯ã©ã¹ã®ã»ããã䜿çšãããããããããžæäœãç°¡åã«å®è¡ã§ããŸãã ããšãã°ãããŒããšããžã®å®è£
ã¯ããã®ã³ã³ããã¹ãã§Geometry
ã䜿çšãããããã¯ããã«åªããŠããŸãã Geometry
ã¯ã¬ã³ããªã³ã°ã«éç¹ã眮ããŠãããããä»ã®ã¿ã€ãã®ã¯ã©ã¹ã¯CSGã§ãããŸãæ©èœããå¯èœæ§ããããŸãã
@WestLangley @ Mugen87 @donmccurdyã®ãã£ãŒãããã¯ãæè¬ããŠããŸãã
Geometryã®éæšå¥šã«åããŠãBufferGeometryã§ãã€ãã£ãã«æ©èœããããã«ããããšãæ€èšããŸãã
ãŸããè²ãçŽ æ/ã°ã«ãŒãã®ãµããŒããè¿œå ããããšæããŸãã
@enricomarinoå®éãç§ã¯ãçµç¹ããŠãŒã¶ãŒåãã移åããŠå°ãåå²ããããšãæ€èšããŠããã®ã§ãçµç¹ã§äœãããäºå®ãã確èªããããã«ã¡ãã»ãŒãžãéä¿¡ããããšãèšç»ããŠããŸããã ã©ã®ããã«èŠãããã¯ãŸã ããããŸããããä»ã®ãšããç§ãçµç¹ã«è¿œå ããŸããïŒ
@mrdoob確ãã«ïŒ
ã¿ãªãããããã«ã¡ã¯ãç§ã¯CSGã©ã€ãã©ãªã®ããå æ²¢ã®ãããã¢ãäœæããèå³ãããã°éåžžã®äžä»£ã®ãã°ãä¿®æ£ããŸããã
http://vectorslave.com/csg/CSGShinyDemo.html
ãšghïŒ
https://github.com/manthrax/THREE-CSGMesh
ç§ã¯BufferGeometryæé©åããŒãžã§ã³ãšãå ¥åéã®ææåé¢ãç¶æãããã®ãè¿œå ããããšãæ€èšããŠããã®ã§ãSCADãœãããŠã§ã¢ã®ãããªãã®ã«çŽæ¥äœ¿çšã§ããŸãã
ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãããã«ããããŠèª°ããæ¬åœã«æ·±ãæãäžãããå Žåã«åããŠããããã®ãªã³ã¯ãããã«ãããããããšæã£ãã ãã§ãã Unityã§ãã®CSGããŒã«ã«åºããããŸããããã®ããŒã«ã«ã¯ãéåžžã«åªããããã©ãŒãã³ã¹ãšã³ã³ãã³ãäœææ©èœããããŸãã
https://assetstore.unity.com/packages/tools/modeling/realtime-csg-69542
ãããŠãäœæè ãå®è£ ã«é¢ããããã€ãã®èšäºãæžããããã§ãïŒåèš6ã€ã®éšåããããŸãïŒïŒ
http://sandervanrossen.blogspot.com/2010/05/realtime-csg-optimizations.html
http://sandervanrossen.blogspot.com/2010/05/realtime-csg-part-5.html
ç§ã¯csgã©ã€ãã©ãªã移æ€ããŸããããçŸæç¹ã§ã¯éåžžã«ããŸãæ©èœããŠããŸãã
å¿
èŠã«å¿ããŠãã®ãããžã§ã¯ããæŽæ°ã§ããŸãã
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
@manthraxã®ã©ã€ãã©ãªã¯å®ç§ã«æ©èœããŸãïŒ
@manthrax
BufferGeometryæé©åããŒãžã§ã³ã®è¿œå ãæ€èšããŠããŸã
çŸåšTHREE.Geometry
ããŠããŸããïŒ
ç§ã¯ãããäŒãŸããŠãã«èŠããããšãã§ããªãã£ãã®ã§ã https://github.com/jscad/csg.jsã®ã³ã¢CSGã©ã€ãã©ãªã§ããhttps://openjscad.org/
ç§ã¯ããããã©ãŠã¶åããŠãèªåã®THREE BufferGeometryã¢ããã¿ãŒãäœæããŸãããå®éã @ manthraxã圌ã®ã³ãŒãã«åºã¥ããŠããã©ã€ãã©ãªãããã¯ããã«é«éã§ãã ïŒãããŠããã¯é ç¹ã®è²ä»ãããµããŒãããŸãïŒ
32é¢ã®çã䜿çšããŠç®ãåãåãåããµã€ã³ãã®å Žåã
THREE-CSGMeshã¯112ç§ããããŸãããã
jscad / csgã¯2.5ç§ããããŸãã!!!
ããã¯45åéãã§ã...
ç§ã¯ããããã©ã€ãã©ãªãäœæããããšãèããŠããŸããããªããããã«ã€ããŠã©ãæããæããŠãã ãã...
@SebiTimeWaster
ã©ãã®ã¬ãã§ãå©çšã§ããŸããïŒ csg.jsãMITã©ã€ã»ã³ã¹ã®ããã§ãã
@mrdoob
BufferGeometryæé©åããŒãžã§ã³ã®è¿œå ãæ€èšããŠããŸã
çŸåšãTHREE.Geometryã䜿çšããŠããŸããïŒ
ã³ãŒãããŒã¹ãç°¡åã«èŠããšãã¯ãããŸã THREE.Geometryã䜿çšããŠããããã«èŠã
ãŸã ãèå³ãããã°ç§ã¯ãããäœæããŸã...
ãŸã ãèå³ãããã°ç§ã¯ãããäœæããŸã...
ãã®ã¹ã¬ããã¯èå³ã®ãã蚌æ ã ãšæããŸãïŒ ããããå°ãªããšãç§ã¯ããªããããéãããŒãžã§ã³ãæã£ãŠãããã©ããããããã§ãã¯ããããšã«èå³ããããŸãã ããã«å¿ èŠã«ãªãããšã¯ãããããŸããããå°æ¥çã«ã¯å¿ èŠã«ãªããããããŸããã three.jsã§csg.jsã䜿ãå§ããæ¹æ³ã®ç°¡åãªäŸã§ãã£ãŠããCSGã®ã©ã€ãã©ãªã«3ã€ã§è¡ããšããã§ãããã
ãŸã ãèå³ãããã°ç§ã¯ãããäœæããŸã...
ã¯ããcsgã®å ¬åŒã®äŸ/ãœãªã¥ãŒã·ã§ã³ã¯çŽ æŽãããã§ãããïŒ
ä»ããŠãŸã...
ç§ã¯äž»ã«@evanwã®csg.jsã®BufferGeometryããŒãã§çµãããŸããã
å°ãçä»ããå¿
èŠã§ããä»é±ã®æéãèŠã€ããããããã§å
±æããŸãã
@mrdoobãã®ãªããžããªã«CSGã©ã€ãã©ãªãå¿ èŠã§ããïŒ ãããããªããç§ã¯PRãããŸãã ãã以å€ã®å Žåã¯ãæ°ãããªããžããªãäœæããŸãã
@SebiTimeWasterä»ãŸã§ããªãã®ã³ã¡ã³ããèŠãŠããŸããã§ããããã£ãšã ç§ãæšæž¬ããããå€ãã®åã³ð
@looeeeã¯å®å šãªããŒãã§ããããããšãåãªãã©ãããŒã§ããïŒ ãšã«ãããcsg.jsã¯CSGæäœã®ããã«ããŒã¿ãå€ãã®å éšæ§é ã«å€æããå¿ èŠãããããã«èŠããŸãããã åºå ¥ãã®éäžã§BufferGeometryãšã®éã§å€æã§ããã¯ãã®ããã§ãã
@looeeeããã«æ°ãããªããžããªããããšãã
é¢çœãã§ãããããç§ã¯mrdoobããŸã æºåãã§ããŠããªããšããæšæž¬ãå±éºã«ããããŸãã
ãã®ãªããžããªãå®å
šãªCSGã©ã€ãã©ãªãç¶æããã®ã«é©åãªå Žæãã©ããã¯ããããŸãã...ããããexamples/js(m)/libs/
CSGã©ã€ãã©ãªã®çž®å°ãã«ãã䜿çšããŠäŸãè¿œå ããŸããïŒ
ã ããããããå
šäœã«ã€ããŠã®ç§ã®èŠè§£ã§ãïŒããã¯https://github.com/jscad/csg.jsã«åºã¥ããŠããŸãïŒïŒ
https://github.com/SebiTimeWaster/three-csg
äŸïŒã¹ãã¬ã¹ãã¹ãïŒïŒ
https://sebitimewaster.github.io/three-csg/examples/example2.html
@looeeeåãã¹ãã¬ã¹ãã¹ããå®è£ ããŠãã³ãŒããçžäºã«æ¯èŒããŠæé©åããã®ã¯ã©ã
@looeeeã¯å®å šãªããŒãã§ããããããšãåãªãã©ãããŒã§ããïŒ
ããã€ãã®å°ããªå€æŽãå ããcsg.jsã®ã©ãããŒã§ãããã©ã³ãã1ã€ãããŸãã
Vector3
䜿çšããŸããããã®ãã©ã³ãã¯å®æããŸãããå°ãæŽçãããå ±æããŸãã ããããããã¯é ãã§ãã
é床ã®åäžã«åãçµãã§ããå¥ã®ãã©ã³ãããããŸãã ããã§ã§ããããšã¯ãããããããŸããäž»ã«ãã§ããã ãå€ãã®åŠçãåé¿ããããã«æ©æã¢ãŠããèšç®ããããšã§ãã
@SebiTimeWaster ãã³ãŒãã
@SebiTimeWaster csgå®è£ ã¯ãã¯ã¹ãã£åº§æšãåŠçã§ããŸããïŒ
ãããç§ã®ãã¯ã¹ãã£åº§æšã®èŠãæ¹ã§ãã
ãªããžããªã¯æ¬¡ã®ãšããã§ãã
https://github.com/looeee/threejs-csg
äžèšã§èª¬æããcsg.jsã®ã©ãããŒã«éåžžã«è¿ã_master_ãš_advanced_ã®2ã€ã®ãã©ã³ãããããŸãã ããã§ã LogicalOR
ããã³complement
ã¡ãœããã䜿çšããŠãã¹ãŠã®CSGæäœãè¡šçŸããŸããã
ãŠããªã³ïŒ_ïŒå·Š||å³ïŒ_
æžç®ïŒ_ïŒïŒïŒå·Š||å³ïŒ_
亀差ïŒ_ïŒïŒïŒå·Š||ïŒå³ïŒ_
ããããããšã§ãæäœã®æšè«ãå°ãç°¡åã«ãªããæžç®ãšäº€å·®ããããã«éããªããŸãã å®å šãªCSGæäœãå®è¡ããåã«ãé«ã¬ãã«ã®ããŠã³ãã£ã³ã°ããã¯ã¹ããŒã¹ã®ããŒãžãšã«ãªã³ã°ãå®è¡ããå®éšãããã€ããããŸããããã«ãããäžåºŠã«å€ãã®æäœãå®è¡ãããšãã«ãããçšåºŠã®ã¹ããŒãã¢ãããåŸãããŸãã
ãã ããããè¯ãã¢ãããŒããããã³ä»ã®å®è£ ã§æã䜿çšãããŠãããšæãããæ¹æ³ã¯ããžãªã¡ããªãšæäœã®BVHãäœæããããªãŒããã©ããŒã¹ããŠæçµçãªãžãªã¡ããªãçæããããšã§ãã
@SebiTimeWasterä»ã®ãšããããããããã«é²ããã®ã§ã¯ãªãã代æ¿ã®CSGå®è£ ãæ€èšããããšã«ããŸããã ç§ã®ã¬ãããäœã圹ã«ç«ã€ãã®ãããã°ãé æ ®ãªããããåã£ãŠãã ããã
ç·šéïŒãã®ãã€ãŒãã¯ç§ã®æ°æã¡ãæ£ç¢ºã«èŠçŽããŠããŸã
äžã§ãªã³ã¯ããUnityçšã®RealtimeCSGãã©ã°ã€ã³ã®ãœãŒã¹ãGithubã«æçš¿ãããŠããããã§ã誰ããããã«æ·±ãæãäžããããšã«èå³ãããå Žåã¯MITã©ã€ã»ã³ã¹ãä»äžãããŠããŸãã
https://github.com/LogicalError/realtime-CSG-for-unity
圌ã®ããã°ã«ã¯ã圌ã®CSGãã©ã°ã€ã³ã«é¢ããæè¡çãªæçš¿ãããã€ããããŸãã
https://sandervanrossen.blogspot.com/search?q=Realtime+CSG
ä»å¹Žã®3æã«CSGã«ã€ããŠåœŒããã®æ°ããGDCããŒã¯ããããŸããã
https://www.youtube.com/watch?v=Iqmg4gblreo
Unityã§ã®åœŒã®äœåãèªåã§ããã£ãããšã¯ãããŸãããããããªã§ã®ããã©ãŒãã³ã¹ã¯çŽ æŽãããèŠããŸãã
Unity CSGã«åºã¥ããŠããããã¹ã¿ã³ãã¢ãã³ã®CïŒã¢ããªã§ãããã®ã¢ããªããããç解ãããããããããŸããã ããã¯ããªãå€ãã§ãããããã¯éçºãããã»ã©ã§ã¯ãªããããããŸããã
https://github.com/LogicalError/Realtime-CSG-demo
Godotãšã³ãžã³ã«ã¯ç§ããã¹ãããCSGããããéåžžã«åªããããã©ãŒãã³ã¹ãçºæ®ããŸãã ããã¥ã¡ã³ã/ã³ãŒãã
Carve CSGãšxcsg ïŒCarveã䜿çšïŒãããã³CorkããããŸãã
ããã§ã®æåã®è§£æ±ºçã¯ããããã®æ¢åã®è§£æ±ºçã®1ã€ïŒããããCPPã§ãããä»ã®å€ãã®ããã±ãŒãžã§äœ¿çšãããŠããããã«èŠãããããCarveïŒãååŸããŠWasmã«å€æããããšã§ããããã
ããã§ã®æåã®è§£æ±ºçã¯ããããã®æ¢åã®è§£æ±ºçã®1ã€ïŒããããCPPã§ãããä»ã®å€ãã®ããã±ãŒãžã§äœ¿çšãããŠããããã«èŠãããããCarveïŒãååŸããŠWasmã«å€æããããšã§ããããã
ç§ã¯emscriptenã«ããŸã詳ãããããŸããããããã¯æªãã¢ãããŒãã®ããã«ã¯èãããŸããã ãã ããCarveãšCorkã¯GPLãšLGPLã®ã©ã€ã»ã³ã¹ãååŸããŠããããã§ãã®ã§ã泚æãå¿ èŠã§ãã
ã©ãããBlenderã¯ããŒã«æŒç®ããŒã«ãæŽæ°ããã°ããã§ããã®ãã€ãŒãã«ãããšããã®ããŒããŒã®ã¢ãããŒãã䜿çšããŠããŸãã
æãåèã«ãªãã³ã¡ã³ã
ç§ã¯ãmadebyevan CSGã©ã€ãã©ãªã®å¥ã®å€æãè¡ããŸãããããã¯ãçŸåšã®3ã€ïŒ103ïŒã§åäœããå€ãã¢ãžã¥ãŒã«ã§çºçããããã€ãã®åé¡ãä¿®æ£ããŸããã ãããã¡ãžãªã¡ããªãèš±å¯ããŸãããå éšã§ãžãªã¡ããªã«å€æããããšã«ãã£ãŠã®ã¿å¯èœã«ãªããŸãã
https://github.com/manthrax/THREE-CSGMesh
ããã誰ããå©ãããã£ãŒãããã¯/ææ¡ãæ°è»œã«æäŸããããšãé¡ã£ãŠããŸãã