- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以防止着色器编译器删除它检测到未使用的统一/属性?我偶尔会注释掉我的着色器的一部分进行测试,但这会导致我程序的其余部分出现问题,因为突然某些名称不再存在(从而导致查找错误,并在尝试设置值时出错)。
最佳答案
不,但这不是绝对必要的,具体取决于您编写代码的方式。glUniform*
函数将很高兴地采用统一的 -1 位置。如果您使用的是 program_pack420 和 explicit_attrib_location,您可以将属性索引、片段着色器输出、UBO 绑定(bind)和纹理单元绑定(bind)都放在着色器中。因此,您不必查询事件属性、输出、统一 block 或采样器。
请注意,我们还有 ARB_explicit_uniform_location在 GL 4.3 中。所以你可以在着色器中指定它们,它们不会被优化掉。
The rest of the program needs that attribute to work, otherwise it'd be littered with a bunch of if statements -- which I'm trying to avoid.
glBindAttribLocation
。预链接。那是糟糕的编码,你不应该那样做。
关于OpenGL Shader 阻止优化器移除属性/制服,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050681/
有什么方法可以防止着色器编译器删除它检测到未使用的统一/属性?我偶尔会注释掉我的着色器的一部分进行测试,但这会导致我程序的其余部分出现问题,因为突然某些名称不再存在(从而导致查找错误,并在尝试设置值时
在做了一些没有额外库 + GLSL 着色器的“常规”WebGL 之后,我开始使用 ThreeJS 的 WebGL 渲染器。我现在正在尝试在我的 ThreeJS 程序中编写自定义着色器,我注意到 Thr
我正在使用 创建效果 hr = D3DXCreateEffectFromFile( g_D3D_Device, shaderPath.c_str(), macros,
我不知道制服在内存中是如何表示的。 制服似乎会占用宝贵的寄存器空间,但它们最终会传入/通过/传出到全局内存中,对吗? 制服不用时情况会发生变化吗?编译器可以将它们优化掉吗?--在这种情况下,我已经将无
我正在尝试从 Blender 导出一个带有纹理的对象。导出的 JSON 如下所示: { "metadata" : { "formatVersion" : 3.1,
我通过 this book 逐步学习 WebGL .我尝试通过使用缓冲区 (gl.ARRAY_BUFFER) 而不是循环来绘制三个点(正如我之前在本书的其他示例中所做的一样)。 var u_Fra
假设我有四个浮点值想要发送到着色器,以下哪一个是发送它们的最佳方式。 将它们作为单独的 float 发送: uniform float uniformValue1; uniform float uni
如果我正在进行实例化渲染并且需要将每个实例一个 mat4 发送到顶点着色器,对于大量实例,哪种方法可能更快? 使用实例化的 mat4 属性 (glVertexAttribDivisor) 并将 mat
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!