Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Отсечение невидимой геометрии (15 стр)

Отсечение невидимой геометрии (15 стр)

Поделиться

Страницы: 1 2 3 4 ... 14 15 16 Следующая

DeamonПостоялецwww10 окт. 20174:06#211
Откровение сегодняшнего дня. Вершина пирамиды отсечения перспективной процекции в World Space находится между позицией камеры и передней отсекающей плоскостью.

Т.е. Camera Position != Top of the Frustum.

Как же я "люблю" 3d математику

Daniil PetrovЗабаненwww10 окт. 20177:46#212
Представьте, что я сижу такой за партой и тяну руку :))) "А можно, а можно???"
Я только сейчас вдумался - портал - это отсечение кучки объектов проверкой всего одного параллелепипеда или многоугольника :) да?
Сначала думал, что это слишком геморройно бить всё на порталы, но на самом деле оказывается очень эффективно для таких хитов, как Corridor 7 или Wolfenstein 3D :)))
P.S. Хотя для этого нужно сортировать объекты по порталам, да? Или хотя бы присваивать им номер портала и сверять с ними :)

Правка: 10 окт. 2017 7:49

g-contПостоялецwww10 окт. 201713:55#213
Deamon
> Т.е. Camera Position != Top of the Frustum.
А есть еще Oblique Frustum :-)

ЗЫ, Что мешает нарисовать фрустум и увидеть как выглядит пирамидка?

DeamonПостоялецwww10 окт. 201715:53#214
g-cont
Так я и рисовал усеченную пирамиду. Моя ошибка была в том, что я не рисовал позицию камеры
Снизу справа - это основная камера. А на весь экран - это дебаг камера с отображением усеченной пирамиды видимости. Синий прозрачный прямоугольник - это портал
+ картинко
Daniil PetrovЗабаненwww12 окт. 201720:27#215
Догнал, для чего нужная функция PointInFrustum :))) для определения источников освещения и добавления эффектов линз, ну... возможно и не только :)

Правка: 12 окт. 2017 20:40

barnesПостоялецwww12 окт. 201721:41#216
А у лайта вообщето боудинг бокс есть. Прикинь. Центр лайта вне фрустума, а зона его действия да. Ну и что мы получим?
Daniil PetrovЗабаненwww12 окт. 201721:44#217
barnes
Однако!
barnesПостоялецwww12 окт. 201722:27#218
Я пойнт ин фрустум юзал только для флаеров и то из за того что они без депт теста рисовались и заюзывали до кучи оклюжен квери
alorkenПостоялецwww13 окт. 201711:21#219
Deamon
> Camera Position != Top of the Frustum.
А можно картинку пример когда это так? Вроде бы вершина пирамиды это и есть позиция камеры.

Правка: 13 окт. 2017 11:22

Daniil PetrovЗабаненwww13 окт. 201711:48#220
alorken
> Вроде бы вершина пирамиды это и есть позиция камеры.
Так и есть :) и есть две плоскости отсечения.
О чём он говорит, я вообще не пойму!
DeamonПостоялецwww13 окт. 201717:16#221
Daniil Petrov
Ты суслика видишь? А он есть!

Матрица перспективной проекции вносит небольшие погрешности, когда углы поворота эйлера не кратны 90*.
Координаты вершины пирамиды у меня отличаются не на много, где-то ~0.5 (точное значение лень сейчас смотреть) при (zNear, zFar) = (1, 1000).
Но этой погрешности уже достаточно, чтобы один из алгоритмов начал выдавать неправильные результаты.

g-contПостоялецwww14 окт. 201718:51#222
Deamon
> Ты суслика видишь? А он есть!
В соседней теме видел.
0xc0deПостоялецwww17 окт. 201714:12#223
alorken
> alorken

Зависит от проекции. Например у фрустума для ортогональной проекции вообще нет такой точки.

zombihelloПостоялецwww18 окт. 20170:24#224
Ребят, подскажите пожалуйста как лучше быть. В движке использую Deffered Shading (отложенное освещение) и не знаю как лучше поступать
с отсечением источников света. Сейчас же он отсекается только по Frustum'у, а просчитываю с учетом результатов буфера трафарета.     
Так вот, стоит ли при таком подходе еще прикручивать отсечение с учетом перекрытий (Occlusion Query)? И какие вообще меры оптимизации
в этом плане можно принять?

И еще кое-что, как быть с тенями в подходе Shadow maps (карта теней), там ведь надо рендерить уровень с позиции источника света,
то тут тоже надо отсекать по полной программе?

Страницы: 1 2 3 4 ... 14 15 16 Следующая

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

2001—2017 © GameDev.ru — Разработка игр