计算着色器中三维工作组使用三维纹理

计算着色器中三维工作组使用三维纹理

三维纹理

三维纹理的定义、数据绑定和二维、一维纹理相同,纹理有最大宽度、高度、深度限制,GL_MAX_TEXTURE_SIZE的值是纹理的最大宽度和高度(二维和三维的最大宽度和高度一致,一维的最大宽度应该也是这个一维纹理使用较少),GL_MAX_3D_TEXTURE_SIZE的值是三维纹理的最大深度。
查询方式

GLint max;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max);

使用glBindImageTexture函数传送纹理数据到着色器时需注意第四个参数设置。

创建纹理

glGenTextures(1, &texID);//为纹理对象保留名称
glBindTexture(GL_TEXTURE_3D, texID);//绑定到纹理目标
//设置纹理模式
glTexParameteri(GL_TEXTURE_3D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_3D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_3D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameteri(GL_TEXTURE_3D,GL_TEXTURE_WRAP_T,GL_CLAMP);
//定义纹理的数据格式,即生成一个空纹理
glTexImage3D(GL_TEXTURE_3D,0,GL_RGBA32F_ARB,width,height,deep,0,GL_RGBA,GL_FLOAT,0);
//给纹理传入数据
glBindTexture(GL_TEXTURE_3D,texID);
glTexSubImage3D(GL_TEXTURE_3D,0,0,0,0,width,height,deep,GL_RG
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值