Тесселяция 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)