纹理单元、纹理对象、纹理类型、取样器对象

本文详细介绍了OpenGL中的纹理对象、纹理单元、纹理类型和取样器对象的概念及使用流程。纹理对象包含纹素数据,通过绑定到纹理单元供shader使用。每个纹理单元可以绑定多个纹理对象,不同目标类型的纹理。激活纹理单元后,使用glBindTexture指定使用哪个纹理对象。采样操作在片段着色器中完成,取样器一致变量用于指定纹理单元。此外,取样器对象可以独立配置取样状态,覆盖纹理对象的设置。
摘要由CSDN通过智能技术生成

纹理对象包含着纹理贴图自身的数据,比如:纹素。

纹理对象并不是直接绑定到shader上的(事实上是采样阶段发生的地方),而是绑定到‘纹理单元’上,‘纹理单元’的索引会被传到shader中,因此shader是通过纹理单元得到纹理对象的。一般可以同时有多个可用的纹理单元,数量上限取决于显卡的容量。为了将一个纹理对象A绑定到纹理单元0上,首先你需要激活纹理单元0然后绑定纹理对象A。

应该是纹理对象直接绑定到shader中的uniform变量上的,参考https://mp.csdn.net/postedit/88084484

纹理单元有活动之分(glActiveTexture(GL_TEXTURE0)),shader会从当前活动的纹理单元中的纹理对象中取值。

纹理单元一般用GL_TEXTUREi(i是显卡相关的一个数)表示,但是传给着色器的纹理单元一般是i。参考https://mp.csdn.net/postedit/88084484

glActiveTexture(GL_TEXTURE11);
glGenTextures(1, &m_textureObj);
glBindTexture(m_textureTarget, m_textureObj);
glTexImage2D(m_textureTarget, 0, GL_RGB, m_pImage->width(), m_pImage->height(), -0.5, GL_RGBA, GL_UNSIGNED_BYTE, m_pImag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值