问题标签 [hlsl]

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 回答
2013 浏览

xna - HLSL:在编译时强制执行常量寄存器限制

在 HLSL 中,有没有办法限制编译器使用的常量寄存器的数量?

具体来说,如果我有类似的东西:

在 vs_2_0 顶点着色器中,编译器将愉快地使用超过 256 个常量寄存器生成效果。但是 2.0 顶点着色器只能保证可以访问 256 个常量寄存器,所以当我尝试使用该效果时,它会在运行时以一种模糊且依赖于 GPU 的方式失败。我宁愿让它在编译时失败。

这个问题特别烦人,因为编译器本身在后台分配常量寄存器,在我要求的寄存器之上。我必须检查组件,看看我是否超过了限制。

理想情况下,我想在 HLSL 中执行此操作(我正在使用 XNA 内容管道),但是如果有一个可以传递给编译器的标志,那也会很有趣。

0 投票
1 回答
1500 浏览

xna - HLSL:未对齐/打包浮动的索引

我有一个顶点着色器(2.0)做一些实例化——每个顶点都指定一个数组的索引。

如果我有这样的数组:

编译器为其分配了 100 个常量寄存器。每个常量寄存器都是 a float4,因此它分配了所需空间的 4 倍。

我需要一种方法让它只分配 25 个常量寄存器并在每个寄存器中存储四个值。

理想情况下,我想要一种在 CPU 和 GPU 上仍然看起来像 a 的方法float[](现在我正在调用EffectParamter.SetValue(Single[]),我正在使用 XNA)。但是手动打包和解包 afloat4[]也是一种选择。

另外:这样做对性能有什么影响?它真的值得吗?(对我来说,这将在每四五个中节省一批)。

0 投票
1 回答
222 浏览

directx - 将配置文件构建为可执行文件?

我目前正在开发一个小图形演示(使用 DirectX),它主要基于我正在研究的 HLSL 着色器。使用 D3DX10CreateEffectFromFile 我在运行时加载(并编译着色器),因为我发现它更容易调整。

但是,一旦我完成了,我想做以下的一些组合:

  • 预编译着色器,以便用户更快地启动演示
  • 隐藏(编译成可执行文件)已编译的着色器(或者如果需要,可能只是源代码)

首先,我想这样做是因为我希望演示只是一个可以很容易复制的文件。

我可以轻松做的一件事就是将源文本直接放入 cpp 中,但这会非常繁琐,我需要稍后对其进行更新。

是否可以做这样的事情(使用 Visual Studio、DirectX、HLSL)?

0 投票
1 回答
1477 浏览

optimization - How can I encode four unsigned bytes (0-255) to a float and back again using HLSL?

I am facing a task where one of my hlsl shaders require multiple texture lookups per pixel. My 2d textures are fixed to 256*256, so two bytes should be sufficient to address any given texel given this constraint. My idea is then to put two xy-coordinates in each float, giving me eight xy-coordinates in pixel space when packed in a Vector4 format image. These eight coordinates are then used to sample another texture(s).

The reason for doing this is to save graphics memory and an attempt to optimize processing time, since then I don't require multiple texture lookups.

By the way: Does anyone know if encoding/decoding 16 bytes from/to 4 floats using 1 sampling is slower than 4 samplings with unencoded data?


Edit: This is for Shader Model 3

0 投票
1 回答
1732 浏览

c++ - 将值传递给着色器的问题

我在将值传递给我的着色器时遇到问题。我的应用程序编译得很好,但我的立方体对象不会着色。以下是我的大部分代码。

我与着色器通信的大部分代码都在 createObject 方法中

我的游戏.cpp

下面是我的着色器

效果.fx

0 投票
2 回答
847 浏览

directx - 如何将信息发送到 DirectX 10 中的 HLSL 效果?

我想将我的视图向量发送到 ID3D10Effect 变量以计算镜面反射光照。如何从正在运行的 DirectX 程序向 HLSL 发送向量甚至标量值?我想做类似的事情

0 投票
2 回答
531 浏览

c++ - SetMatrix() 不会将所有值复制到 HLSL

我想将 D3DXMatrices 向量的内容用于我的着色器。

正如我们所知道的向量的内部结构,这不会造成任何问题(因为它只是一个动态数组)。

现在,当我在 hlsl 中访问这个矩阵来填充一个结构时,我得到了这个奇怪的行为:

在调试时,我看到我的矩阵很好地填充了我想要的变量。当我尝试硬编码检查结构中的内容时,我得到全零,除了 LightRange。

如您所见,我尝试了访问 float4x4 的不同方法,但没有任何其他结果。

为什么哦,为什么 hlsl 不复制我所有的变量?

0 投票
3 回答
2799 浏览

c# - 所有像素的高效像素着色器总和

如何使用 HSLS 像素着色器有效地计算图像中所有像素的总和?我对 Pixel Shader 2.0 感兴趣,我可以将其作为 WPF 着色器效果调用。

0 投票
1 回答
1160 浏览

c# - 如何为 WPF 实现漂白绕过着色器效果?

如何为 WPF实现漂白绕过着色器效果?
我也对实施前两个Tehnicolor Film Processes的可能性感兴趣,或者任何会导致旧电影外观的变体。

0 投票
2 回答
1950 浏览

wpf - 运算次数最少的排序算法

运算次数最少的排序算法是什么?我需要在 HLSL 中实现它作为 WPF 的像素着色器效果 v2.0 的一部分,因此考虑到像素着色器的限制,它需要进行非常少量的操作。我需要对 9 个值进行排序,特别是当前像素及其邻居。