|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Eugene Kilachkoff 2:5020/400 24 Aug 2001 20:12:51 To : All Subject : Re: (non)realtime raytracing -------------------------------------------------------------------------------- Edik Ryzhov wrote: > Все, до чего я додyмался: > t*dx+x1=f1(u,v) > t*dy+y1=f2(u,v) > t*dz+z1=f3(u,v) А тут ничего и не придумаешь... > Только есть затpyднение: fn(u,v) может быть сильно извpатным... Может кончиться вообще тем, что твоя fn() может иметь _ОЧЕHЬ_ извратную обратную ф-цию. Ее можно попробовать решить численно... Hо лучше даже не пробовать. ИМХО лучше задавать поверхности в виде f(x,y,z)=0. В этом случае после подстановки получится уравнение относительно одной переменной t. Hедостаток: uv координаты придется считать отдельно. Я делал такую штуку для поверхностей второго порядка ax^2+by^2+cy^2+dx^2y+...+R=0. Больший порядок я не стал брать из за того, что считать становится сильно сложнее, а будет ли результат того стоить - еще неизвестно. Что в поверхностях второго порядка плохо - это квадратный корень. Что хорошо - это то, что для проверки наличия пересечения этот корень не надо считать. Еще один плюс - это то, что преобразования ПВП очень хорошо представляются матрицами. По поводу сложных моделей: тесселяция спасет мир ;-) В любом случае, какие бы сложные функции ты не использовал, рано или поздно найдется такой объект, который с помощью этой ф-ции представить будет затруднительно. Идея. Hазовем ЭТО.. ну, скажем QuadBSP. Обычный BSP, только вместо плоскостей использовать ПВП. Может кто возьмется сделать ? А то, боюсь у меня руки до этого не скоро дойдут. ps. Вышел hugi #23. Брать на http://www.hugi.de Там есть несколько статей про rtrt. В принципе, все сводится к различным хитростям, типа претрассировки через 32 пиксела, адаптивной трассировки (heaven 7), рисованию обычным способом полигональных мешей в z, uv, еще какой то буфер, а потом пробегом по всему этому делу. Еще авторы говорят, что все технологии основанные на делении пространства стоит выкинуть подальше. Тк абсолютно не реалтайм... pps. Расковыряв исходники platipus/incognita остался абсолютно неудовлетворенным. Хоть и реалтайм, но что то очень все просто. Хотелось бы поглядеть исходники чего-нить вроде rubicon 1/2, тк на нее ссылается как на самую алгоритмически оптимизированную... Только где их достать ? --- ifmail v.2.15dev5 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/2842790dc11b.html, оценка из 5, голосов 10
|