- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OpenGL 标准是否规定了 texture2d 操作的结果应该被赋予程序未绑定(bind)到纹理单元的统一采样器 2D?
例如在像素着色器中:
layout(binding=0) uniform sampler2D Map_Diffuse;
...
texture2D(Map_Diffuse, attrib_Fragment_Texture)
程序中的位置:
::glActiveTexture(GL_TEXTURE0);
::glBindTexture(GL_TEXTURE_2D, 0);
对于上下文,我想知道我是否可以对纹理和非纹理实体使用相同的着色器,其中(希望如此)我只需要确保没有任何东西绑定(bind)到 GL_TEXTURE_2D 以便 texture2d() 返回 0, 0, 0 , 1. 否则我需要为每个排列使用一个着色器。
最佳答案
按照我阅读规范的方式,它保证返回黑色。以下引用是从 3.3 规范中复制的。
在第 81 页的“顶点着色器”下的 2.11.7 节“着色器执行”中:
Using a sampler in a vertex or geometry shader will return (R,G,B,A) = (0,0,0,1) if the sampler’s associated texture is not complete, as defined in section 3.8.14.
以及第 188 页“片段着色器”下的第 3.9.2 节“着色器执行”中的等效项:
Using a sampler in a fragment shader will return (R,G,B,A) = (0,0,0,1) if the sampler’s associated texture is not complete, as defined in section 3.8.14.
在第 3.8.14 节“纹理完整性”中,它说:
A texture is said to be complete if all the image arrays and texture parameters required to utilize the texture for texture application are consistently defined.
现在,它没有明确说明甚至不存在的纹理对象。但是由于不引用纹理对象(包括 0)的纹理名称肯定没有“一致定义的所有图像数组和纹理参数”,我认为它们属于上述定义中的“不完整”。
关于OpenGL 从未绑定(bind)的纹理单元读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28411686/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!