Merge remote-tracking branch 'origin/brothermechanic/cad_cg_pipeline' into cad2engine
This commit is contained in:
commit
ded08827a5
6 changed files with 47 additions and 1 deletions
45
docs/technologies/cad_cg_pipeline.md
Normal file
45
docs/technologies/cad_cg_pipeline.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
id: cad_cg_pipeline
|
||||
title: 'Подбор алгоритмов и параметров обработки САПР моделей детали в 3д ассет'
|
||||
---
|
||||
|
||||
## Процесс подготовки САПР моделей в виртуальные среды, симуляторы
|
||||
|
||||
1. Тесселяция САПР модели.
|
||||
2. Ретопология результата тесселяции модели.
|
||||
3. Физические свойства материала результата ретопологии модели (шейдинг).
|
||||
4. Текстурирование физического материала результата шейдинга модели.
|
||||
5. Запекание растровых текстур физического материала результата текстурирования модели.
|
||||
6. В результате получается **3D ассет** - полигональная модель с материалом + набор текстур.
|
||||
|
||||
Качественный 3D ассет имеет хороший баланс между точностью геометрии и реcурсоёмкостью. То есть, хочется точность геометрии иметь выше, а ресурсоемкость - ниже.
|
||||
|
||||
## Выбор алгоритма тесселяции
|
||||
Основываясь на статье [Алгоритмы тесселяции моделей САПР](https://dev.opencascade.org/doc/overview/html/occt_user_guides__mesh.html) для виртуальных сред, симуляторов и прочих целей визуального характера выбираем **Алгоритм триангуляции Делоне с помощью алгоритма Ватсона** в виде его реализации BRepMesh_IncrementalMesh.
|
||||
|
||||
### Обход недостаточной предсказуемости алгоритмов тесселяции при высоких отклонениях
|
||||
Для наглядного примера возьмем символ "O" шрифта Arial:
|
||||
|
||||

|
||||
|
||||
Доведем ситуацию до абсурда, чтоб было нагляднее, - выставим нулевой уровень тесселяции контура:
|
||||
|
||||

|
||||
|
||||
Мы знаем этот символ, он должен быть симметричным, а сейчас мы видим что он симметричен только на высоких уровнях тесселяции. Это происходит вледствие **разного расстояния** и **разной кривизны** между ключевыми точками. И вообщем не возможно добиваться на производственных моделях равномерности расстояния и кривизны между точками. Поэтому мы предлагаем следующий способ - проводить тесселяцию с минимальным допуском отклонения от истинной геометрии САПР модели, в ущерб ресурсоемкости.
|
||||
|
||||

|
||||
|
||||
- минусом будет **повышенная ресурсоемкость** на этапе ретопологии (где она и будет снижена)
|
||||
+ плюсом будет **предсказуемая точность** полигональной модели 3д ассета.
|
||||
|
||||
Забегая вперед, посмотрим на следующий пример ретопологии:
|
||||
|
||||

|
||||
|
||||
На примере выше видно, что и при таком минимуме способ показывает свою состоятельность. Результат получился симметричнее, так как кривизна левой и правой стороны, если не близка, то очень похожа. То есть результат предсказуемый.
|
||||
Для производственного 3д ассета нужно, конечно, выбирать уровень ретопологии с большим количеством полигонов, таким, чтобы обеспечить минимальное отклонение геометрии от САПР модели.
|
||||
|
||||
**Вывод**. Проводить тесселяцию с минимальным допуском отклонения от истинной геометрии САПР модели, в ущерб ресурсоемкости.
|
||||
|
||||
## Выбор алгоритма ретопологии
|
BIN
docs/technologies/img/O1.jpg
Normal file
BIN
docs/technologies/img/O1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
BIN
docs/technologies/img/O2.jpg
Normal file
BIN
docs/technologies/img/O2.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
BIN
docs/technologies/img/O3.jpg
Normal file
BIN
docs/technologies/img/O3.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
BIN
docs/technologies/img/O4.jpg
Normal file
BIN
docs/technologies/img/O4.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
|
@ -32,7 +32,8 @@ module.exports = {
|
|||
'technologies/tesselation',
|
||||
'technologies/wood',
|
||||
'technologies/recycling',
|
||||
'technologies/knowledge-management'
|
||||
'technologies/knowledge-management',
|
||||
'technologies/cad_cg_pipeline'
|
||||
],
|
||||
},
|
||||
/* {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue