问题标签 [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 投票
1 回答
434 浏览

pixel-shader - 为什么 Cg 编译器的更高版本使用更多指令生成着色器?

我有一个看起来像这样的着色器:

我正在编译它:

现在,不同版本的 Cg 编译器创建不同的输出。

  • cgc 版本 2.2.0006 正在使用 18 条指令将着色器编译成汇编代码:

    /li>
  • cgc 版本 3.0.0016 正在使用 23 条指令将着色器编译成汇编代码:

    /li>

奇怪的是,cg 3.0 的优化级别似乎没有任何影响。

有人可以解释发生了什么吗?为什么优化不起作用,为什么当我使用 cg 3.0 编译时着色器更长?

请注意,我从已编译的着色器中删除了注释。

0 投票
2 回答
645 浏览

flash - 在 Pixel Bender for Flash/Flex 中模拟嵌套循环

我有两个大但任意的向量(v1.length 不必等于 v2.length)点数,我想将它们成对相乘。因为这是 AS3 代码大循环中的主要瓶颈,所以我想我会尝试提取代码并通过 Pixel Bender 异步运行它。现在,为了表示数据,我将有两个 image2 变量作为输入。

如何从一张图像中获取一个像素并使用另一张图像的每个像素进行计算?我只是在学习 Pixel Bender,所以我可能忽略了一些循环工作。

编辑:也许我需要澄清一下。假设我有这样的东西

这是一个嵌套循环——如何在 Pixel Bender 中模拟它?

0 投票
1 回答
3237 浏览

arrays - Texture2D 数组作为 HLSL 像素着色器中的渲染目标

目前,我需要来自渲染通道(法线、深度和颜色)的几个纹理的每像素数据。

而不是使用本质上相同的着色器(WorldViewPos 乘法等)运行三个通道,但每个通道都将不同类型的数据输出到渲染目标中的纹理(例如,一个通道用于颜色,一个通道用于深度,一个通道用于法线); 我想使用 Texture3D 对象或理想情况下的 Texture2D 数组作为我的像素着色器的渲染目标。这样我就可以将这三个渲染通道减少到只有一个,并一次输出所有数据。

不幸的是,我发现的唯一例子是几何着色器。有没有办法指定纹理数组中的哪个纹理将数据发送到像素着色器内部?

0 投票
1 回答
635 浏览

directx - 查看 GPU 内存 / 查看 Texture2D 内存空间进行调试

我有一个关于我正在尝试实现的 PixelShader 的问题,以及我目前在做什么(这只是为了调试,并试图弄清楚):

关键是,这始终是 0,0,0,1

创建纹理缓冲区:

我通过以下方式上传纹理(最后应该是实时显示):

我检查了resource.pData,里面的数据是一个有效的8bit 单色图像。我确保来自相机的数据是 8 位单色 640x480。

有几件事我不完全理解:

  • 如果我在每一帧中运行 Map / memcpy / Unmap 例程,驱动程序最终会崩溃,系统将无响应。是否有不同的方法来更新每帧应该完成的完整纹理?
  • 我上传的纹理是 8bit,为什么 Texture2D.load() 是 float4 返回?我是否必须使用不同的方法来访问纹理数据?我试图对其进行 .sample ,但这也不起作用。我是否必须使用 int 缓冲区或其他东西?
  • 有没有办法调试 GPU 内存,首先检查 memcpy 是否工作?
0 投票
1 回答
315 浏览

wpf - 帮助需要在 WPF 中使用 Shader Effect 开发 CUBE 和 DOOR 过渡

我需要使用 Shader 效果在我的 WPF 应用程序中开发 CUBE 和 DOOR 转换。我查看了CodePlex 着色器库,但它没有提供 CUBE 和 DOOR 转换。我是像素着色器的新手,编写自己的着色器文件的知识有限。任何指针或帮助?

提前致谢

0 投票
2 回答
1114 浏览

xna - 对精灵的多重效果

我已经使用像素着色器文件实现了效果和过渡。当我分别应用效果和过渡时,它工作正常,但如果我同时应用两者,它就不起作用。如何将多个着色器应用于精灵。下面是我在做什么的代码。

0 投票
1 回答
3315 浏览

direct3d - 如何在 DirectX 9.0 c 中访问像素着色器中的深度缓冲区

是否可以通过 DX 9.0c 中的像素着色器 2.0 访问深度缓冲区?我用谷歌搜索了一下,我发现的唯一解决方案描述了仅适用于 GeForce 6 和 7 的 GPU hack。

我想要实现的是编写景深着色器效果。我不能简单地抓取顶点的 Z 坐标,因为我也在渲染纹理技巧,用于其他后期处理。

编辑:

我试过这个:

SaveTextureToFile 失败,着色器获得纯白色 RGB(1, 1, 1) 的纹理

0 投票
1 回答
400 浏览

c# - 在效果文件中设置纹理

我需要在着色器文件中传递纹理,但它给了我错误“无效调用”。请帮忙告诉我哪里做错了?下面是我写的代码。我可以设置除纹理之外的所有参数。

0 投票
1 回答
4952 浏览

math - pow(0, 2.2) 在 hlsl 像素着色器中给出 1?

但是 pow(0, 2.0) 给出 0

似乎任何浮点指数都给出 1,而整数指数给出 0。

我正在使用 DirectX 9 和 hlsl 编译器“D3DCompiler_43.dll”。在 Nvidia 和 Ati 卡上确认了这一点。

我很困惑!这是某种已知的行为或错误吗?

为了说明效果,请尝试以下简单的测试着色器:

0 投票
2 回答
831 浏览

wpf - 像素着色器将纹理投影到任意四边形

只需想出一种方法,使用 Pixel Shader,将纹理投影到任意用户定义的四边形。

将接受四边形四个边的坐标:

尝试了几种插值算法,但无法正确处理。

有没有你们认为我可以修改以获得所需结果的样本?