1

渲染天空盒时出现问题。我正在使用带有 c++ 的 DirectX 11。图片太模糊了。我想我可能使用了太低分辨率的纹理。目前对于天空盒的每个面,分辨率都是 1024x1024。我的屏幕分辨率是 1920x1080。平均而言,我会一直盯着天空盒的一张脸,这意味着 1024x1024 的图片将被拉伸以填满我的屏幕,这就是它模糊的原因。我正在考虑使用 2048x2048 纹理。我创建了一个简单的天空盒纹理,它不再模糊了。但我的问题是它需要太多的内存!几乎 100MB 仅用于后台加载到 GPU。

我的问题是有没有更好的方法来渲染天空盒?我在互联网上环顾四周,没有太多运气。有人说标准是每张脸 512x512。那么模糊是不可接受的。我想知道商业游戏是如何制作天空盒的?他们是否使用了巨大的纹理尺寸?尤其是看过的人,我特别喜欢《死亡空间3》的空间环境。我想创造类似的东西。那么他们是怎么做到的呢?

4

1 回答 1

1

首先,像素密度不仅取决于纹理和屏幕的分辨率,还取决于视野。狭窄的视野将导致更少的天空盒填充屏幕,因此将更多地放大纹理,需要更高的分辨率。您没有确切说明您使用的是什么 FOV,但我有点惊讶 1k 纹理特别模糊,所以它可能有点窄?

哦,在我忘记之前 - 你应该使用压缩纹理...... 2k 纹理不应该那么可怕。

然而,除了改变分辨率(这显然会很快消耗内存)之外,我通常总是将天空盒与一些简单的远处物体结合起来。

例如,在太空场景中,我可能会渲染一个相当简单的天空盒,它只包含诸如星云之类的东西,而分辨率并不重要。我可能会将至少一些星星渲染为精灵,其中纹理密度可以局部更高。行星可以是纹理几何。

如果我要渲染更传​​统的户外场景,我可以在天空盒上渲染天空和云彩,但将遥远的地平线渲染为几何图形。天空中的月亮可能是一个覆盖物。

没有一个标准答案——可以根据情况采用多种技术。

于 2013-02-28T07:21:21.797 回答