我知道纹理只是一个图像(绝对是2D),为什么我们有GL_TEXTURE_3D?这是什么意思?和用法?
答案 0 :(得分:6)
纹理不是绝对的2d。大部分时间它是2d但你也可以有1d纹理(一条线)和3d纹理(一个体积)。使用三个纹理坐标访问3D纹理。当您的3D模型可以被平面裁剪时,您可以使用它。然后,您可以使用3d纹理创建实体对象并查看平面剪切的内容,而不是查看对象的另一侧(对象是空心的)。例如,如果您对手机进行建模并将其切成两半而不是看到背面,则可以看到内部的电路。
答案 1 :(得分:4)
OpenGL中的纹理可以是1D,2D或3D。 3D纹理是AFAIK,并不是游戏所使用的,而是科学可视化应用程序之类的东西。例如。你有一个3D坐标(x,y,z)和一些值(v)的数据集。然后,您可以将数据集(或者更可能是由于内存限制而缩小的版本)上传到GPU并以某种方式将其可视化(例如,与创建2D切片相比,从3D纹理创建2D切片非常快作为CPU上的纹理并上传它。)