我正在用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字节对齐之外,没有太多填充,而且组件必须相邻),但是有很多可用的变体。
这是这样做的一种方法,但这不是唯一的方法。