- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正常创建的 OpenGL 纹理,使用 GL_FLOAT
作为其数据类型:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, Dims.x, Dims.y, 0, GL_RGBA, GL_FLOAT, Data);
(Data
作为 float
数组正确发送。)
然后我必须使用无符号字节形式的数据更新纹理。使用 GL_UNSIGNED_BYTE
使用 glTexSubImage2D
更新纹理是否合法?
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, Dims.x, Dims.y, GL_RGBA, GL_UNSIGNED_BYTE, NewData);
(NewData
作为 unsigned char*
发送。)
文档似乎没有提及在这些函数之间使用不同数据类型的任何内容。是否可以通过这种方式更新纹理,或者纹理数据是否必须转换为 float*
?
最佳答案
在桌面 OpenGL* 中,只要 pixel transfer format与 internal format 属于同一类型,转移将起作用。所谓“种类”,我的意思是这两种格式必须谈论同一种数据。您不能将深度像素数据上传为颜色内部格式。如果内部格式是整数格式,则像素传输格式必须是 _INTEGER
版本之一。
但除此之外,没有限制...只要您不喜欢性能。但是,将 GL_FLOAT
数据发送到 16F
纹理也不是特别快。
*:我提到桌面 OpenGL 是因为 OpenGL ES 特别要求要匹配的格式。因为他们喜欢表演 ;)
关于c++ - 将 GL_UNSIGNED_BYTE 上传到 GL_FLOAT 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56310425/
我想知道,我有以下设置: glEnableVertexAttribArray(VERTEX_COORD_ATTRIB); glEnableVertexAttribArray(TEXTURE_COORD
我正在使用 OpenGL ES 1.x 为 Android 编写应用程序,但我想要的答案包括 iOS 设备和 OpenGL ES 2.x。 我很困惑我应该使用 GL_FLOAT 还是 GL_FIXED
我有一个正常创建的 OpenGL 纹理,使用 GL_FLOAT 作为其数据类型: glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, Dims.x, Dims.y,
我正在 iPad 3 上使用 OpenGL ES 2.0 开发一个应用程序。我试图在调用 glTexImage2D() 时从 GL_UNSIGNED_BYTE 切换到 GL_FLOAT 用于“type
对于纹理的离屏渲染,我在附件 GL_COLOR_ATTACHMENT0 上附加了一个定义为的纹理 glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,width,height,0
我本以为 GL_FIXED 更快,但 iPhone 文档实际上说要使用 GL_FLOAT 因为 GL_FIXED 必须转换为 GL_FLOAT。安卓上也一样吗?我想它因手机而异,但最近流行的手机(Ne
我想通过 glReadPixels 使用 GL_FLOAT 纹理 获取值。 我的 Android 设备支持 OES_texture_float。但是,附加 GL_FLOAT 纹理成为错误。 在 And
我是一名优秀的程序员,十分优秀!