我正在用C++写一个射线投射器,它将其结果输出到常规图像文件中。现在,我想将内部RGBA表示形式(4个整数)呈现到GLUT提供的OpenGL窗口中。

我已经知道我必须使用glTexImage2D生成纹理,将该纹理分配给一个四边形,然后在相机前面渲染该四边形。

http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml

我遇到的问题是,我不知道如何将数据呈现给glTexImage2D函数:如何构造包含数据的gluByte数据块,它来自简单的4整数RGBA表示形式?

最佳答案

存储数据的方式或多或少取决于您。 glTexImage2D的最后三个参数(以及其他参数)describe how your data is formatted。关于存储数据的方式有局限性(除了每个像素4字节对齐之外,没有太多填充,而且组件必须相邻),但是有很多可用的变体。



这是这样做的一种方法,但这不是唯一的方法。

10-04 17:46