ПрограммированиеФорумГрафика

Трассировка криволинейных поверхностей. (2 стр)

Страницы: 1 2
#15
15:36, 26 дек 2009

Trin
> И как из таких треугольников сложить беспрерывную и беспрерывно гладкую
> поверхность?
Так же как из обычных треугольников, только в отличии от них, поверхность будет действительно гладкая. Кончено понадобится свой редактор, и можно не ограничиваться только треугольниками. В общем это всё только предположения.)

#16
15:43, 26 дек 2009

Trin
>В таком случае не будет нормального отражения/преломления. А если и будет то для этого нужно громадное количество треугольников
это почему еще? держи для каждой вершины свою нормаль и интерполируй... должно быть хорошо по идее

#17
15:45, 26 дек 2009

rAmpArk
мне немного не понятно как ты будешь выбирать радиус сферы для обеспечения нужного уровня гладкости

#18
16:09, 26 дек 2009

Madware
А где можно почитать про блобы подробней? Желательно на русском=)

#19
16:14, 26 дек 2009

rAmpArk
> Так же как из обычных треугольников, только в отличии от них, поверхность будет
> действительно гладкая. Кончено понадобится свой редактор, и можно не
> ограничиваться только треугольниками. В общем это всё только предположения.)
Ну а как тогда по Fi, Teta сферы определить границы треугольника? Что бы они были вогнутыми или выпуклыми?)

Madware
> это почему еще? держи для каждой вершины свою нормаль и интерполируй... должно
> быть хорошо по идее
Пробывал уже. Фигня получается, отражаться будет от ровной поверхности и с нормалью от криволинейной поверхности.

#20
17:10, 26 дек 2009

Trin
На русском не знаю... Я вообще про блобы прочитал в демосценерском журнале hugi... Но там на инглише ессно)))

Я вообще могу так, на пальцах, объяснить:

Блобы пришли к нам из физики. Теория заключается в том что у нас есть некие источники потенциала(электромагнитного или какого другого - не важно).
Так вот: Точка в n-мерном пространстве(у нас будет в 3D :)) имеет потенциал равный сумме ее потенциалов относительно источников.
Функцией для потенциала обычно берут 1 / R^2 (или большая степень, если хочешь квадратные блобы ^_^, но, вроде как, желательно четная) где R - расстояние от точки до источника потенциала.

Таким образом, потенциал в точке равен:
Блобы формула 1 | Трассировка криволинейных поверхностей.
<V,V> это у меня скалярное произведение :)
P - наша точка
Pi - точка источника потенциала

Теперь, если взять за условие что p = const, мы получим набор точек, образующих "изопотенциальную поверхность", которая и есть блоб.

Если p > const то точка находится внутри блоба, если p < const - она снаружи.

Нормаль в точке блоба считается через градиент потенциала, то есть, нам нужно взять из нашей формулы частичные производные по x, y, z:
Блобы формула 2 | Трассировка криволинейных поверхностей.

Вот, собсна и все)

УПД: упс :) не Rn^2 а Ri^2 :) ну да ладно)

#21
17:17, 26 дек 2009

Еще можно вроде как наверх вместо единицы разные цифарки разным источникам потенциала ставить, тогда будет блоб из шариков разного радиуса

#22
17:21, 26 дек 2009

Подробнее даже как-то не знаю что там еще искать)
http://en.wikipedia.org/wiki/Metaball

#23
19:11, 26 дек 2009

Ух ты, спасибо=)
Завтра попробую реализовать.

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.