GLSL中的纹理映射

时间:2016-12-03 14:53:52

标签: glsl shader texture-mapping texture2d

我目前正在开展一个项目,我必须使用片段法线和相机之间的反射向量来构建立方体。

我有sampler2D图片,我不得不使用反射将其实现到多维数据集。

问题是:有人可以解释这个过程是如何进行的。这将有助于我完成我的项目并进一步了解纹理背后的过程。

问题是我不能使用textureCube(),而是使用texture2D(),因此片段着色器不仅适用于立方体,而且适用于每个表面。

提前感谢您的回答!

1 个答案:

答案 0 :(得分:0)

  

问题是我不能使用textureCube(),而是使用texture2D(),因此片段着色器不仅适用于立方体,而且适用于每个表面。

你为什么要这样做?使用texture2D (...)自己实现这将涉及多个纹理查找。 textureCube (...)将隐藏实现细节,甚至可以无缝地过滤支持的硬件上的内容。

在所有情况下,它被称为立方体贴图这一事实并不意味着您将其映射到的表面,实际上纹理本身就是一个立方体(六个2D纹理定义了所有立方体面)。

当您对立方体贴图进行采样时,您将通过此虚拟立方体拍摄光线,并且返回的颜色或深度是该光线与其相交的位置。采样值将来自六个立方体面中的至少一个,可能是多个立方体面,具体取决于纹理过滤器设置。