在OpenGL的文档说是很了解这两项功能。什么时候使用glTexParameterIiv
代替glTexParameteriv
或什至有意义glTexParameterfv
?
如果使用glTexParameterIiv或glTexParameterIuiv指定了GL_TEXTURE_BORDER_COLOR的值,则将使用内部整数类型的数据不作任何修改地存储这些值。如果使用glTexParameteriv指定,它们将通过以下公式转换为浮点:f =(2c + 1)/(2 b -1)。如果使用glTexParameterfv指定,则将它们存储为未经修改的浮点值。
您可以使用粘贴的片段来回答自己的问题。传统纹理是定点的(无符号归一化,其中类似255的值通过归一化转换为1.0),但是GL 3.0引入了整数(有符号/无符号整数)纹理类型(其中整数值保持整数)。
如果您具有整数纹理,并且想要分配边框颜色(用于GL_CLAMP_TO_BORDER
包装模式),则可以使用这两个函数的一种变体(取决于要签名还是不签名)。
您不能过滤整数纹理,但仍然可以具有纹理坐标环绕行为。由于所述纹理是整数,并且glTexParameteriv (...)
规范了它传递的颜色值,因此必须创建一个额外的函数来使颜色数据保持整数。
您会发现类似的东西glVertexAttribIPointer (...)
等等。将对整数数据的支持(而不是简单地将整数数据转换为浮点数)添加到GL管道需要大量新命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句