第五个参数表示读取的内容,例如:GL_RGB就会依次读取像素的红、绿、蓝三种数据,GL_RGBA则会依次读取像素的红、绿、蓝、alpha四种数据,GL_RED则只读取像素的红色数据(类似的还有GL_GREEN,GL_BLUE,以及GL_ALPHA)。如果采用的不是RGBA颜色模式,而是采用颜色索引模式,则也可以使用GL_COLOR_INDEX来读取像素的颜色索引。
第五个参数表示读取的内容,例如:GL_RGB就会依次读取像素的红、绿、蓝三种数据,GL_RGBA则会依次读取像素的红、绿、蓝、alpha四种数 据,GL_RED则只读取像素的红色数据(类似的还有GL_GREEN,GL_BLUE,以及GL_ALPHA)。如果采用的不是RGBA颜色模式,而是 采用颜色索引模式,则也可以使用GL_COLOR_INDEX来读取像素的颜色索...
首先我们修改下纹理的数据格式,将GL_LUMINANCE改为GL_RED,将GL_LUMINANCE_ALPHA改为GL_RG,完整代码如下: voidYUVRenderOpengl::setYUVData(void*y_data,void*uv_data,intwidth,intheight,intyuvType){ //准备y数据纹理 glGenTextures(1,&y_textureId); glActiveTexture(GL_TEXTURE2); glUniform1i(y_textureSam...
在这里需要注意字节对齐的问题,OpenGL默认要求纹理4字节对齐,即纹理的大小是4的倍数,这通常不会有什么问题,因为绝大多数的纹理大小都是4的倍数并/或每个橡树4字节大小,但现在我们一个像素是一个字节(GL_RED),它可以是任意的宽度,所以需要需求这个限制,将对齐参数设置为1,不然的话可能会造成段错误。 glPixelStorei(...
glBufferData(GL_ARRAY_BUFFER,sizeof(planeVertices),&planeVertices,GL_STATIC_DRAW); glEnableVertexAttribArray(0); glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,8*sizeof(GLfloat), (GLvoid*)0); glEnableVertexAttribArray(1); glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,8*sizeof(GLfloat), (...
GlFragmentShaderDerivativeHint GlFramebufferAttachmentAlphaSize GlFramebufferAttachmentBlueSize GlFramebufferAttachmentColorEncoding GlFramebufferAttachmentComponentType GlFramebufferAttachmentDepthSize GlFramebufferAttachmentGreenSize GlFramebufferAttachmentRedSize GlFramebufferAttachmentStencilSize GlFramebufferAttachmentText...
指定混合运算符还可以通过调用glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)分别指明RGB和Alpha的混合运算符; 如果混合函数选择了包含常量,如GL_CONSTANT_COLOR,则在设置混合参数的时候还需要通过glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)设置常量颜色作为混合因子进行计算。
void glGenVertexArrays( GLsizei n,GLuint *arrays); - generate vertex array object names Parameters n:指定要生成VAO的数量 arrays:指定VAO名字生成的位置 2.绑定VAO void glBindVertexArray(GLuint array); - generate vertex array object names Parameters ...
// 参数format和type: 描述了纹理映射的格式和数据类型,参数format可以是GL_COLOR_INDEX、GL_RGB、GL_RGBA、GL_RED、GL_GREEN、GL_BLUE、GL_ALPHA、GL_LUMINANCE或GL_LUMINANCE_ALPHA(注意:不能用GL_STENCIL_INDEX和GL_DEPTH_COMPONENT)。类似地,参数type是GL_BYPE、GL_UNSIGNED_BYTE、GL_SHORT、 GL_UNSIGNED_...
void glGenVertexArrays( GLsizei n,GLuint *arrays); - generate vertex array object names Parameters n:指定要生成VAO的数量 arrays:指定VAO名字生成的位置 2.绑定VAO void glBindVertexArray(GLuint array); - generate vertex array object names Parameters ...