вектор направления в raycasting

Когда я прочитал о том, как получить вектор направления в raycasting, например, на этом сайте: http://www.daimi.au.dk/~trier/?page_id=98

Сначала они визуализируют сетку с отсечением передней грани, а затем с отсечением задней грани. А затем вычтите заднюю поверхность из передней, чтобы получить вектор направления для каждого пикселя.

Но не слишком ли много работы для получения вектора направления, не проще ли и быстрее просто взять положение вершины (в мировых координатах) и вычесть положение камеры во фрагментном шейдере, чтобы получить вектор направления? Это должно дать точно такой же ответ, но мы пропускаем рендеринг задней и передней сторон.


person Merni    schedule 14.06.2011    source источник


Ответы (1)


Описываемый ими метод дает точный сегмент луча, проходящего через объект (что важно для объемного рендеринга). Поэтому, если вы хотите получить сегмент луча для этого пикселя, проходящего через объект, это разумный шаг.

Если все, что вы хотите сделать, это получить вектор направления от камеры к объекту, то выполнение того, что вы предлагаете (и, возможно, его нормализация), является более эффективным способом сделать это.

person Jackson Pope    schedule 14.06.2011
comment
но будет ли результат таким же или первый метод будет более точным? - person Merni; 14.06.2011
comment
@Merni: я ожидаю, что они будут одинаковыми (за исключением ошибок округления), если вы нормализуете их обоих. - person Jackson Pope; 14.06.2011