如何在着色器(OpenGL 4.0)中访问2不可调整大小的内存的幂次?

dv1729

我需要在片段着色器中使用一块内存。我已阅读有关GL_TEXTURE_1D的信息,但已阅读到最大尺寸可能很小。该内存块将在运行时更改其大小,并且该大小至少应为1MB。我将在片段着色器中依次访问此块:

for (int i=0; i<sizeOfBlock; i++){
     vec4 v=read(block, i);
}

我想即使FBO为256x256,该着色器也会非常慢,但是我希望它可以在gtx 550 Ti中以5-10 fps的速度运行,这是不可能的吗?

我应该选择使用哪个OpenGL对象?

雷托·科拉迪(Reto Koradi)

您可能需要研究缓冲区纹理。它们支持的大小保证至少为65536像素,这不能完全满足您的要求。但是我相信大多数GPU支持更大的尺寸。可以使用来查询支持的大小GL_MAX_TEXTURE_BUFFER_SIZE

您可以在http://www.opengl.org/wiki/Buffer_Texture中找到完整的描述总结使用缓冲区纹理的最重要步骤:

  • 存储你的数据在缓冲区中,与往常一样glGenBuffers()glBindBuffer()glBufferData()电话。
  • 使用创建纹理ID glGenBuffers()
  • 将纹理与绑定glBindTexture(GL_TEXTURE_BUFFER, id)
  • 用于glTexBuffer()将缓冲区数据与纹理关联。
  • 在片段着色器中,samplerBuffer为纹理声明一个类型统一的变量,然后使用该texelFetch()函数访问数据

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

OpenGL ES如何在着色器中设置布尔值

来自分类Dev

如何在ThreeJS中组合着色器效果

来自分类Dev

OpenGL 4.X的顶点着色器如何处理大量顶点

来自分类Dev

如何在OpenGL / GLES着色器中添加指令?

来自分类Dev

如何在不使用C ++中的OpenGL SuperBible着色器的情况下使用变换矩阵?

来自分类Dev

如何从顶点着色器中的vec3获取值?OpenGL 3.3

来自分类Dev

顶点着色器和片段着色器如何在OpenGL中通信?

来自分类Dev

在OpenGL着色器中渲染纹理

来自分类Dev

着色器中的多个[in]属性-OpenGL

来自分类Dev

如何在OpenGL ES 2.0中使用可分离的滤镜着色器?

来自分类Dev

如何在着色器中引用纹理?

来自分类Dev

如何在着色器中制作波形扭曲效果?

来自分类Dev

如何在Unity着色器中偏移普通UV?

来自分类Dev

如何提高OpenGL着色器中的纹理访问性能?

来自分类Dev

如何在ThreeJS中更改着色器颜色

来自分类Dev

如何在OpenGL着色器中从纹理图块贴图绘制图块?

来自分类Dev

如何在Android的着色器中声明OpenGL版本?

来自分类Dev

如何在OpenGL 4的着色器中设置gl_Vertex?

来自分类Dev

顶点着色器或片段着色器中的OpenGL ES2.0 Lighting

来自分类Dev

如何在Dart中同步加载着色器文件

来自分类Dev

如何不使用OpenGL中的着色器覆盖顶点颜色?

来自分类Dev

在OpenGL着色器中渲染纹理

来自分类Dev

OpenGL GLSL:如何使用片段着色器在photoshop中实现渐变贴图的概念?

来自分类Dev

如何使用OpenGL在着色器中设置顶点的颜色

来自分类Dev

OpenGl 4中的编译着色器是强制性的吗?

来自分类Dev

如何使用 OpenGL 片段着色器绑定 vec2&vec3 变量?

来自分类Dev

如何使 2 个 div 的中间可调整大小以更改大小?(我正在使用引导程序 4)

来自分类Dev

如何在 OpenGL 片段着色器中渲染最近的顶点

来自分类Dev

如何在没有片段着色器的情况下在 OpenGL 中实现阈值效果?

Related 相关文章

  1. 1

    OpenGL ES如何在着色器中设置布尔值

  2. 2

    如何在ThreeJS中组合着色器效果

  3. 3

    OpenGL 4.X的顶点着色器如何处理大量顶点

  4. 4

    如何在OpenGL / GLES着色器中添加指令?

  5. 5

    如何在不使用C ++中的OpenGL SuperBible着色器的情况下使用变换矩阵?

  6. 6

    如何从顶点着色器中的vec3获取值?OpenGL 3.3

  7. 7

    顶点着色器和片段着色器如何在OpenGL中通信?

  8. 8

    在OpenGL着色器中渲染纹理

  9. 9

    着色器中的多个[in]属性-OpenGL

  10. 10

    如何在OpenGL ES 2.0中使用可分离的滤镜着色器?

  11. 11

    如何在着色器中引用纹理?

  12. 12

    如何在着色器中制作波形扭曲效果?

  13. 13

    如何在Unity着色器中偏移普通UV?

  14. 14

    如何提高OpenGL着色器中的纹理访问性能?

  15. 15

    如何在ThreeJS中更改着色器颜色

  16. 16

    如何在OpenGL着色器中从纹理图块贴图绘制图块?

  17. 17

    如何在Android的着色器中声明OpenGL版本?

  18. 18

    如何在OpenGL 4的着色器中设置gl_Vertex?

  19. 19

    顶点着色器或片段着色器中的OpenGL ES2.0 Lighting

  20. 20

    如何在Dart中同步加载着色器文件

  21. 21

    如何不使用OpenGL中的着色器覆盖顶点颜色?

  22. 22

    在OpenGL着色器中渲染纹理

  23. 23

    OpenGL GLSL:如何使用片段着色器在photoshop中实现渐变贴图的概念?

  24. 24

    如何使用OpenGL在着色器中设置顶点的颜色

  25. 25

    OpenGl 4中的编译着色器是强制性的吗?

  26. 26

    如何使用 OpenGL 片段着色器绑定 vec2&vec3 变量?

  27. 27

    如何使 2 个 div 的中间可调整大小以更改大小?(我正在使用引导程序 4)

  28. 28

    如何在 OpenGL 片段着色器中渲染最近的顶点

  29. 29

    如何在没有片段着色器的情况下在 OpenGL 中实现阈值效果?

热门标签

归档