问题标签 [fragment-shader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - GLSL texelFetchOffset 适用于 isampler2D 但不适用于 usampler2D?
在片段着色器中,以下编译良好:
但是,以下内容无法编译:
OpenGL 4.2 驱动程序提供以下编译器错误消息:
错误 C1115: 无法找到兼容的重载函数 "texelFetchOffset(usampler2D, uvec2, int, uvec2)
这是用于 Quadro 5010M 的 Nvidia 的 Linux 驱动程序 290.* - 但我想知道我是否犯了(初学者)错误并且没有在这里以某种方式进行规范?
opengl - GLSL 顶点着色器编译时不显示
我正在尝试实现 phong 着色无济于事。我正在一点一点地构建着色器(这本身可能是一个问题),但这就是我目前所处的位置。我希望这会将我的结果(犹他茶壶)输出为黑色背景上的白色图像。当我从顶点着色器中删除第 18 行时,它会正确执行此操作,但是当该行存在时,没有输出,也没有错误。有任何想法吗?
片段着色器:
顶点着色器:
值得一提的是 normal 和 normalModelView 目前没有设置。我之前曾尝试过启用它们以获得类似的结果。我的理解是它们应该设置为默认值。
opengl - 未触发opengl片段着色器条件语句
我正在浏览http://arcsynthesis.org/gltut/Positioning/Tut03%20More%20Power%20To%20The%20Shaders.html上的教程
我目前正在学习创建一个三角形,将其沿圆形方向移动并逐渐将颜色从白色变为绿色。一个完整的循环后颜色会跳回白色。我试图使颜色逐渐从白色变为绿色并返回。我设置颜色更改方向的条件语句似乎永远不会评估为真,因此我的更改永远不会生效。
这是我的片段着色器。
flash - 混合不同的 Program3D 会导致某些对象无法渲染
我在使用 Stage3D 时遇到了一些意想不到的事情。我为我的对象制作了两个不同的着色器程序。其中一个程序用于使用纹理位图和 uv 数据。另一个只是使用颜色数据。这两个对象非常不同,因为最终,我将使用纯色和简单的渲染逻辑显示一些内容(如方向线、高光等),而其他内容(如实际对象、背景等)将使用 mipmap 等进行渲染向前。问题是当我使用这两个非常不同的着色器程序时,只有一个可以工作。所以要么出现我所有的纯颜色对象,要么出现我所有的纯纹理对象。显然,我希望两者都出现。
这是纹理对象的 agal 代码:
顶点着色器:
片段着色器:
这些对象的渲染代码如下所示:
这是我用于纯色对象的 agal 代码(即没有纹理):
顶点着色器:
片段着色器:
这些对象的渲染代码如下所示:
由于某种我无法弄清楚的原因,我将不同的数据分配给不同的不同寄存器索引 (va) 的事实导致其中一个渲染过程失败。如果我首先在纹理循环中渲染纹理对象,我所有的彩色对象都会消失,反之亦然。对象将在第一帧正确显示。但是一旦渲染循环第二次播放,就会发生这种意外行为。
我发现如果我通过添加以下内容来修改颜色对象的渲染代码:
有用。但这确实不是一个好的解决方案。我不想知道在我的程序的某个地方,另一个对象正在使用 n 个不同的寄存器进行渲染,所以如果另一个 program3D 实例需要小于 n,我必须将所有那些未使用的 va 设置为 null。此外,如果我为现在需要第 4 个 va 的某个对象(例如发光对象)创建一个新的着色器程序,现在我必须返回并修改所有其他着色器程序以将 va4 设置为 null,以便一切都可以渲染。这是真的吗?当然,我在这里遗漏了一些东西。设置我所有的纹理寄存器(ft)也是如此。
我可以提供更多信息...
opengl-es - 谁为三角形内的点计算 gl_FragColor ?
如果我们要使用顶点着色器和片段着色器生成雾,一种常见的方法是在顶点着色器中计算顶点的距离,并在片段着色器中应用雾混合颜色。
我的问题是,由于我们只计算了三角形顶点的距离,OpenGL 是如何决定三角形内点的颜色的?如果它是自动计算的,有没有办法控制计算?
glsl - GLSL Shader - 具有透明度的阴影(玻璃板效果)
我已经创建了一个着色器,它能够将图像旋转大约 180° 并用黑色渐变覆盖它,但现在我想创建真正的透明度而不是使用黑色作为我的背景颜色。
这是我到目前为止得到的:
opengl - 获取 GLSL Frag Shader 的值不正确
我正在做一个简单的 OpenGL 4 项目。我要做的就是改变鼠标指针周围的 alpha 值并混合。经过一些工作,我设法得到一个圆圈来更改值,但它是静态的(不随鼠标移动)并且以(0,512)为中心,非常不是我的鼠标位置。我通过passiveMotionFunc发送鼠标值:
MousePos 只是一个简单的浮动容器。我有打印语句,所以我可以看到我的鼠标位置的值。
我的碎片着色器很简单:
我完全坚持这一点。我假设碎片着色器没有得到更新的鼠标坐标,因为如果 FragCoord 被搞砸了,它就不会产生一个圆圈。
编辑:我在 main() 中的 glutDisplay 和 glutPassiveFunc 之前的 init() 函数中设置了我的混合。
EDIT2:这是我的 vec2 定义:
actionscript-3 - 在 agal 的片段着色器中获取当前缓冲区深度
如果有的话,是否可以在片段着色器中的 AGAL 中获取当前片段深度?
opengl - glAlphaFunc 在较新的 GPU 上的性能
我几乎完成了一个只使用顶点数组而没有着色器的应用程序。我使用 glAlphaFunc 绘制了很多多边形,而且速度出乎意料地慢。这是因为它已被硬件贬值且不受硬件支持,或者如果我有一个纹理着色器和一个 alpha 测试来丢弃片段,它会同样慢吗?
opengl - gl_FragCoord 中的 1/w 坐标代表什么?
gl_FragCoord 变量存储四个分量: (x, y, z, 1/w )
w坐标是什么,为什么存储为1/w?