Конструктивна блокова геометрія (англ. Constructive Solid Geometry, скорочено CSG) — це технологія, яка використовується для моделювання твердих тіл. Конструктивна блокова геометрія дозволяє створити більш складну поверхню чи об'єкт як комбінацію простих об'єктів за допомогою бітових операцій. Це дозволяє спростити математичний опис складних об'єктів, хоча для цього не завжди використовуються лише примітивні об'єкти.
Конструктивна блокова геометрія часто, але не завжди, є способом моделювання в тривимірній графіці та САПР. КБУ також часто використовують у процедурному моделюванні. Так за допомогою конструктивної блокової геометрії представляють моделі або поверхні, які лише виглядають складними, а насправді вони являють собою більш хитро скомбіновані або декомбіновані прості об'єкти. В деяких випадках конструктивна блокова геометрія використовує полігональні сітки (англ. polygonal mesh), і може бути процедурною та/або параметричною.
Опис
Найпростіші тіла, які використовуються в конструктивній блокової геометрії називаються примітивами (англ. primitives). Як правило, це об'єкти, які мають просту форму: куб, циліндр, призма, піраміда, сфера, конус. Набір доступних примітивів залежить від програмного забезпечення. Так, деякі програми дозволяють створення нових об'єктів конструктивно блокової геометрії на основі вигнутих об'єктів, а інші ні.
Побудова складнішого об'єкта відбувається шляхом застосування до об'єктів булевих (бітових) операцій на множинах — об'єднання, перетин і різниця, а також геометричні перетворення цих множин.
Зазвичай примітив можна описати алгоритмом, який приймає декілька параметрів, наприклад: сфера може бути описана координатами центра разом зі значенням радіуса. Примітиви можуть бути об'єднані в складені об'єкти за допомогою таких операцій:
- Об'єднання
Злиття двох об'єктів в один - Різниця
Віднімання одного об'єкта від іншого - Перетин
Спільна частина обох об'єктів
Поєднуючи ці елементарні операції, можна будувати складні об'єкти на основі простих.
Використання
Конструктивна блокова геометрія (КБУ) має ряд практичних застосувань. Вона застосовується там, де необхідне використання простих геометричних об'єктів, або математична точність. Майже у всіх інженерних пакетах САПР використовується КБУ (де це може бути корисно для представлення інструментів відсікань та функцій, де деталі повинні підганятися одна до одної).
Ігрові рушії, наприклад Quake engine, Unreal engine, Hammer (нативний редактор рівнів рушія Source), [en] / [en] використовують цю систему. Конструктивна блокова геометрія широко використовується, оскільки розробник може використовувати множину відносно простих об'єктів, щоб створити дуже складне геометричне зображення. При використанні процедурної, або параметричної конструктивної блокової геометрії, користувач може переглянути свою складну геометричну фігуру, змінюючи положення об'єктів, або змінюючи логічні операції для комбінацій цих об'єктів.
Однією з переваг конструктивної блокової геометрії є те, що вона може гарантувати, що створені об'єкти є «твердими», або «водонепроникними», якщо всі примітивні форми є «водонепроникними». Це може бути важливо для деяких виробничих або інженерних обчислювальних застосувань. Для порівняння, при створенні геометричних фігур на основі представлення границь, потрібен додатковий топологічний ряд даних або потрібно робити перевірку на узгодженість задля гарантії, що цей опис границі фігури вказує на чинний твердий об'єкт.
Зручною властивістю об'єктів конструктивної блокової геометрії є те, що довільні точки легко класифікувати як всередині, так і поза формою, створеною КБУ. Точка просто класифікується за всіма базовими примітивами та обчислюється отриманий булевий вираз. Це бажана опція для деяких програм, таких як трасування променів.
Перетворення з полігональних сіток в КБГ
Оскільки моделі конструктивної блокової геометрії параметризовані за конструкцією, вони часто вигідніші за полігональні сітки, коли справа стосується додатків, метою яких є виготовлення незалежних моделей. Для таких програм може бути корисним перетворити вже наявні сітки в дерева КБГ. Проблема автоматичного перетворення полігональних сіток у дерева конструктивної блокової геометрії називається оберненою КБГ.
Отримане дерево КБГ повинно займати той самий обсяг у тривимірному просторі, що і вхідна полігональна сітка, маючи мінімальну кількість вузлів. Перевагу віддають простим рішенням, щоб гарантувати, що отриману модель можна легко редагувати. Розв'язання цієї проблеми є складним завданням через великий простір пошуку, який потрібно дослідити. Він поєднує в собі безперервні параметри, такі як розмірність, розмір примітивних фігур і дискретні параметри, такі як булеві оператори, що використовуються для побудови остаточного дерева КБГ.
Дедуктивні методи розв'язують цю проблему шляхом побудови набору напівпросторів, що описують внутрішню будову геометричної фігури. Ці напівпростори використовуються для опису примітивів, які можна об'єднати, щоб отримати фінальну складну модель.
Інший підхід поєднує в собі виявлення примітивних фігур та обчислення дерева КБГ, що визначає фінальну модель. Цей підхід використовує здатність сучасних засобів [en] знаходити дерево КБГ з мінімальною складністю.
Існують також підходи, які використовують генетичні алгоритми для ітеративної оптимізації початкової форми у напрямку до форми бажаної полігональної сітки.
Програми із підтримкою КБГ
Загальні мови моделювання та програмне забезпечення
- [en]
- [en]
Трасування променів та перенесення частинок
Комп'ютерне проектування
- AutoCAD
- Autodesk Inventor
- Autodesk Fusion 360
- BRL-CAD
- CATIA
- FreeCAD
- NX CAD
- SolveSpaceAutoCAD
- Autodesk Inventor
- Autodesk Fusion 360
- BRL-CAD
- NIX CAD
- SolveSpace
- [en]
- [en]
- [en] (раніше відомий як (Pro/Engineer))
- Realsoft 3D
- Rhino
- [en]
- [en]
- SolidWorks
- Tinkercad
- [en]
Створення ігор
Інші
Примітки
- Foley, James D.; Van, Foley Dan; Dam, Andries Van; Feiner, Steven K.; Hughes, John F.; Angel, Edward; Hughes, J. (1996). (англ.). Addison-Wesley Professional. ISBN . Архів оригіналу за 15 квітня 2021. Процитовано 24 травня 2021.
- . Computer Graphics and Image Processing (англ.). Т. 18, № 2. 1 лютого 1982. с. 109—144. doi:10.1016/0146-664X(82)90169-1. ISSN 0146-664X. Архів оригіналу за 24 травня 2021. Процитовано 24 травня 2021.
- Bloomenthal, Jules; Bajaj, Chandrajit; Blinn, Jim; Wyvill, Brian; Cani, Marie-Paule; Rockwood, Alyn; Wyvill, Geoff (15 серпня 1997). (англ.). Morgan Kaufmann. ISBN . Архів оригіналу за 23 квітня 2017. Процитовано 24 травня 2021.
- Constructive solid geometry. Wikipedia (англ.). 10 травня 2021. Процитовано 24 травня 2021.
- Ansari, Marwan (19 квітня 2016). (англ.). CRC Press. ISBN . Архів оригіналу за 1 січня 2017. Процитовано 24 травня 2021.
- Glassner, Andrew S. (11 лютого 1989). (англ.). Morgan Kaufmann. ISBN . Архів оригіналу за 1 січня 2017. Процитовано 23 травня 2021.
- . Computer-Aided Design (англ.). Т. 36, № 11. 15 вересня 2004. с. 1063—1073. doi:10.1016/j.cad.2004.01.006. ISSN 0010-4485. Архів оригіналу за 24 травня 2021. Процитовано 24 травня 2021.
- Du, Tao; Inala, Jeevana Priya; Pu, Yewen; Spielberg, Andrew; Schulz, Adriana; Rus, Daniela; Solar-Lezama, Armando; Matusik, Wojciech (4 грудня 2018). InverseCSG: automatic conversion of 3D models to CSG trees. ACM Transactions on Graphics. Т. 37, № 6. с. 213:1–213:16. doi:10.1145/3272127.3275006. ISSN 0730-0301. Процитовано 24 травня 2021.
- (PDF). Архів оригіналу (PDF) за 14 квітня 2021. Процитовано 24 травня 2021.
- Engine, Godot. . Godot Engine (англ.). Архів оригіналу за 24 травня 2021. Процитовано 24 травня 2021.
- . sourceforge.net. Архів оригіналу за 24 травня 2021. Процитовано 24 травня 2021.
Література
- Martti Mantyla, «An Introduction to Solid modeling», 1988
- Christoph M. Hoffman, «Geometric and Solid modeling», 1989
- Philip M. Hubbard, «Constructive Solid Geometry for Triangulated Polyhedra», 1990
- Michael Muuss & Lee Butler, Глава «Combinatorial Solid Geometry, B-Reps, and n-Manifold Geometry» з книги «State of the Art in Computer Graphics», 1991
Додаткові посилання
- — пояснення термінів, рівнянь та застосувань.
- GNU Triangulated Surface library [ 11 лютого 2021 у Wayback Machine.] — бібліотека з відкритим кодом (LGPL), яка містить можливості CSG на сітках з трикутників.
- Computational Geometry Algorithms Library [ 22 лютого 2011 у Wayback Machine.] — бібліотека з відкритим кодом (LGPL), яка містить, крім іншого, можливості CSG.
- The CSG rendering library [ 30 березня 2022 у Wayback Machine.] — бібліотека з відкритим кодом, яка виробляє орієнтований на зображення CSG-рендеринг з використанням OpenGL.
- HyperFun Project [ 17 грудня 2014 у Wayback Machine.] — проста функціональна мова для геометричного моделювання, здатний виконувати CSG-операції на різних типах об'єктів.
- — програма 3D CAD з відкритим сирцевим кодом.
- SimpleGeo — інтерактивне твердотіле моделювання для симуляції переміщення часток за методом Монте-Карло.
- FMEpedia CSGBuilder example [ 5 грудня 2014 у Wayback Machine.] — wikipedia CSG binary tree as replicated using FME (Feature Manipulation Engine).
- — програмна бібліотека для програм з 3D/2D-графікою, розроблена на C++ з використанням OpenGL, містить можливості CSG на сітках з трикутників.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Konstruktivna blokova geometriya angl Constructive Solid Geometry skorocheno CSG ce tehnologiya yaka vikoristovuyetsya dlya modelyuvannya tverdih til Konstruktivna blokova geometriya dozvolyaye stvoriti bilsh skladnu poverhnyu chi ob yekt yak kombinaciyu prostih ob yektiv za dopomogoyu bitovih operacij Ce dozvolyaye sprostiti matematichnij opis skladnih ob yektiv hocha dlya cogo ne zavzhdi vikoristovuyutsya lishe primitivni ob yekti Skladnij ob yekt mozhe buti predstavlenij dvijkovim derevom de listya ce ob yekti a vuzli operaciyi displaystyle cap peretin displaystyle cup ob yednannya displaystyle riznicya Konstruktivna blokova geometriya chasto ale ne zavzhdi ye sposobom modelyuvannya v trivimirnij grafici ta SAPR KBU takozh chasto vikoristovuyut u procedurnomu modelyuvanni Tak za dopomogoyu konstruktivnoyi blokovoyi geometriyi predstavlyayut modeli abo poverhni yaki lishe viglyadayut skladnimi a naspravdi voni yavlyayut soboyu bilsh hitro skombinovani abo dekombinovani prosti ob yekti V deyakih vipadkah konstruktivna blokova geometriya vikoristovuye poligonalni sitki angl polygonal mesh i mozhe buti procedurnoyu ta abo parametrichnoyu OpisNajprostishi tila yaki vikoristovuyutsya v konstruktivnij blokovoyi geometriyi nazivayutsya primitivami angl primitives Yak pravilo ce ob yekti yaki mayut prostu formu kub cilindr prizma piramida sfera konus Nabir dostupnih primitiviv zalezhit vid programnogo zabezpechennya Tak deyaki programi dozvolyayut stvorennya novih ob yektiv konstruktivno blokovoyi geometriyi na osnovi vignutih ob yektiv a inshi ni Pobudova skladnishogo ob yekta vidbuvayetsya shlyahom zastosuvannya do ob yektiv bulevih bitovih operacij na mnozhinah ob yednannya peretin i riznicya a takozh geometrichni peretvorennya cih mnozhin Zazvichaj primitiv mozhna opisati algoritmom yakij prijmaye dekilka parametriv napriklad sfera mozhe buti opisana koordinatami centra razom zi znachennyam radiusa Primitivi mozhut buti ob yednani v skladeni ob yekti za dopomogoyu takih operacij Ob yednannya Zlittya dvoh ob yektiv v odin Riznicya Vidnimannya odnogo ob yekta vid inshogo Peretin Spilna chastina oboh ob yektiv Poyednuyuchi ci elementarni operaciyi mozhna buduvati skladni ob yekti na osnovi prostih VikoristannyaKonstruktivna blokova geometriya KBU maye ryad praktichnih zastosuvan Vona zastosovuyetsya tam de neobhidne vikoristannya prostih geometrichnih ob yektiv abo matematichna tochnist Majzhe u vsih inzhenernih paketah SAPR vikoristovuyetsya KBU de ce mozhe buti korisno dlya predstavlennya instrumentiv vidsikan ta funkcij de detali povinni pidganyatisya odna do odnoyi Igrovi rushiyi napriklad Quake engine Unreal engine Hammer nativnij redaktor rivniv rushiya Source en en vikoristovuyut cyu sistemu Konstruktivna blokova geometriya shiroko vikoristovuyetsya oskilki rozrobnik mozhe vikoristovuvati mnozhinu vidnosno prostih ob yektiv shob stvoriti duzhe skladne geometrichne zobrazhennya Pri vikoristanni procedurnoyi abo parametrichnoyi konstruktivnoyi blokovoyi geometriyi koristuvach mozhe pereglyanuti svoyu skladnu geometrichnu figuru zminyuyuchi polozhennya ob yektiv abo zminyuyuchi logichni operaciyi dlya kombinacij cih ob yektiv Odniyeyu z perevag konstruktivnoyi blokovoyi geometriyi ye te sho vona mozhe garantuvati sho stvoreni ob yekti ye tverdimi abo vodoneproniknimi yaksho vsi primitivni formi ye vodoneproniknimi Ce mozhe buti vazhlivo dlya deyakih virobnichih abo inzhenernih obchislyuvalnih zastosuvan Dlya porivnyannya pri stvorenni geometrichnih figur na osnovi predstavlennya granic potriben dodatkovij topologichnij ryad danih abo potribno robiti perevirku na uzgodzhenist zadlya garantiyi sho cej opis granici figuri vkazuye na chinnij tverdij ob yekt Zruchnoyu vlastivistyu ob yektiv konstruktivnoyi blokovoyi geometriyi ye te sho dovilni tochki legko klasifikuvati yak vseredini tak i poza formoyu stvorenoyu KBU Tochka prosto klasifikuyetsya za vsima bazovimi primitivami ta obchislyuyetsya otrimanij bulevij viraz Ce bazhana opciya dlya deyakih program takih yak trasuvannya promeniv Peretvorennya z poligonalnih sitok v KBGOskilki modeli konstruktivnoyi blokovoyi geometriyi parametrizovani za konstrukciyeyu voni chasto vigidnishi za poligonalni sitki koli sprava stosuyetsya dodatkiv metoyu yakih ye vigotovlennya nezalezhnih modelej Dlya takih program mozhe buti korisnim peretvoriti vzhe nayavni sitki v dereva KBG Problema avtomatichnogo peretvorennya poligonalnih sitok u dereva konstruktivnoyi blokovoyi geometriyi nazivayetsya obernenoyu KBG Otrimane derevo KBG povinno zajmati toj samij obsyag u trivimirnomu prostori sho i vhidna poligonalna sitka mayuchi minimalnu kilkist vuzliv Perevagu viddayut prostim rishennyam shob garantuvati sho otrimanu model mozhna legko redaguvati Rozv yazannya ciyeyi problemi ye skladnim zavdannyam cherez velikij prostir poshuku yakij potribno dosliditi Vin poyednuye v sobi bezperervni parametri taki yak rozmirnist rozmir primitivnih figur i diskretni parametri taki yak bulevi operatori sho vikoristovuyutsya dlya pobudovi ostatochnogo dereva KBG Deduktivni metodi rozv yazuyut cyu problemu shlyahom pobudovi naboru napivprostoriv sho opisuyut vnutrishnyu budovu geometrichnoyi figuri Ci napivprostori vikoristovuyutsya dlya opisu primitiviv yaki mozhna ob yednati shob otrimati finalnu skladnu model Inshij pidhid poyednuye v sobi viyavlennya primitivnih figur ta obchislennya dereva KBG sho viznachaye finalnu model Cej pidhid vikoristovuye zdatnist suchasnih zasobiv en znahoditi derevo KBG z minimalnoyu skladnistyu Isnuyut takozh pidhodi yaki vikoristovuyut genetichni algoritmi dlya iterativnoyi optimizaciyi pochatkovoyi formi u napryamku do formi bazhanoyi poligonalnoyi sitki Programi iz pidtrimkoyu KBGZagalni movi modelyuvannya ta programne zabezpechennya en en Trasuvannya promeniv ta perenesennya chastinok PhotoRealistic RenderMan POV Ray Komp yuterne proektuvannya AutoCAD Autodesk Inventor Autodesk Fusion 360 BRL CAD CATIA FreeCAD NX CAD SolveSpaceAutoCAD Autodesk Inventor Autodesk Fusion 360 BRL CAD NIX CAD SolveSpace en en en ranishe vidomij yak Pro Engineer Realsoft 3D Rhino en en SolidWorks Tinkercad en Stvorennya igor en Godot GtkRadiant Unity UnrealEd Valve Hammer Editor Roblox Inshi en en versiyi 0 6 0 Blender en Geant4 en SketchUpPrimitkiFoley James D Van Foley Dan Dam Andries Van Feiner Steven K Hughes John F Angel Edward Hughes J 1996 angl Addison Wesley Professional ISBN 978 0 201 84840 3 Arhiv originalu za 15 kvitnya 2021 Procitovano 24 travnya 2021 Computer Graphics and Image Processing angl T 18 2 1 lyutogo 1982 s 109 144 doi 10 1016 0146 664X 82 90169 1 ISSN 0146 664X Arhiv originalu za 24 travnya 2021 Procitovano 24 travnya 2021 Bloomenthal Jules Bajaj Chandrajit Blinn Jim Wyvill Brian Cani Marie Paule Rockwood Alyn Wyvill Geoff 15 serpnya 1997 angl Morgan Kaufmann ISBN 978 1 55860 233 5 Arhiv originalu za 23 kvitnya 2017 Procitovano 24 travnya 2021 Constructive solid geometry Wikipedia angl 10 travnya 2021 Procitovano 24 travnya 2021 Ansari Marwan 19 kvitnya 2016 angl CRC Press ISBN 978 1 4398 6772 3 Arhiv originalu za 1 sichnya 2017 Procitovano 24 travnya 2021 Glassner Andrew S 11 lyutogo 1989 angl Morgan Kaufmann ISBN 978 0 12 286160 4 Arhiv originalu za 1 sichnya 2017 Procitovano 23 travnya 2021 Computer Aided Design angl T 36 11 15 veresnya 2004 s 1063 1073 doi 10 1016 j cad 2004 01 006 ISSN 0010 4485 Arhiv originalu za 24 travnya 2021 Procitovano 24 travnya 2021 Du Tao Inala Jeevana Priya Pu Yewen Spielberg Andrew Schulz Adriana Rus Daniela Solar Lezama Armando Matusik Wojciech 4 grudnya 2018 InverseCSG automatic conversion of 3D models to CSG trees ACM Transactions on Graphics T 37 6 s 213 1 213 16 doi 10 1145 3272127 3275006 ISSN 0730 0301 Procitovano 24 travnya 2021 PDF Arhiv originalu PDF za 14 kvitnya 2021 Procitovano 24 travnya 2021 Engine Godot Godot Engine angl Arhiv originalu za 24 travnya 2021 Procitovano 24 travnya 2021 sourceforge net Arhiv originalu za 24 travnya 2021 Procitovano 24 travnya 2021 LiteraturaMartti Mantyla An Introduction to Solid modeling 1988 Christoph M Hoffman Geometric and Solid modeling 1989 Philip M Hubbard Constructive Solid Geometry for Triangulated Polyhedra 1990 Michael Muuss amp Lee Butler Glava Combinatorial Solid Geometry B Reps and n Manifold Geometry z knigi State of the Art in Computer Graphics 1991Dodatkovi posilannya poyasnennya terminiv rivnyan ta zastosuvan GNU Triangulated Surface library 11 lyutogo 2021 u Wayback Machine biblioteka z vidkritim kodom LGPL yaka mistit mozhlivosti CSG na sitkah z trikutnikiv Computational Geometry Algorithms Library 22 lyutogo 2011 u Wayback Machine biblioteka z vidkritim kodom LGPL yaka mistit krim inshogo mozhlivosti CSG The CSG rendering library 30 bereznya 2022 u Wayback Machine biblioteka z vidkritim kodom yaka viroblyaye oriyentovanij na zobrazhennya CSG rendering z vikoristannyam OpenGL HyperFun Project 17 grudnya 2014 u Wayback Machine prosta funkcionalna mova dlya geometrichnogo modelyuvannya zdatnij vikonuvati CSG operaciyi na riznih tipah ob yektiv programa 3D CAD z vidkritim sircevim kodom SimpleGeo interaktivne tverdotile modelyuvannya dlya simulyaciyi peremishennya chastok za metodom Monte Karlo FMEpedia CSGBuilder example 5 grudnya 2014 u Wayback Machine wikipedia CSG binary tree as replicated using FME Feature Manipulation Engine programna biblioteka dlya program z 3D 2D grafikoyu rozroblena na C z vikoristannyam OpenGL mistit mozhlivosti CSG na sitkah z trikutnikiv