Кіріспе
3D модельді анықтауға арналған көпбұрыштар жиынтығы. 3D компьютерлік графикада және қатты денелерді модельдеуде, көпбұрыш тор – көпбұрышты нысанның пішінін анықтайтын төбелер, қабырғалар және жақтар жиынтығы. Жақтар көбінесе үшбұрыштардан (үшбұрыш тор), төртбұрыштардан (төртбұрыштар) немесе басқа қарапайым дөңес көпбұрыштардан (n-бұрыштардан) тұрады, себебі бұл көрсетуді (рендерингті) жеңілдетеді, бірақ иісті көпбұрыштардан немесе тіпті тесіктері бар көпбұрыштардан да құралуы мүмкін. Көпбұрыш торларын зерттеу – компьютерлік графиканың (әсіресе 3D компьютерлік графиканың) және геометриялық модельдеудің маңызды саласы. Көпбұрыш торларының әртүрлі түрлері әртүрлі қолданыстар мен мақсаттар үшін қолданылады. Торларда орындалатын операциялардың түрлері: Бульдік логика (құрылымдық геометрия), тегістеу, қарапайымдау және тағы да басқалар. Сондай-ақ, сәулелерді іздеу, соқтығысуды анықтау және көпбұрыш торларымен қатты дене динамикасы үшін алгоритмдер бар. Егер тордың қабырғалары жақтардың орнына көрсетілсе, модель сымдық модельге айналады. Көлемдік торлар көпбұрыш торларынан өзгеше, себебі олар құрылымның бетін де, көлемін де нақты көрсетеді, ал көпбұрыш торлары тек бетін ғана нақты көрсетеді (көлем жасырын). Торды жасау үшін бірнеше әдіс бар, соның ішінде «маршырушы кубтар» алгоритмі де бар.
In 3D computer graphics and solid modeling, a polygon mesh is a collection of vertices, edges and faces that defines the shape of a polyhedral object. The faces usually consist of triangles (triangle mesh), quadrilaterals (quads), or other simple convex polygons (n gons), since this simplifies rendering, but may also be more generally composed of concave polygons, or even polygons with holes. The study of polygon meshes is a large sub field of computer graphics (specifically 3D computer graphics) and geometric modeling. Different representations of polygon meshes are used for different applications and goals. The variety of operations performed on meshes may include: Boolean logic (Constructive solid geometry), smoothing, simplification, and many others. Algorithms also exist for ray tracing, collision detection, and rigid body dynamics with polygon meshes. If the mesh's edges are rendered instead of the faces, then the model becomes a wireframe model. Volumetric meshes are distinct from polygon meshes in that they explicitly represent both the surface and volume of a structure, while polygon meshes only explicitly represent the surface (the volume is implicit). Several methods exist for mesh generation, including the marching cubes algorithm.
Өкілдіктер
Көпбұрышты торлар вертикальдар, жиектер және беттер туралы деректерді сақтау үшін әртүрлі әдістерді пайдалана отырып, әртүрлі тәсілдермен бейнеленуі мүмкін. Оларға:
Беттік-вертикальдық торлар – вертикальдардың қарапайым тізімі және осы вертикальдарға сілтеме жасайтын көпбұрыштар жиынтығы. Қанатты жиекті торлар – әрбір жиегі екі вертикальға, екі бетке және оларға жанасатын төрт (сағат тілі бойынша және сағат тіліне қарсы) жиекке бағытталған торлар. Қанатты жиекті торлар бетін тұрақты уақытта аралауға мүмкіндік береді, бірақ сақтау көлемі жоғары. Жартылай жиекті торлар – қанатты жиекті торларға ұқсас, бірақ жиектің аралау ақпаратының жартысы ғана қолданылады. (OpenMesh-ке қараңыз) Төртбұрышты жиекті торлар – жиектерді, жартылай жиектерді және вертикальдарды көпбұрыштарға сілтемесіз сақтайды. Көпбұрыштар бейнелеуде жасырын және құрылымды аралау арқылы табылады. Жад көлемі жартылай жиекті торларға ұқсас. Бұрыштық кестелер – вертикальдарды алдын ала анықталған кестеде сақтайды, сонда кесте арқылы өту көпбұрыштарды анықтайды. Бұл, по сути, аппараттық графикалық рендерингте қолданылатын үшбұрышты желдеткіш. Бейнелеу ықшам және көпбұрыштарды алу тиімді, бірақ көпбұрыштарды өзгерту операциялары баяу. Сонымен қатар, бұрыштық кестелер торларды толыққанды бейнелемейді. Көптеген торларды бейнелеу үшін бірнеше бұрыштық кестелер (үшбұрышты желдеткіштер) қажет. Вертикаль-вертикальдық торлар – "VV" торы тек басқа вертикальдарға сілтеме жасайтын вертикальдарды бейнелейді. Жиек және бет туралы ақпарат бейнелеуде жасырын. Дегенмен, бейнелеудің қарапайымдылығы торлармен көптеген тиімді операцияларды орындауға мүмкіндік бермейді. Жоғарыда аталған әрбір бейнелеудің өзіндік артықшылықтары мен кемшіліктері бар, олар Смит (2006) еңбегінде кеңінен талқыланған. Деректер құрылымын таңдау қолданбаға, қажетті өнімділікке, деректер көлеміне және орындалатын операцияларға байланысты. Мысалы, үшбұрыштармен жұмыс істеу, әсіресе есептеу геометриясында, жалпы көпбұрыштарға қарағанда оңай. Кейбір операциялар үшін жиектер немесе көршілес беттер сияқты топологиялық ақпаратқа жылдам қол жеткізу қажет; бұл қанатты жиектер бейнелеуі сияқты күрделі құрылымдарды қажет етеді. Аппараттық рендеринг үшін ықшам, қарапайым құрылымдар қажет; сондықтан бұрыштық кесте (үшбұрышты желдеткіш) DirectX және OpenGL сияқты төменгі деңгейдегі рендеринг API-ларына жиі енгізіледі.
quad edge meshes which store edges, half edges, and vertices without any reference to polygons. The polygons are implicit in the representation, and may be found by traversing the structure. Memory requirements are similar to half edge meshes. Corner tables which store vertices in a predefined table, such that traversing the table implicitly defines polygons. This is in essence the triangle fan used in hardware graphics rendering. The representation is more compact, and more efficient to retrieve polygons, but operations to change polygons are slow. Furthermore, corner tables do not represent meshes completely. Multiple corner tables (triangle fans) are needed to represent most meshes. Vertex vertex meshesA "VV" mesh represents only vertices, which point to other vertices. Both the edge and face information is implicit in the representation. However, the simplicity of the representation does not allow for many efficient operations to be performed on meshes. Each of the representations above have particular advantages and drawbacks, further discussed in Smith (2006). The choice of the data structure is governed by the application, the performance required, size of the data, and the operations to be performed. For example, it is easier to deal with triangles than general polygons, especially in computational geometry. For certain operations it is necessary to have a fast access to topological information such as edges or neighboring faces; this requires more complex structures such as the winged edge representation. For hardware rendering, compact, simple structures are needed; thus the corner table (triangle fan) is commonly incorporated into low level rendering APIs such as DirectX and OpenGL.
Көзден-көзге жалғанушы торлар
Төбе-төбе торлары объектіні басқа төбелерге қосылған төбелер жиынтығы ретінде көрсетеді. Бұл ең қарапайым бейнелеу тәсілі, бірақ бет және жиек туралы ақпарат жасырын болғандықтан кеңінен қолданылмайды. Сондықтан, рендеринг үшін беттер тізімін жасау үшін деректерді қарап шығу қажет. Сонымен қатар, жиектер мен беттерге операциялар жасау қиынға түседі. Дегенмен, ТТ торлары кішкентай сақтау кеңістігімен және пішіннің тиімді өзгеруімен ерекшеленеді. Жоғарыдағы суретте төрт жақты қорап ТТ тор арқылы бейнеленген. Әрбір төбе өзіне жақын төбелердің индексін көрсетеді. "Қорап цилиндрінің" жоғарғы және төменгі ортасындағы 8 және 9 нүктелері бес емес, төрт төбеге қосылған. Кез келген жүйе кез келген берілген төбеге қосылған кез келген санындағы төбелерді басқаруға қабілетті болуы керек. ТТ торларының толық сипаттамасы үшін Smith (2006) еңбегіне жүгініңіз.
Динамикалық торларды рендерлеу
Қанатты жиекті торлар геометрияны динамикалық түрде өзгертуге мүмкіндік беретін жалғыз бейнелеу емес. Қанатты жиек торларын және бет-төбе торларын біріктіретін жаңа бейнелеу – рендерлік динамикалық тор, ол беттің төбелерін (FV торлары сияқты) және жиектің беттерін мен төбелерін (қанатты жиек сияқты) нақты сақтайды. Рендерлік динамикалық торлар стандартты қанатты жиек торларына қарағанда аздап аз жад орынды қажет етеді және беттер тізімінде төбелердің индексі болғандықтан, графикалық аппаратпен тікелей көрсетілуі мүмкін. Бұдан бөлек, төбеден бетке және беттен төбеге өту нақты (тұрақты уақыт) болып табылады. RD торларына төрт шығу жиегі қажет емес, себебі оларды жиектен бетке, содан кейін көрші жиекке өту арқылы табуға болады. RD торлары геометрияны динамикалық түрде жаңартуға мүмкіндік беру арқылы қанатты жиек торларының артықшылықтарын пайдаланады. Толығырақ ақпарат алу үшін Тоблер және Майерхофердің (WSCG 2006) еңбегіне жүгініңіз.
Түйір торларының жиынтығы
ОперацияVertex vertexFace vertexWinged edgeRender динамикалықV VБарлық vertexExplicitV нүктесінің айналасындағы vertex-тер → f1, f2, f3, → v1, v2, v3, V → e1, e2, e3, → v1, v2, v3, V → e1, e2, e3, → v1, v2, v3, E FБеттің барлық жиектеріF(a,b,c) → {a,b}, {b,c}, {a,c}F → {a,b}, {b,c}, {a,c}ExplicitExplicitV FБеттің барлық vertex-теріF(a,b,c) → {a,b,c}ExplicitF → e1, e2, e3 → a, b, cExplicitF VVertex-тің айналасындағы барлық беттерЖұптау іздеуExplicitV → e1, e2, e3 → f1, f2, f3, ExplicitE Vertex-тің айналасындағы барлық жиектерV → {v,v1}, {v,v2}, {v,v3}, V → f1, f2, f3, → v1, v2, v3, ExplicitExplicitF EЖиектің екі жағындағы беттерТізімді салыстыруТізімді салыстыруExplicitExplicitV EЖиектің екі vertex-іE(a,b) → {a,b}E(a,b) → {a,b}ExplicitExplicitFІздеу Белгілі vertex-термен бетті табуF(a,b,c) → {a,b,c}v1,v2,v3 жиынының қиылысыv1,v2,v3 жиынының қиылысыv1,v2,v3 жиынының қиылысыСақтау көлеміV*avg(V,V)3F + V*avg(F,V)3F + 8E + V*avg(E,V)6F + 4E + V*avg(E,V)Мысал: 10 vertex, 16 бет, 24 жиек:10 * 5 = 503*16 + 10*5 = 983*16 + 8*24 + 10*5 = 2906*16 + 4*24 + 10*5 = 242Сурет 6: торлық өкілдік операцияларының қорытындысы
Жоғарыдағы кестеде, explicit операцияның тікелей сақталатын деректер арқылы тұрақты уақытта орындала алатынын көрсетеді; тізімді салыстыру операцияны орындау үшін екі тізім арасында тізімді салыстыру жүргізілуі керек екенін көрсетеді; және жұптау іздеу екі индекс бойынша іздеу жүргізілуі керек екенін көрсетеді. avg(V,V) белгісі - берілген vertex-ке қосылған vertex-тердің орташа саны; avg(E,V) белгісі - берілген vertex-ке қосылған жиектердің орташа саны, ал avg(F,V) белгісі - берілген vertex-ке қосылған беттердің орташа саны. "V → f1, f2, f3, → v1, v2, v3" белгісі операцияны орындау үшін бірнеше элементтер арқылы өту қажет екенін сипаттайды. Мысалы, бет-vertex торларын пайдаланып "берілген V vertex-інің айналасындағы барлық vertex-терді" алу үшін, алдымен, берілген V vertex-інің айналасындағы беттерді vertex тізімін пайдалана отырып табу керек. Содан кейін, сол беттерден бет тізімін қолданып, олардың айналасындағы vertex-терді табыңыз. Қанатқа салынған жиектер барлық ақпаратты сақтайды, ал басқа операциялар қосымша ақпаратты алу үшін әрқашан жиекке бірінші жүреді. Vertex vertex mesh - бұл берілген vertex-тің көршілес vertex-терін анық сақтайтын жалғыз өкілдік. Торлық өкілдіктер күрделірек болған сайын (қорытындыда солдан оңға қарай), нақты сақталатын ақпарат көлемі артады. Бұл әртүрлі элементтердің тура, тұрақты уақытын, өтетін жеріне және топологиясына қол жеткізуді береді, бірақ индекстерді дұрыс ұстау үшін үстеме шығындар мен кеңістіктің артуына әкеледі. 7-суретте осы мақалада сипатталған төрт техниканың әрқайсысы үшін қосылу туралы ақпарат көрсетілген. Басқа өкілдіктер де бар, мысалы жартылай жиек және бұрыштық үстелдер. Бұлардың барлығы - vertex-тер, беттер мен жиектердің бір-біріне индекстелуінің нұсқалары. Жалпы ереже бойынша, беттік vertex торлары геометриясын (байланыстылығын) өзгертпейтін, бірақ статикалық немесе морфты объектілерді нақты уақыт режиміне келтіру сияқты формасын (vertex-терінің орналасуын) өзгертпейтін графикалық аппараттарда нысанды көрсету керек болған кезде қолданылады. Қанатқа салынған жиек немесе рендерлік динамикалық торлар геометрия өзгергенде, мысалы интерактивті модельдеу пакеттерінде немесе бөлшек беттерді есептеу үшін қолданылады. Vertex vertex mesh-тер геометрия немесе топологиядағы тиімді, күрделі өзгерістер үшін өте қолайлы, егер аппараттық рендерингті алаңдатпаса.
Басқа бейнелеулер
Ағызатын торлар беттерді реттелген, бірақ тәуелсіз түрде сақтайды, сондықтан торды бөліктермен жіберуге болады. Беттердің реті кеңістіктік, спектрлік немесе тордың басқа қасиеттеріне негізделуі мүмкін. Ағызатын торлар өте үлкен торды әлі де жүктеліп жатқан кезде де көрсетуге мүмкіндік береді. Прогрессивті торлар төбелер мен беттер деректерін күшейе түсетін егжей-тегжейлілік деңгейлерімен жібереді. Ағызатын торлардан айырмашылығы, прогрессивті торлар бүкіл объектінің жалпы пішінін береді, бірақ егжей-тегжейлілігі төмен деңгейде. Қосымша деректер, жаңа қабырғалар мен беттер, тордың егжей-тегжейін біртіндеп арттырады. Нормальды торлар негізгі тордан нормальды ығысулар жиынтығы ретінде торға прогрессивті өзгерістерді жібереді. Бұл техникамен, текстуралар тізбегі қажетті инкременттік өзгерістерді көрсетеді. Нормальды торлар ықшам болады, себебі орын ауыстыруды көрсету үшін тек бір скалярлық мән қажет. Дегенмен, бұл техникада ығысу текстураларын жасау үшін күрделі түрлендірулер сериясы қажет.
Файл пішімдері
Көпбұрышты тор деректерін сақтау үшін көптеген түрлі файл пішімдері бар. Әрбір формат оны жасаған адамның мақсатына сай қолданылғанда тиімді болады. Танымал форматтарға fbx, dae, obj және stl кіреді. Кейбір форматтардың тізімі төменде берілген:
Файл қосымшасы Формат атауы Ұйым(дар) Бағдарлама(лар) Сипаттама
raw Raw mesh Белгісіз Әртүрлі Ашық, тек ASCII форматы. Әрбір жолда үш бұрышты үшбұрышты құру үшін бос орындармен бөлінген 3 координата бар: X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3
blend Blender файл пішімі Blender Foundation Blender 3D Ашық код, тек бинарлық формат
fbx Autodesk FBX форматы Autodesk Әртүрлі Ғұрыпты. Бинарлық және ASCII сипаттамалары бар.
.3ds 3ds Max файлы Autodesk 3ds Max Бұрыштар мен жақтар санына қатаң 16 биттік шектеулер қойылған, бірақ ескірген, кең таралған формат. Стандартталмаған және жақсы құжатталмаған, бірақ деректер алмасу үшін «де-факто стандарт» болған.
dae Digital Asset Exchange (COLLADA) Sony Computer Entertainment, Khronos Group Белгісіз «COLLAborative Design Activity» дегенді білдіреді. Қателіктерді болдырмау үшін жасалған әмбебап формат.
dgn MicroStation файлы Bentley Systems MicroStation екі dgn файл пішімі бар: 8-ші нұсқадан бұрын және 8-ші нұсқада (V8)
.3dm Rhino файлы Robert McNeel & Associates Rhinoceros 3D
dxf, dwg Drawing Exchange форматы Autodesk AutoCAD
obj Wavefront OBJ Wavefront Technologies 3D геометрияны сипаттайтын әртүрлі ASCII форматы. Барлық жақтардың координаталары сағат тіліне қарсы бағытта орналасады, бұл жақ нормаларын білдіреді. Жұмсақ нормалар әр координатада көрсетіледі.
ply Polygon File Format (Көпбұрышты файл пішімі) Stanford University Әртүрлі Бинарлық және ASCII
pmd Polygon Movie Maker деректері Yu Higuchi MikuMikuDance Құпиялы бинарлық файл пішімі, ол адам тәрізді модель геометриясын, материалды және физикалық ақпаратты сақтайды.
stl Stereolithography форматы (Стереолитография форматы) 3D Systems Көптеген Бинарлық және ASCII формат бастапқыда CNC-ге көмек көрсету үшін жасалған.
amf Additive Manufacturing File Format (Қосымша өндіріс файл пішімі) ASTM International Белгісіз STL форматына ұқсас, бірақ қосымша түстер, материалдар және шоқжұлдыздарды қолдау.
wrl Virtual Reality Modeling Language (Виртуалды шындықты модельдеу тілі) Web3D консорциумы Веб-браузерлер ISO Standard 14772 1:1997
wrz VRML Compressed (VRML қысқартылған) Web3D консорциумы Веб-браузерлер
x3d, x3db, x3dv Extensible 3D (Кеңейтілген 3D) Web3D консорциумы Веб-браузерлер XML негізделген, ашық бастапқы кодты, роялтисіз, кеңейтілетін және өзара әрекеттесетін; сондай-ақ түс, текстура және сахна туралы ақпаратты қолдайды. ISO стандарты 19775/19776/19777
x3dz, x3dbz, x3dvz X3D Compressed Binary (X3D қысқартылған бинарлық) Web3D консорциумы Веб-браузерлер
c4d Cinema 4D файлы Maxon CINEMA 4D
lwo LightWave 3D object файлы NewTek LightWave 3D
smbSCOREC apfRPI SCORECPUMIOPDE негізделген модельдеу жұмыс ағыны үшін ашық бастапқы параллельді бейімделген құрылымсыз 3D торлары.
msh Gmsh Mesh Gmsh әзірлеушілері GMsh жобасы Ашық көз, 1 мен 3 өлшемдегі сызықтық және полиномиялық интерполяцияланған элементтер үшін ASCII тор сипаттамасын ұсынады.
mesh OGRE XML OGRE әзірлеу тобы OGRE, purebasic Ашық бастапқы код. Бинарлық (.mesh) және ASCII (.mesh.xml) пішімі бар. Мұнда координата анимациясы мен Morph нысана анимациясы (blendshape) үшін деректер бар. Скелет анимациясы деректері жеке файлда (.skeleton).
veg Vega FEM тетраэдрлі торы Jernej Barbič Vega FEM Ашық бастапқы код. FEM-ті модельдеу үшін тетраэдрлі тор мен оның материалдық қасиеттерін сақтайды. ASCII (.veg) және бинарлық (.vegb) форматтары бар.
z3d Z3d Oleg Melashenko Zanoza Modeler
vtk VTK mesh VTK, Kitware VTK, Paraview Ашық, ASCII немесе бинарлық формат, онда көптеген әр түрлі деректер өрістері, соның ішінде координаталық деректер, жасуша деректері және өрістік деректер бар.
l4d LAI4D суреті Laboratory of Artificial Intelligence for Design (Дизайн үшін жасанды интеллект зертханасы) LAI4D ASCII деректер форматы, ол субъектілердің иерархиялық ағашын сипаттайды.
File suffix Format name Organization(s) Program(s) Description raw Raw mesh Unknown Various Open, ASCII only format. Each line contains 3 vertices, separated by spaces, to form a triangle, like so: X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3 blend Blender File Format Blender Foundation Blender 3D Open source, binary only format fbx Autodesk FBX Format Autodesk Various Proprietary. Binary and ASCII specifications exist. .3ds 3ds Max File Autodesk 3ds Max A common but outdated format with hard 16 bit limits on the number of vertices and faces. Neither standardised nor well documented, but used to be a "de facto standard" for data exchange. dae Digital Asset Exchange (COLLADA) Sony Computer Entertainment, Khronos Group N/A Stands for "COLLAborative Design Activity". A universal format designed to prevent incompatibility. dgn MicroStation File Bentley Systems MicroStation There are two dgn file formats: pre version 8 and version 8 (V8) .3dm Rhino File Robert McNeel & Associates Rhinoceros 3D dxf, dwg Drawing Exchange Format Autodesk AutoCAD obj Wavefront OBJ Wavefront Technologies Various ASCII format describing 3D geometry. All faces' vertices are ordered counter clockwise, making facet normals implicit. Smooth normals are specified per vertex. ply Polygon File Format Stanford University Various Binary and ASCII pmd Polygon Movie Maker data Yu Higuchi MikuMikuDance Proprietary binary file format for storing humanoid model geometry with rigging, material, and physics information. stl Stereolithography Format 3D Systems Many Binary and ASCII format originally designed to aid in CNC. amf Additive Manufacturing File Format ASTM International N/A Like the STL format, but with added native color, material, and constellation support. wrl Virtual Reality Modeling Language Web3D Consortium Web Browsers ISO Standard 14772 1:1997 wrz VRML Compressed Web3D Consortium Web Browsers x3d, x3db, x3dv Extensible 3D Web3D Consortium Web Browsers XML based, open source, royalty free, extensible, and interoperable; also supports color, texture, and scene information. ISO Standard 19775/19776/19777 x3dz, x3dbz, x3dvz X3D Compressed Binary Web3D Consortium Web Browsers c4d Cinema 4D File Maxon CINEMA 4D lwo LightWave 3D object File NewTek LightWave 3D smbSCOREC apfRPI SCORECPUMIOpen source parallel adaptive unstructured 3D meshes for PDE based simulation workflows. msh Gmsh Mesh GMsh Developers GMsh Project Open source, providing an ASCII mesh description for linear and polynomially interpolated elements in 1 to 3 dimensions. mesh OGRE XML OGRE Development Team OGRE, purebasic Open Source. Binary (. mesh) and ASCII (. mesh. xml) format available. Includes data for vertex animation and Morph target animation (blendshape). Skeletal animation data in separate file (. skeleton). veg Vega FEM tetrahedral mesh Jernej Barbič Vega FEM Open Source. Stores a tetrahedral mesh and its material properties for FEM simulation. ASCII (. veg) and binary (. vegb) formats available. z3d Z3d Oleg Melashenko Zanoza Modeler vtk VTK mesh VTK, Kitware VTK, Paraview Open, ASCII or binary format that contains many different data fields, including point data, cell data, and field data. l4d LAI4D drawing Laboratory of Artificial Intelligence for Design LAI4D ASCII data format that describes a hierarchical tree of entities.