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

compiler-construction - HLSL 编译器错误?

这是我的像素着色器的一部分。为什么会出现编译器错误?我在ps_3_0. 没有mul()它编译的情况下编译它。

0 投票
2 回答
6570 浏览

math - 矩阵乘法 - 视图/投影、世界/投影等

在 HLSL 中有很多矩阵乘法,虽然我了解如何以及在何处使用它们,但我不确定它们是如何得出的或它们的实际目标是什么。

所以我想知道是否有在线资源可以解释这一点,我特别好奇将世界矩阵乘以视图矩阵和将世界+视图矩阵乘以投影矩阵的目的是什么。

0 投票
2 回答
7985 浏览

directx - 所有不同的 HLSL 采样器类型有什么用途?

我目前正在使用 DX9/SM3,关于HLSL 采样器的 MSDN 文档似乎非常缺乏解释如何使用不同的采样器类型。更糟糕的是,他们试图在一篇文章中涵盖 DX9 和 DX10,所以他们将所有关键词混在一起:

采样器名称= SamplerType { Texture = < texture_variable >; [ state_name = state_value ;] ... };

...

采样器类型

[在] 采样器类型,它是以下之一:samplersampler1Dsampler2Dsampler3DsamplerCUBEsampler_stateSamplerState

Direct3D 9 和 Direct3D 10 之间的区别:

Direct3D 10 支持一种额外的采样器类型:SamplerComparisonState

我觉得与这篇文章相反,SamplerState只有 DX10。我看到的几乎所有代码都sampler_state用于SamplerType。BasicHLSL (DX9) 中的一个简单示例:

为什么所有不同的 _SamplerType_s 都存在,你什么时候使用,比如说,sampler或者sampler2D代替sampler_state?无论如何,您在获取时都需要明确,例如tex2D, texCUBE,那么这里发生了什么?

0 投票
1 回答
1620 浏览

directx - HLSL 循环/采样问题

我有一段 HLSL 代码,如下所示:

我得到的结果与只执行一次的循环一致。我检查了 PIX 中的着色器,事情变得更加奇怪,指示代码中位置的黄色箭头进入循环,穿过它一次,然后跳回到起点,此时黄色箭头不再移动,但光标遍历代码并返回结果(PIX 中的一个错误,或者我只是使用错误?)

我怀疑这可能与纹理读取被编译器移出循环有关,但是我认为 tex2Dlod 不会发生这种情况,因为我手动设置了 LOD:/

所以:

1)有什么问题?

2)任何建议的解决方案?

0 投票
1 回答
1959 浏览

directx - 从 CPU 上的几何着色器读取输出

我正在尝试从使用流输出输出到缓冲区的几何着色器中读取输出。

几何着色器使用的输出缓冲区描述如下:

几何着色器基于单个点创建多个三角形(每个点最多 12 个三角形),如果我正确理解 SDK,我必须创建一个暂存资源,以便从 CPU 上的几何着色器读取输出。

我已经声明了另一个缓冲区资源(这次设置了 STAGING 标志),如下所示:

在应用程序的第一次绘制调用之后,几何着色器完成创建所有三角形并且可以绘制。但是,在第一次绘制调用之后,我希望能够读取几何着色器输出的顶点。

使用缓冲区暂存资源我试图这样做(在第一次绘制调用之后):

这会编译并且在运行时不会给出任何错误。但是,我似乎没有得到任何输出。

几何着色器输出以下内容:

并且 VERTEX_STREAMOUT 声明如下:

我在这里错过了什么吗?

0 投票
2 回答
1258 浏览

flash - Pixel Bender(Flash 中)和 Pixel Shaders(Silverlight 中)的比较

有人能解释一下 Flash 中的 Pixel Bender 和 Silverlight 中的 Pixel Shader (HLSL) 在编程灵活性和运行时性能方面的区别吗?

0 投票
4 回答
9237 浏览

shader - HLSL 像素着色器 - 更改特定色调的图像颜色

我想编写一个像素着色器,它采用输入图像,并将一个色调范围(即 HSV)的所有颜色转换为另一个色调范围。

我的动机很简单:我想为一堆不同的纹理上色,但我不想为整个纹理上色,只是在特定范围内具有色调的部分。这样,我可以绘制一张赛车的图像,然后使用像素着色器仅更改汽车上的条纹和徽标的颜色。

我在网上查看了 HLSL 文档,找不到任何可以处理色调的东西。是否有在线可用的 HLSL 代码库?

这是我要完成的一些伪代码:

如果该信息对任何人都很重要,我正在与 XNA Game Studio 合作。

0 投票
3 回答
695 浏览

directx - 给定世界空间中的法线贴图,找到边缘的合适算法是什么?

如果我将正常场景的顶点法线显示为世界空间中纹理中的颜色,是否有一种方法可以有效地计算边缘,或者在数学上是不可能的?我知道如果您在视图空间中有法线,则可以计算边缘,但我不确定如果您在世界空间中有法线,是否可以这样做(我一直试图找出过去的方法小时..)

我将 DirectX 与 HLSL 一起使用。

0 投票
6 回答
29972 浏览

c++ - 从 [0.5 - 1] 规范化到 [0 - 1]

我有点卡在这里,我想这有点脑筋急转弯。如果我的数字在 0.5 到 1 之间,如何将其标准化为 0 到 1 之间?

感谢您的帮助,也许我只是有点慢,因为我过去 24 小时一直在工作 O_O

0 投票
4 回答
4734 浏览

directx - 调试directx像素/顶点着色器?

我试图弄清楚如何在 DirectX 中调试像素和顶点着色器,我尝试过使用 Pix for Windows,但发现它有很多错误并且实际上无法操作。是否有替代方法可以让我在自己的应用程序中调试这些着色器?