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

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

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

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

|
||||
|
||||
Это лабораторная ситуация, создана с целью показать что и при таком минимуме, способ показывает свою состоятельность. Результат получился симметричнее, так как кривизна левой и правой стороны, если не близка, то очень похожа, то есть результат - предсказуемый.
|
||||
Для производственного 3д ассета нужно, конечно, выбирать уровень ретопологии с большим количеством полигонов, таким, чтобы обеспечить минимальное отклонение геометрии от САПР модели.
|
||||
|
||||
**Вывод**. Проводить тесселяцию с минимальным допуском отклонения от истинной геометрии САПР модели, в ущерб ресурсоемкости.
|
||||
|
||||
#### 0. Выбор алгоритма ретопологии
|
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,6 +32,7 @@ module.exports = {
|
|||
'technologies/wood',
|
||||
'technologies/recycling',
|
||||
'technologies/knowledge-management'
|
||||
'technologies/cad_cg_pipeline'
|
||||
],
|
||||
},
|
||||
/* {
|
||||
|
@ -75,4 +76,4 @@ module.exports = {
|
|||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue