Тесселяция NURBS-поверхностей
- From
- Alex Astafiev (2:5000/228.16)
- To
- Georgy Udov
- Date
- 2003-01-17T05:22:31Z
- Area
- RU.ALGORITHMS
А что ты слышал про распределенные вычисления folding@home, дорогой Georgy?
GU> Задача: Дана некоторая NURBS-поверхность. Также даны некоторые границы
GU> и "дырки" (все они заданы полигонами в параметрическом пространстве).
GU> Требуется осуществить тесселяцию поверхности(приближенно представить
GU> набором треугольников и (или) четырёхугольников).
GU>
GU> Вопрос: Обычно на первом этапе решения такой задачи выбирают некоторую
GU> сетку в параметрическом (uv) пространстве.
GU>
GU> 1) Можно ли как-нибудь априори выбрать шаг этой сетки, если
GU> предполагать её с постоянным шагом в пределах каждого отрезка между
GU> узлами, исходя из требуемой девиации(максимального отклонения
GU> результата триангуляции от математической поверхности) ?
GU>
GU> 2) Насколько эффективным(реализуемым) является следующий адаптивный
GU> алгоритм:
GU>
GU> 2.1) Разбиваем поверхность в параметрическом пространстве сеткой с
GU> постоянным в пределах каждого междуузельного интервала шагом, и с
GU> одинаковым количеством разбиений во всех междуузельных интервалах.
GU>
GU> 2.2) Далее - рекурсивно. Для каждого прямоугольника - если расстояние
GU> от центра данного прямоугольника до соответствующей точки поверхности
GU> не превосходит заранее заданного значения максимальной девиации -
GU> пропускаем его, иначе - разбиваем средними линиями на 4 штуки, и на
GU> них снова запускаем данную функцию.
да можно. тема эта столь богатая, что выходит за рамки эхи.
я неоднократно сталкивался с готовыми реализациями в виде исх кода, тут
изобретать нечего,все уже продумано. Просто поищи про адаптивную тесселяцию на
сайтах opengl.org/gamasutra/google. Или поищи real time nurbs. Это даст все
ответы.
Вот так, вкратце. :)
---
* Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)