问题标签 [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.

0 投票
1 回答
565 浏览

opengl - 优化 OpenGL 片段着色器

我有一个顶点/片段着色器,它绘制一个基于纹理执行许多计算的矩形。(它混合像素,修改它们等)。问题是每个矩形及其包含的像素都不会改变。我只移动整个矩形并缩放它们。

由于矩形并不需要重新计算,有什么方法可以优化片段着色器?

0 投票
2 回答
990 浏览

android - OpenGL片段着色器纹理速度

我有以下片段着色器。

在我的程序中,我在屏幕上绘制了大约 15 个图像(只有 2D,没有 3D 操作)。我允许用手指移动所有图像。因此,当图像在屏幕上时,我得到 40 fps,但是当我将它们移出屏幕(用我的手指)时,我得到 60 fps。(这消除了程序或顶点着色器中的任何瓶颈)。我在 Galaxy Tab 7" 上运行它。

由于这是一个非常简单的着色器,我希望一直保持 60 fps。为什么这很慢?

0 投票
1 回答
2433 浏览

opengl - 无法在 GLSL 片段着色器中使用两个统一变量(仅第一个有效)

我正在尝试在片段着色器中混合两种纹理的颜色。但不幸的是,我在真正的工作之前被困住了。

这是着色器设置:

目前,片段着色器只显示其中一个纹理,如果我让两个纹理都在这个地方工作,这将在稍后更改。

我确实检查了编译和链接错误,一切都很好。

这是我的显示功能:

我的问题是我只能使用“glGetUniformLocation”访问我的片段着色器(“userT”)的第一个制服。调用:“GLint videoTexUnif = glGetUniformLocation(m_silhouetteShaderProg, "videoTex");" 结果为“-1”。

如果我在片段着色器中更改制服的顺序,我可以访问“videoTex”但不能访问“userT”。

我在片段着色器中看到了很多使用两个制服的例子,所以我强烈认为这是可能的。但是我在这里做错了什么?

0 投票
1 回答
814 浏览

ios4 - 使用着色器平滑点 OpenGL ES 2.0

我正在使用 glDrawArrays(GL_POINTS, ...) 绘制一些点,我想让它们平滑圆点而不是正方形。我知道 OpenGL ES 2.0 中没有固定的功能管道,所以我想知道是否有一种简单的方法可以使用片段着色器来做到这一点?

提前致谢,

极限编码器

0 投票
2 回答
2842 浏览

opengl-es - 片段着色器如何使用先前渲染帧的颜色值?

我正在学习在 OpenGL ES 中使用着色器。

举个例子:这是我的游乐场片段着色器,它采用当前视频帧并使其成为灰度:

theColor表示当前像素。在同一坐标处访问前一个像素会很酷。

出于好奇,我想将当前像素的颜色与前一个渲染帧中像素的颜色相加或相乘。

我怎样才能保留以前的像素并将它们传递给我的片段着色器以便对它们做一些事情?

注意:它是 iPhone 上的 OpenGL ES 2.0。

0 投票
1 回答
415 浏览

iphone - 如何创建高分辨率的离屏片段着色器?

我发现我的片段着色器仅限于 OpenGL ES 视口的像素尺寸。

我可以创建一个“屏幕外片段着色器”或具有更多渲染像素的渲染环境吗?

0 投票
0 回答
584 浏览

macos - 在 Mac OS X 上配置 GLSL 片段着色器?

如何分析 GLSL 片段着色器?我正在使用 Mac OS X。

0 投票
1 回答
1233 浏览

c++ - 从片段着色器内部影响深度或模板缓冲区?

我知道可以通过写入 gl_FragDepth 来控制写入 GLSL 中深度缓冲区的内容,但是可以写入模板缓冲区吗?

另外,我可以从片段着色器中完全取消像素写入,就好像像素没有通过模板或深度测试一样?

谢谢

0 投票
1 回答
1142 浏览

android - 具有多个纹理的 gl_fragColor

我目前有两个纹理应用于单个对象。最终会增加几个,但我无法让当前的两个正常工作。

目前,我正在将我的 fragcolor 设置为添加在一起的两个图像。从字面上看,我所做的一切类似于:

我确信有一个更好的方法来做这些事情,但它也产生了图像重叠的问题(显然),这不是我想要对我当前的项目做的事情。

我不确定这是否只是我的 fragColor 的问题,其中有一些 GLSL 的内置功能可以做这样的事情,或者我是否需要先以其他方式组合图像。

编辑 :: 我的意思是添加颜色的示例:http: //i.imgur.com/0vH4F.png

0 投票
1 回答
827 浏览

android - 为什么相同的片段着色器在不同的安卓手机上给出不同的结果?

我正在尝试在 Android 上使用 OpenGL ES 2.0 实现模糊过滤器。这是我正在使用的代码:

在“Samsung Galaxy S”上,它按预期工作。然而,当我在“Samsung Galaxy Ace”上运行相同的应用程序时,它会产生更明亮的纹理而没有模糊效果。

Galaxy S 的结果:

来自 Galaxy S 的结果

Galaxy ACE 的结果:

银河王牌的结果