Comments 6
По мне, если не экономить память, куда быстрее строить отраженные объекты в том же пространстве с отраженным источником освещения. И все проблемы с отсечением исчезнут.
0
Возможно, я не вполне понял Ваше замечание, но техника отсечения как раз и применяется к пространству камеры отражения (?). Как раз в ней и строятся «отраженные объекты с отраженным источником света». Конечная растеризация осуществляется по совокупности фрагментов от матриц отражения и основной. Для каждого отражения — своя матрица (если их более одного). На рисунке, предваряющем статью, два отражения, одно из них — во фронтально стоящем зеркале, другое — в поверхности стола, для сохранения реалистичности «резы» неизбежны.
0
Нет, я говорю о варианте без камеры отражения. Объекты отражаются в реальном пространстве относительно плоскости отражения и строятся в общем z-буффере. Но это конечно работает для несложных сцен — типа 4 кубиков)
0
Мне кажется такая техника довольно трудоемкой (если я правильно Вас понял, то предлагается продублировать объекты в сцене в соответствующем отражению координатном представлении), хотя, вероятно, применимой в некоторых ситуациях, но в случае, например, динамических сцен, придется геометрию каждого входящего в сцену объекта (псевдоотраженного) править (если этот объект должен лишь некоторой своей частью быть видимым в сцене), искажая его геометрию подобно «отсечению» (а самая эта «геометрия» может быть довольно сложной). Ничего нереального, конечно, в этом нет, но затраты могут быть много выше, чем «колдовство» с плоскостями и матрицами.
0
Движок компьютерной игры может быть оптимизирован таким способом, чтобы заранее просчитать порядок прорисовки объектов и составить для них дерево. В таком случае расчёт видимости/невидимости полигонов объектов из отражённой сцены на лету оказывается абсолютно невозможным. С другой стороны этот порядок очень просто наследуется при отражении камеры.
0
Вообще, считаю, что такие основополагающий вещи, как Oblique Frustum должны быть известны, понятны (и, по моему мнению, интересны) любому программисту, несмотря на то, владеет ли он замечательным коммерческим движком, в котором реализовано все мыслимое и предвосхищающее его фантазии, или обладает ограниченным инструментарием для воплощения своих планов. Для более выразительной иллюстрации применения отсекающих плоскостей, прилагаю рисунок:
Специально убрал первый кубик, оставив только его отражения в столе и фронтально стоящем зеркале. Геометрия в обоих случаях обрезается способом, описанным в статье.
Специально убрал первый кубик, оставив только его отражения в столе и фронтально стоящем зеркале. Геометрия в обоих случаях обрезается способом, описанным в статье.
0
Sign up to leave a comment.
Oblique frustum. Внутри скошенной пирамиды видимости