opengl纹理是如何工作的?

时间:2016-04-19 03:36:32

标签: opengl blender

我一直在玩opengl一段时间,我发现纹理非常有趣。我有一个选中了面的立方体,我可以将该面投影到二维图像并将该图像中的颜色映射到三维模型。这是如何运作的?这涉及什么算法?在像blender这样的软件中,我们可以实时编辑2d投影中的顶点,这些顶点会自动映射到3d模型。甚至还有打开包装,立方体项目,圆柱项目等的选项。

enter image description here

我不确定这是否是提出这样一个问题的正确位置。但我出于好奇而要求它。

1 个答案:

答案 0 :(得分:3)

纹理化基本上是将纹素(纹理的像素)映射到片段(构成屏幕上的渲染几何图像的像素)。要映射到给定片段的texel取决于片段的纹理坐标。在最简单的情况下,坐标与每个顶点的几何形状相关联,并在将几何体投影到屏幕上并进行光栅化后插值到片段。坐标通常是标准化的,意味着它们的值介于0和1之间。对于2D纹理,其中有2个坐标 - u和v。其中一个与纹理图像的水平轴对齐,另一个与垂直对齐。当在片段着色器中通过纹理采样器对纹理进行采样以获得给定坐标的颜色时,采样器仅返回根据坐标,mipmap级别和插值方法找到的多个纹素内插的值。应用的坐标可以根据所需的纹理类型而变化。插值方法改变最终图像质量。使用Mipmapping 通常取决于视距(过滤)来改变纹理细节的水平。

有些链接可获取更多信息: https://www.cs.utexas.edu/~fussell/courses/cs384g/lectures/lecture12-Texture_mapping.pdf http://cg.informatik.uni-freiburg.de/course_notes/graphics_06_texturing.pdf http://www.cs.cmu.edu/~djames/15-462/Fall03/notes/09-texture.pdf