glFramebufferTexture2D

阅读: 评论:0

glFramebufferTexture2D

glFramebufferTexture2D

名称

glFramebufferTexture2D - 将纹理图像附加到帧缓冲对象

C规范

void glFramebufferTexture2D(GLenum target,

                                                          GLenum attachment,

                                                          GLenum textarget,

                                                          GLuint texture,

                                                          GLint level);

参数

target

指定帧缓冲目标。 符号常量必须是GL_FRAMEBUFFER

attachment

指定应附加纹理图像的附着点。 必须是以下符号常量之一:GL_COLOR_ATTACHMENT0GL_DEPTH_ATTACHMENTGL_STENCIL_ATTACHMENT

textarget

指定纹理目标。 必须是以下符号常量之一:GL_TEXTURE_2DGL_TEXTURE_CUBE_MAP_POSITIVE_XGL_TEXTURE_CUBE_MAP_NEGATIVE_XGL_TEXTURE_CUBE_MAP_POSITIVE_YGL_TEXTURE_CUBE_MAP_NEGATIVE_YGL_TEXTURE_CUBE_MAP_POSITIVE_ZGL_TEXTURE_CUBE_MAP_NEGATIVE_Z

texture

指定要附加图像的纹理对象。

level

指定要附加的纹理图像的mipmap级别,该级别必须为0。

描述

glFramebufferTexture2Dtexturelevel指定的纹理图像附加为当前绑定的帧缓冲区对象的逻辑缓冲区之一。 attachment指定是否应将纹理图像附加到帧缓冲对象的颜色,深度或模板缓冲区。 纹理图像不可以附加到默认(名称为0)的帧缓冲对象。

如果texture不为0,则指定附加点的GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE的值设置为GL_TEXTUREGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME的值设置为textureGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL的值设置为level。 如果纹理是立方体贴图纹理,则GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE的值设置为textarget; 否则将其设置为默认值GL_TEXTURE_CUBE_MAP_POSITIVE_X。 先前绑定的帧缓冲区对象的附件逻辑缓冲区都将被破坏。

如果texture为0,则分离附加到当前绑定的帧缓冲区对象的附件逻辑缓冲区的当前图像(如果有的话)。 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE的值设置为GL_NONE。 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME的值设置为0GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVELGL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE分别设置为默认值0GL_TEXTURE_CUBE_MAP_POSITIVE_X

注意

当纹理对象当前被绑定并可能被当前顶点或片段着色器采样时,需要采取特殊预防措施以避免将纹理图像附加到当前绑定的帧缓冲区。这样做可能导致在通过渲染操作写入像素和在当前绑定纹理中用作纹素时同时读取那些相同像素之间创建“反馈循环”。在这种情况下,帧缓冲区将被视为帧缓冲区完成,但在此状态下渲染的片段的值将是未定义的。纹理样本的值也可能是未定义的。

如果在将图像附加到当前绑定的帧缓冲区时删除纹理对象,这就好比使用纹理0调用glFramebufferTexture2D作为此图像附加到当前绑定的帧缓冲区对象中的附着点。换句话说,纹理图像与当前绑定的帧缓冲区分离了。请注意,纹理图像不会与任何未绑定的帧缓冲区分离。从任何非绑定帧缓冲区中分离映像是应用程序的责任。

错误

GL_INVALID_ENUM target不是GL_FRAMEBUFFER

GL_INVALID_ENUM texture不为0时textarget不是可接收的纹理target。

GL_INVALID_ENUM attachment是不可接收的附着点。

GL_INVALID_VALUE level不是0时,texture不是0。

GL_INVALID_OPERATION :如果绑定了默认的帧缓冲对象名称0。

GL_INVALID_OPERATION :如果texture既不是0也不是现有纹理对象的名称。

GL_INVALID_OPERATION :如果texture是现有二维纹理对象的名称,但textarget不是GL_TEXTURE_2D,或者texture是现有立方体贴图纹理对象的名称,但textargetGL_TEXTURE_2D

相关Gets

glGetFramebufferAttachmentParameteriv

另见

glBindFramebuffer,glBindTexture,glCheckFramebufferStatus,glDeleteFramebuffers,glDeleteTextures,glFramebufferRenderbuffer,glGenerateMipmap,glGetFramebufferAttachmentParameteriv,glTexImage2D

版权

.0/l

Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见/.

本文发布于:2024-02-01 09:54:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170675246735811.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23