osg.BindImageTexture
函数将图像绑定为着色器中的纹理数据。
bool BindImageTexture(unsigned int imageUnit, osg::Image* image, osg::Texture::InternalFormatMode internalFormatMode, unsigned int accessMode = osg::Image::ACCESS_READ_WRITE);
imageUnit
:纹理单元编号,GL_TEXTURE0
为0,以此类推。这个值必须在[0, GL_MAX_IMAGE_UNITS
]范围内。image
:要绑定为纹理的图像。internalFormatMode
:纹理内部格式。accessMode
:图像的访问权限。默认为读写(ACCESS_READ_WRITE
)。如果函数执行成功,则返回true
。否则,返回false
。
osg::ref_ptr<osg::Image> image = new osg::Image();
image->readImageFile("texture.jpg");
osg::Texture::InternalFormatMode internalFormatMode = osg::Texture::USE_IMAGE_DATA_FORMAT;
bool isSuccess = osg::BindImageTexture(0, image, internalFormatMode);
if (!isSuccess) {
printf("绑定纹理失败!\n");
}
该函数可以用在OpenGL的核心、兼容和ES API中。
在使用该函数时,请确保已经初始化上下文并添加了必要的扩展。