汽车网站页面上海公司招聘
news/
2025/9/23 13:35:20/
文章来源:
汽车网站页面,上海公司招聘,seo入门教程视频,admin管理员登录备用纹理图像规范命令 Alternate Texture Image Specification Commands
二维和一维纹理图像也可以使用直接从帧缓冲区获取的图像数据进行指定#xff0c;并且可以重新指定现有纹理图像的矩形子区域。
定义一个二维纹理图像
void glCopyTexImage2D( enum target, int level…备用纹理图像规范命令 Alternate Texture Image Specification Commands
二维和一维纹理图像也可以使用直接从帧缓冲区获取的图像数据进行指定并且可以重新指定现有纹理图像的矩形子区域。
定义一个二维纹理图像
void glCopyTexImage2D( enum target, int level, enum internalformat, int x, int y, sizei width, sizei height, int border );定义一个二维纹理图像其方式与TexImage2D完全相同区别是图像数据来自帧缓冲区而不是客户端内存。
target必须是TEXTURE_2D、TEXTURE_1D_ARRAY、TEXTURE_RECTANGLE或者来自表8.19中的立方体贴图面目标之一。x、y、width和height精确对应于ReadPixels的相应参数参见第18.2节它们指定图像的宽度和高度以及要复制的帧缓冲区区域的左下角xy坐标。
图像从帧缓冲区中被复制就像这些参数被传递给CopyPixels函数参见第18.3节其中类型参数根据internalformat的不同设置为COLOR、DEPTH、DEPTH_STENCIL或STENCIL_INDEX。
定义一维纹理图像
void glCopyTexImage1D( enum target, int level, enum internalformat, int x, int y, sizei width, int border );以与TexImage1D完全相同的方式定义一维纹理图像唯一的区别是图像数据来自帧缓冲区而不是客户端内存。
target必须是TEXTURE_1D。
要仅重新指定纹理对象的纹理图像的矩形子区域使用以下命令
void glTexSubImage3D( enum target, int level, int xoffset, int yoffset, int zoffset, sizei width, sizei height, sizei depth, enum format, enum type, const void *data );
void glTexSubImage2D( enum target, int level, int xoffset, int yoffset, sizei width, sizei height, enum format, enum type, const void *data );
void glTexSubImage1D( enum target, int level, int xoffset, sizei width, enum format, enum type, const void *data );
void glCopyTexSubImage3D( enum target, int level, int xoffset, int yoffset, int zoffset, int x, int y, sizei width, sizei height );
void glCopyTexSubImage2D( enum target, int level, int xoffset, int yoffset, int x, int y, sizei width, sizei height );
void glCopyTexSubImage1D( enum target, int level, int xoffset, int x, int y, sizei width );
void glTextureSubImage3D( uint texture, int level, int xoffset, int yoffset, int zoffset, sizei width, sizei height, sizei depth, enum format, enum type, const void *pixels );
void glTextureSubImage2D( uint texture, int level, int xoffset, int yoffset, sizei width, sizei height, enum format, enum type, const void *pixels );
void glTextureSubImage1D( uint texture, int level, int xoffset, sizei width, enum format, enum type, const void *pixels );
void glCopyTextureSubImage3D( uint texture, int level, int xoffset, int yoffset, int zoffset, int x, int y, sizei width, sizei height );
void glCopyTextureSubImage2D( uint texture, int level, int xoffset, int yoffset, int x, int y, sizei width, sizei height );
void glCopyTextureSubImage1D( uint texture, int level, int xoffset, int x, int y, sizei width );对于*TexSubImage*纹理对象是指与target绑定的纹理对象而对于*TextureSubImage*texture参数则是纹理对象的名称。在每个命令中target或texture的实际目标即TEXTURE_TARGET值参见第8.11.2节内容必须与Table 8.15中所示的对应命令匹配。
不会更改纹理图像的internalformat、width、height、depth或border参数也不会更改子区域外的texel值。
每个命令中的level参数指定了要修改的纹理图像的级别。
TexSubImage*D 和 TextureSubImage*D 中的width、height、depth、format、type和data参数与对应的TexImage*D命令中的相应参数相匹配如果这些参数存在这意味着它们接受相同的值并具有相同的意义。例外情况是NULL数据指针不代表未指定的图像内容。
CopyTex*SubImage3D和CopyTex*SubImage2D中的x、y、width和height参数与CopyTexImage2D命令中的对应参数匹配。而CopyTex*SubImage1D中的x、y和width参数则与CopyTexImage1D命令中的对应参数匹配。
这些命令均以与其对应的TexImage命令完全相同的方式解释和处理像素组但不同之处在于将R、G、B、A、深度和模板索引像素组值分配给纹理组件的过程由纹理图像的internalformat决定而不是通过命令的参数决定。
Tex*SubImage3D和CopyTex*SubImage3D命令中的xoffset、yoffset和zoffset参数指定了纹理图像中一个宽为width、高为height、深为depth矩形子区域左下后侧texel坐标。对于立方体贴图数组纹理zoffset表示要更新的第一个面层编号而depth表示要更新的面层数量。仅针对TextureSubImage3D和CopyTextureSubImage3D命令texture可以是一个立方体贴图纹理。在这种情况下zoffset被解释为指定Table 9.3中相应层面对应的立方体贴图面并且depth表示连续更新的贴图面数量。
与CopyTex*SubImage3D相关的depth参数始终为1因为帧缓冲区内存是二维的这些命令仅替换三维纹理的一个(s, t)切片部分。
子区域必须位于纹理图像的边界内。
纹理压缩内部格式存储方式可能使得无法在不进行解压和重新压缩的情况下用子图像命令修改图像。即使以这种方式修改了图像也可能无法保留待修改区域外部某些texel的内容。为了避免这些复杂性GL不支持对具有压缩内部格式的纹理图像进行任意修改。如果xoffset、yoffset或zoffset不等于零则调用任何Tex*SubImage*或CopyTex*SubImage*命令将生成INVALID_OPERATION错误。此外此类调用所修改区域之外的任何texel的内容未定义。
如果正在修改的纹理图像的内部格式属于Table 8.14中描述的具体压缩格式之一则该纹理采用相应的压缩纹理图像编码方式进行存储参见附录D。由于这类图像易于沿4 × 4 texel边界编辑因此对于Tex*SubImage2D、Tex*SubImage3D、CopyTex*SubImage2D和CopyTex*SubImage3D命令放宽了子图像位置和大小的限制。当满足以下条件之一时这些命令将生成INVALID_OPERATION错误
width不是4的倍数且width xoffset 不等于 TEXTURE_WIDTH 的值同时xoffset或yoffset不为零height不是4的倍数且height yoffset 不等于 TEXTURE_HEIGHT 的值同时xoffset或yoffset不为零xoffset或yoffset不是4的倍数。
在有效的Tex*SubImage*和Copy*TexSubImage*调用期间此类压缩纹理图像中与正在修改区域不相交的任何4 × 4 texel块的内容都将得到保留。
纹理复制反馈循环 Texture Copying Feedback Loops
如果目标纹理图像级别同时也绑定到了读取帧缓冲区的选定读取缓冲区参见第18.2.1节则调用任何CopyTex*SubImage*或CopyTexImage*命令将导致未定义的行为。这种情况在关于9.3.2节中的反馈循环描述中有更详细的讨论。 Command NamesValid targets or effective texture targetsTexSubImage1D CopyTexSubImage1D TextureSubImage1D CopyTextureSubImage1DTEXTURE_1DTexSubImage2D CopyTexSubImage2DTEXTURE_2D TEXTURE_1D_ARRAY TEXTURE_RECTANGLE one of the cube map face targets from table 8.19TextureSubImage2D CopyTextureSubImage2DTEXTURE_2D TEXTURE_1D_ARRAY TEXTURE_RECTANGLETexSubImage3D CopyTexSubImage3DTEXTURE_3D TEXTURE_2D_ARRAY TEXTURE_CUBE_MAP_ARRAYTextureSubImage3D CopyTextureSubImage3DTEXTURE_3D TEXTURE_2D_ARRAY TEXTURE_CUBE_MAP_ARRAY TEXTURE_CUBE_MAP
Table 8.15: Valid texture target parameters or effective texture targets for texture subimage commands
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912705.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!