Размытые текстуры Skybox

У меня проблема при рендеринге моего скайбокса. Я использую DirectX 11 с C ++. Картинка слишком размытая. Я думаю, что это может быть, я использую текстуры слишком низкого разрешения. В настоящее время для каждого лица скайбокса разрешение составляет 1024×1024. У меня разрешение экрана 1920х1080. В среднем я все время буду смотреть в одно лицо скайбокса, это означает, что изображение 1024×1024 будет растянуто, чтобы заполнить мой экран, поэтому оно размыто. Я рассматриваю использование текстур 2048×2048. Я создал простую текстуру скайбокса, и она больше не размыта. Но моя проблема в том, что это занимает слишком много памяти! Почти 100 МБ загружено в графический процессор только для фона.

Мой вопрос заключается в том, что есть ли лучший способ рендеринга скайбоксов? Я посмотрел в Интернете без особой удачи. Некоторые говорят, что норма 512х512 на лицо. Размытость тогда недопустима. Мне интересно, как коммерческие игры делали свои скайбоксы? Они использовали огромные размеры текстуры? В частности, для тех, кто видел это, я люблю космическую среду Dead Space 3. Я хотел бы создать что-то подобное. Так как они это сделали?

1

Решение

Во-первых, плотность пикселей будет зависеть не только от разрешения вашей текстуры и экрана, но и от поля зрения. Узкое поле зрения приведет к меньшему количеству скайбоксов, заполняющих экран, и, таким образом, увеличит масштаб текстуры, требуя более высокого разрешения. Вы не говорите точно, какой FOV вы используете, но я немного удивлен, что текстура 1К особенно размыта, так что, возможно, она немного узкая?

Да, и прежде чем я забуду — вы должны использовать сжатые текстуры … 2k текстур не должно быть тот страшно.

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

Например, в космической сцене я, вероятно, представлял бы довольно простой скайбокс, который содержал только такие вещи, как туманность и т. Д., Где разрешение не было критичным. Возможно, я бы сделал хотя бы некоторые из звезд в виде спрайтов, где плотность текстуры может быть локально выше. Планета может быть текстурированной геометрии.

Если бы я рендерил более традиционную сцену на открытом воздухе, я мог бы рендерить небо и облака на скайбоксе, но отдаленный горизонт в виде геометрии. Луна в небе может быть наложением.

Единого стандартного ответа не существует — в зависимости от ситуации могут использоваться различные методы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]