2016-12-15 2 views
0

Мне нужна помощь в рендеринге поверхности NURBS в webGL. Несколько дней назад наш профессор поручил нам нарисовать с NURBS флаг и оживить его. Мы должны использовать webGL (и не можем trhee.js ...). Я понятия не имею, как действовать (хотя я знаю теорию о NURBS и тесселяции более или менее). Подсказка?Рендеринг поверхности NURBS в webGL

Отказ от ответственности: Я не прошу разрешения. Это противоречит правилам, и я хочу получить его сам. Мне просто нужно указать на правильное направление.

Заранее спасибо

+0

Сказать, что вам нужно нарисовать поверхность NURBS с помощью API рендеринга, основанного на многоугольниках, в значительной степени говорит о том, чтобы пойти на Луну с автомобилем. Вы можете рисовать только что-то, что представляет собой поверхности NURBS –

ответ

1

Просто потому, что вы можете не использования Three.js не означает, что вы не можете смотреть на него, чтобы понять, как это работает! This example renders NURBS и вы можете view the source code. (Подсказка: он использует THREE.NURBSSurface, THREE.NURBSUtils, etc..., который затем подключен к ParametricBufferGeometry)

Что касается части WebGL, если вы знакомы с OpenGL, то это очень много похожего на функции. Вам нужно сделать холст с помощью контекста WebGL, сгенерировать все ваши данные на CPU (определения поверхности, тесселяции и т. Д.), А затем передать все данные вершин и индексов на графический процессор, все это с помощью шейдера.

1

Я хотел бы предложить вам начать с двух следующих лекций:

Drawing Bézier Curves

Drawing Lines is Hard

и, наконец, использовать этот WebGL пример в качестве отправной точки для присваивания:

Resolution independent rendering of Bezier curves in WebGL

Удачи и счастливого кодирования! Если вы достигнете чего-то хорошего, сообщите нам об этом!