问题标签 [pixel-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.
actionscript-3 - 使用 PixelBender 显示/隐藏特定颜色范围
隐藏特定(插值)颜色范围的最佳方法是什么?例如,我有一个渐变,从蓝色 > 青色 > 黄色 > 红色。我需要的是隐藏蓝色>青色,黄色>红色,但留下青色>黄色。
可以为每个范围应用不同的过滤器。
有任何想法吗?
opengl - DX9 和 DX10):默认的像素(和顶点)着色器是什么?(如果可能,也可以使用 OpenGL。)
我知道我可以选择在 DX9 中指定着色器,并且我需要在 DX10 中指定着色器。我的问题是,如果我说我想使用着色器但我没有指定一个着色器会发生什么。一句话,我正在寻找的是默认行为。有默认着色器吗?
我对以下场景感兴趣:
- DX10,不指定像素着色器。(我必须调用 PSSetShader(NULL) 吗?如果我不调用怎么办?)将运行的默认着色器是什么?
- 同样的问题,顶点着色器。
- DX9,如果我指定我将使用像素着色器,但没有指定一个,会发生什么?有默认吗?如果我选择使用固定功能接口,是否有默认值?这些默认值是否相同?
- 额外问题:OpenGL 和 GLSL 怎么样?与DX9相同的问题。
我很想看到一个指向此文档的指针——我仔细阅读了 Microsoft 在线 DX 文档,但在找到任何类型的默认行为方面确实无处可去。
谢谢!
flash - 关闭 Pixel Bender 中的颜色范围
关闭(使用 PixelBender)处于特定范围内的颜色的最佳方法是什么。例如,关闭 0x0000FF 和 0x00FFFF 之间的所有颜色。谢谢你的帮助。这必须在 Flash 中工作。谢谢!
shader - 使用着色器比较图像
你知道我如何编写简单的着色器(hlsl)来比较两个图像吗?我想获得相似度的结果百分比?在这种情况下可以使用着色器吗?例如,我可以用着色器计算图像上的红色像素吗?
random - 我可以在像素着色器中生成一个随机数吗?
我正在尝试编写一个非常简单的着色器,为适用的对象添加随机闪光。我想这样做的方法是在像素着色器中的像素值中添加一个随机的白色阴影(R = G = B)。
这似乎noise()
不像我希望的那样工作:
它给了我“错误 X4532:无法将表达式映射到像素着色器指令集”,指的是对noise()
.
由于我不知道在对着色器的调用之间保留数字的方法,我认为我不能只根据渲染前传入的种子编写一个简单的随机数生成函数。
有没有办法从像素着色器内部产生一个随机数?如果有办法,怎么做?
directx - ComputeShader 与 PixelShader 的速度
与 PixelShader 相比,我有一个关于 ComputeShader 的问题。我想对缓冲区进行一些处理,这对于像素着色器和计算着色器都是可能的,现在我想知道两者是否有任何优势,特别是在速度方面。我遇到了仅使用 8 位值的问题,但我应该能够解决这个问题。
输出中的每个数据点都将使用围绕它的总共 8 个数据点(MxN 矩阵)来计算,所以我认为这对于像素着色器来说是完美的,因为不同的输出根本不会相互影响。
但是我找不到任何基准来比较着色器,现在我想知道我应该瞄准哪一个。唯一的目标是速度。
graphics - 我的“柏林”噪声效果着色器产生全白或全黑
我正在尝试在 NVidia FX Composer 中编写一个“perlin”噪声着色器。但是,无论我如何调整噪声函数,它都会返回 100% 白色或 100% 黑色。我不知道如何解决这个问题,甚至不知道问题出在哪里。
编辑:如果你看过这个页面,你可能知道我从哪里得到代码。想我会从一个我已经在 CPU 上工作的方法开始。
请帮忙。
谢谢。
rendering - 条件和未使用的采样器/纹理为 SM2/3 像素着色器增加了多少性能?
我们在 HLSL 中有一个像素着色器,它在几个地方用于稍微不同的事情,因此有几个条件块,这意味着在某些情况下会省略复杂的功能。同样,这意味着我们将纹理作为采样器参数传递,这些参数可能并不总是被使用。
我不知道这两个东西增加了多少性能,但特别是因为我们在集成图形芯片上支持 SM2.0,效率低下是一个问题。那么,传入纹理而不使用它是否意味着任何额外的开销?并且使用if
简单的动作来添加几条指令还是会因为停顿等而严重影响事情,比如在进行 CPU 优化时?
xna - 在同一个像素着色器中对多个纹理进行采样并渲染到多个纹理
我的总体目标是能够创建一个将多个纹理作为输入并渲染到多个目标的像素着色器。以及通过初始化和完成着色器,通过重复运行此着色器,我将得到我的结果。
我之前创建了具有多个输入纹理的着色器,以及渲染到多个目标的着色器,但我从未将 2.
我认为引起问题的是我对语义缺乏充分理解,以及如何正确设置输入和输出纹理。
我已经看到了几种不同的获取输入纹理的方法,并且对应该如何设置感到困惑。
下面是由 init 和 itterate 着色器输出的共享结构的代码(最终着色器只输出颜色):
p>下面是 itterate 和 finalize 着色器的纹理声明(初始化着色器不使用任何纹理):
p>在 c# XNA 代码中,我设置渲染目标(通过执行 GraphicsDevice.SetRenderTargets() 然后设置纹理参数(通过执行 Effect.Parameter["TextureVariableName"].SetValue(),然后绘制四边形(通过精灵批处理)。
任何帮助将不胜感激,因为我找不到任何这样做的例子。
plugins - Actionscript 3:有什么方法可以从本地程序获取数据?
我最近一直在构建一个像素着色器,以将着色应用于我目前正在编写的 Flash 游戏中的玩家角色。然而,事实证明,Actionscript 3 是……没有优雅地处理这个问题,而且帧率命中非常大。
我想做的是用 C++ 编写一些东西,然后可以使用 OpenGL 缓冲区来存储我想要调整的像素,以硬件加速的方式调整它们,然后将其传递回 Flash 文件。
有没有办法让 AS3 将位图数据传递给本地着色器插件 .exe,然后接受返回的数据,或者我应该放弃并用 Unity 重写整个该死的东西吗?
如果做不到这一点,是否有任何方法可以强制 GPU 在 AS3 中进行数字运算?我知道 OpenGL 不能与 AS3 一起使用,但 DirectDraw 可能吗?
我知道这整个企业a)荒谬的矫枉过正,b)可能注定要失败,但目前这一切都阻止了我为该项目撰写反思性文章。(大学课程)