【问题标题】:"Image Based Light" HLSL“基于图像的光”HLSL
【发布时间】:2012-11-20 02:03:34
【问题描述】:

我在 HLSL 中有一个代码,旨在模拟 IBL(基于图像的光 http://en.wikipedia.org/wiki/Image-based_lighting)。为了模拟 IBL,需要从对象周围的“世界”中获得纹理,我想通过对象的位置动态生成纹理。我有两个问题:

• 如何生成物体周围 360 度的世界纹理?我需要 6 个各 45 度的摄像头,或者只用一个可以做到这一点?

• 我已经知道如何使用“sampleCUBE”来映射立方体纹理,但是我在 6 个面上有相同的图像,如何让每面都有自己的纹理?

http://i.stack.imgur.com/Iz6RZ.png

IBL 出现在 Forza 4 和 Crysys 2 等游戏中。

【问题讨论】:

    标签: c# .net xna-4.0 hlsl


    【解决方案1】:

    您可能需要 6 次渲染(如果您设置了巨大的 FOV,可能需要 2 次或 4 次,但这会导致失真并且更难处理),或者如果您可以使用立方体贴图作为渲染目标,则可以单程渲染它或对球形地图使用某种渲染 link 如果没有完整的图片,您将没有足够的数据来处理。但这些渲染可能包括非常基本的着色器和低分辨率输出。此外,您不需要每帧刷新它们,而是可以稍微移动纹理,每 5 帧刷新近物体,每 10 帧刷新远物体。最重要的是,您只需要在可见部分上使用“基于图像的光”,因此您最多只能使用 3 次,而不是 6 次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多