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

0 投票
2 回答
1831 浏览

c# - HLSL:有问题的像素着色器代码(采样时 alpha 为零)?

我对像素着色器中的采样器有这个奇怪的问题。当我从采样器采样到一个空的 float4 变量时,我总是会返回黑色/透明颜色。所以如果我使用它,我会得到一个黑屏:

我用这个代替它工作正常:

这只发生在我家的 AMD 4850 GPU 开发环境中。当我在一些 nVidias 或 AMD5850 上尝试它时,它无论如何都可以工作......

这是什么原因?我错过了一些设备初始化吗?

干杯!

0 投票
1 回答
719 浏览

directx - CG:我的逐像素光照有什么问题?

我尝试在统一和 CG 中进行基本的 n-dot-l 照明。

据我了解,照明不应根据您用相机观察物体的位置而改变。但在我的情况下确实如此。

那么我在这段代码中缺少什么?

我还需要用模型视图矩阵转换灯光位置吗?

谢谢!

0 投票
1 回答
1006 浏览

directx - 无法访问 DXGI_FORMAT_R8_UINT 纹理

我想对相机发送的 8 位图像进行一些计算,但我不知道如何访问它们。

以下是我创建纹理对象/资源视图的代码:

我使用以下代码更新纹理:

HLSL 文件(采用四边形,在屏幕上显示为四边形):

当我尝试运行它时,出现错误 X4532: cannot map expression to pixel shader instructions set

当我尝试调试它时,当我尝试查看 g_pCurrentImage 的数据时,它只是说无法显示表面,并且将其替换为

DirectX 调试器(在这种情况下为 PIX)只是忽略第一行,它们永远不会到达,因此我无法调试它。我已经没有办法解决这个问题了,我想做的只是一些基本的数学指令,但我完全无法让像素着色器工作。

0 投票
1 回答
1025 浏览

graphics - 帮助了解像素化效果

我是新的 HLSL,我正在尝试了解像素化样本。但是,我无法找到有关几个操作的参考。这是着色器示例:

我无法理解发生了什么计算:

我不确定如何计算两个向量之间的除法,也不知道如何计算向量的下限。(我假设两个 float2 的除法返回一个 float2)。

任何的想法?

0 投票
1 回答
389 浏览

graphics - 几何着色器执行次数?

因此,为每个顶点执行一个顶点着色器,为每个片段执行一个片段着色器(对吗?)。

几何着色器执行多少次?

0 投票
1 回答
522 浏览

xna - xbox 上的像素着色器性能

我有一个与 XNA 一起使用的像素着色器(如下)。在我的笔记本电脑(蹩脚的显卡)上,它运行起来有点生涩,但还可以。我刚刚尝试在 xbox 上运行它,这太可怕了!

游戏没有任何内容(它只是一个分形渲染器),所以它必须是导致问题的像素着色器。我也认为这是 PS 代码,因为我降低了迭代次数,没关系。我也检查过,GC delta 为零。

xbox 上是否有任何禁止使用的 HLSL 功能?我一定是在这里做错了,性能不会那么差!

下面是 FractalBase.fxh:

编辑我确实尝试通过使用大量 lerps 来删除条件,但是当我这样做时,我得到了大量的文物(而不是“属于博物馆”的那种!)。我改变了一些东西,并修复了一些逻辑错误,但关键是将 GreaterThan 结果乘以 1 + epsilon,以解决舍入误差仅使 0.9999 = 0(整数)。请参阅下面的固定代码:

0 投票
1 回答
732 浏览

opengl-es - HYDRA(像素弯曲器)sampleLinear 的 OpenGL ES 2 着色器语言模拟是什么?

所以我查看了OpenGL ES 着色器规范,但没有看到这样的......

例如 - 我创建了简单的“捏放大”和“旋转转身”和“移动中心” HYDRA 像素弯曲过滤器。它可以在闪存中执行。它基于默认的像素弯曲器旋转示例,并且

所以现在我想将它移植到 OpenGL ES 着色器中。数学和参数可以转换成 OpenGL ES 着色器语言,但是 sampleLinear 怎么办?openGL ES 着色器语言中的模拟是什么?

更新:

所以我创建了类似于我的 HYDRA 过滤器的东西......兼容 webGL 和 OpenGL ES 着色器......

要查看它是如何工作的,请使用现代浏览器,导航到shadertoy为其提供一个纹理(http://www.iquilezles.org/apps/shadertoy/presets/tex4.jpg例如),将我的代码粘贴到可编辑文本 aeria 中并点击在此处输入图像描述...玩得开心。所以..现在我有另一个问题...我想要一个图像和黑色而不是同一图像的副本...任何人都知道该怎么做?

0 投票
1 回答
2701 浏览

opengl - OpenGL Pixel Shader:如何生成 0 和 1 的随机矩阵(在每个像素上)?

所以我需要的很简单:每次我们执行着色器(每个像素的意思)时,我都需要计算1s 和0s 的随机矩阵resolution == originalImageResolution。怎么做这样的事情?

至于现在我已经创建了一个shadertoy随机矩阵分辨率在这里设置为15 x 15,因为当我尝试像200 x 200这样的东西时,gpu会使chrome经常下降,而我真的需要完整的图像分辨率大小

还有一个用于 Adob​​e 像素弯曲器:

所以我真正的问题是——我的着色器让我的 GPU 崩溃。如何将 GLSL 用于与我现在相同的目的,但不会失败,如果可能的话更快?

更新: 我想要创建的是单像素相机(google Compressive Imaging 或 Compressive Sensing),我想创建基于 gpu 的软件实现。

想法很简单:

  • 我们有一个图像 - NxM
  • 对于图像中的每个像素,我们希望 GPU 执行以下操作:
    • 生成NxM随机值矩阵 - 0s 和1s。
    • 计算原始图像上所有像素的算术平均值,其坐标对应1于随机NxM矩阵中 s 的坐标
    • 算术平均值的输出结果为像素颜色。

我试图在我的着色器中实现的是模拟那个谨慎的过程。

尝试在 gpu 上执行此操作真的很愚蠢:

  • 压缩传感并不要求我们计算NxM这种算术平均值的矩阵,它只需要它的和平(例如1/3)。所以我给GPU施加了一些我不需要的压力。然而,对更多数据进行测试并不总是一个坏主意。
0 投票
2 回答
24826 浏览

opengl - 顶点着色器和片段着色器中的 gl_Color 和 gl_FrontColor 之间的关系是什么

我有直通顶点和片段着色器。

顶点着色器

片段着色器

那些会产生空渲染(黑色而不是像 glClearBuffer 那样的背景颜色)。

如果我修改顶点着色器以将 gl_FrontColor 设置为 gl_Color 它会渲染未触及的 OpenGl 缓冲区......这是传递着色器的预期行为。

我很困惑,顶点着色器中的 gl_FrontColor 设置如何改变片段一中 gl_Color 的值?我错过了什么?

0 投票
1 回答
230 浏览

wpf - 我可以打印像素着色器效果吗?

我有一个要打印的 WPF 用户控件。我可以用 XpsDocumentWriter 做到这一点。现在我想应用一个像素着色器效果。我可以看到效果已应用于控件。但是,当我尝试打印它时,输出与没有效果的输出相同。是否可以打印着色器效果?谢谢。