在 glCopyTexImage1D() OpenGL 3.3 中使用 GL_RGB10_A2UI 内部格式

Posted

技术标签:

【中文标题】在 glCopyTexImage1D() OpenGL 3.3 中使用 GL_RGB10_A2UI 内部格式【英文标题】:Using GL_RGB10_A2UI internal format in glCopyTexImage1D() OpenGL 3.3 【发布时间】:2013-05-28 07:04:48 【问题描述】:

我在 glCopyTexImage1D() API 中使用 GL_RGB10_A2UI 内部格式,但出现 GL_INVALID_OPERATION 错误。 OpenGL 3.3 是否支持 glCopyTexImage1D() 中的 GL_RGB10_A2UI ?

【问题讨论】:

如果您使用的是 OpenGL 3.x,为什么不直接渲染到该纹理? 【参考方案1】:

GL_RGB10_A2UI 是一个integral image format;它包含整数,而不是存储为整数的标准化浮点值。因此,除非您的 帧缓冲区 还包含无符号整数值,否则此复制操作将失败并出现预期错误。

当然,让帧缓冲区拥有无符号整数(而不是通常情况下的无符号归一化整数)的唯一方法是使用 FBO。在这种情况下,您可以直接渲染到此纹理,而无需从中复制

我猜你可能打算使用GL_RGB10_A2,它代表无符号标准化值。

【讨论】:

我的意思是使用 GL_RGB10_A2UI 而不是 GL_RGB10_A2。因此,即使我使用 FBO,我也不会调用 glCopyTexImageD() 来读取缓冲区内容。我知道这是不必要的,但我正在使用 API。没有其他方法可以使用 GL_RGB10_A2UI 调用 glCopyTexImageD() 吗? @maverick9888:您正在读取的源是否包含无符号整数?如果没有,那么不,它不会起作用。

以上是关于在 glCopyTexImage1D() OpenGL 3.3 中使用 GL_RGB10_A2UI 内部格式的主要内容,如果未能解决你的问题,请参考以下文章

在window.open打开的窗口里再用window.open办法打开一窗口

emwin f_open用法

基础提供程序在 open 上失败的原因都有哪些

角手风琴 - 当“is-open”已经在使用时,“isFirstOpen”

为啥我的代码在“con.Open()”之后停止?

怎么在jira中将问题状态由open改为in progress