opengl - glTexImage1D 和 glTexImage2D 的区别

标签 opengl textures

glTexImage2D()glTexImage1D() 有什么区别?实际上,我无法想象一维纹理。东西怎么会有一维纹理?

最佳答案

纹理不是您在三角形上绘制的图片。纹理是值的查找表,着色器可以访问并从中获取数据。你可以使用纹理作为“你在三角形上绘制的图片”,但你不应该仅仅局限于此。

一维纹理是只有一个维度的纹理:宽度。这是一条线。它是一维函数:f(x)。你提供一个纹理坐标,你就会得到一个值。

2D 纹理是具有两个维度的纹理:宽度和高度。它是一个矩形。它是二维的函数:f(x, y)。你提供两个纹理坐标,你会得到一个值。

一维纹理可用于任何一维函数的离散逼近。您可以预先计算一些 Fresnel specular factors并访问一维纹理来获取它们,而不是在着色器中计算它们。一维纹理可以表示高斯镜面反射项,就像我在 the first chapter on texturing in my book 中所做的那样。 .

一维纹理可以是任何一维函数。

关于opengl - glTexImage1D 和 glTexImage2D 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682067/

相关文章:

c++ - 在不重绘顶点的情况下纹理化三角地形

c - 如何修复 freetype 错误加载字符

c++ - OpenGL 着色器拒绝链接

c++ - 新的 OpenGL 代码编译但没有任何反应?

c++ - 使用 GLUT 的多重纹理

opengl - 如何将纹理应用于 glutSolidCube

python - uv 映射 python OpenGL 三角形

opengl - 纹理会影响对象的颜色

android - 纹理渲染无效

3d - POVRay "Contour line"纹理