问题标签 [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 回答
4593 浏览

c# - C# 中 frac 函数的最快实现

我想在 C# 中实现一个 frac 函数(就像这里的 hsl 中的那个http://msdn.microsoft.com/en-us/library/bb509603%28VS.85%29.aspx)但因为它是处理器密集型应用程序我想要最好的版本。我正在使用类似的东西

但我有精度问题,例如 2.6f 它在单元测试中返回

预期:0.600000024f 但实际为:0.599999905f

我知道我可以将值转换为十进制,然后最后转换为浮点数以获得正确的结果,如下所示:

但我想知道是否有更好的方法而不使用小数......

0 投票
1 回答
6290 浏览

directx - HLSL:空 fx 文件:X3000:意外令牌“{”

出现以下错误:Test.fx(1,1): error X3000: syntax error: unexpected token '{'

Text.fx 包含以下内容:无。

我还尝试了一个在另一个测试项目中运行良好的效果文件:

与结果相同的错误。

在两个项目中包含来自同一个 dx sdk 的 dx 文件。包括和链接相同的头文件和库。

我从字面上复制了测试项目中的加载功能。我自己编写了整个测试项目。

谷歌没有出现这样的事情。如果你能从我的湿器中取出匕首,我将不胜感激。

安东

0 投票
5 回答
2931 浏览

opengl - 着色器语言之间是否存在重大差异?

我目前正在学习 GLSL。看起来,一旦您学习了一种着色器语言,学习其他一种语言似乎并不会太难。是否类似于学习 wxWidgets 之类的小部件工具集,然后切换到 Qt?一旦您了解了一个小部件工具集中发生了什么,另一个工具集会做类似的事情,因为它们最终在某个时候做几乎相同的事情?从一种着色器语言转换到另一种着色器语言的经历是什么?

0 投票
1 回答
1760 浏览

c++ - 如何使用 directX 11 计算着色器显示某些内容?

我想从我的 directX 11 计算着色器写入纹理。但是我不知道如何在屏幕上显示它,也不确定我应该使用哪种缓冲区来执行此操作。

0 投票
1 回答
429 浏览

reflection.emit - System.AccessViolationException 使用 reflectio.emit 存储变量

我在业余时间用reflection.emit 构建一个编译器,我遇到了一个我不理解的问题。

一点上下文,我有一个包含几种类型的运行时,其中之一是 Float2,一个更简单的向量结构,具有两个浮点值(X 和 Y)。我已经制作了几个属性,可以让我调整值(a la hlsl)。例如,如果我有一个新的 Float2(1.0f, 2.0f),如果我制作类似 (new Float2(1.0f, 2.0f)).YX 我将得到一个 Float2(2.0f, 1.0f) 我'在我的语言中使用这种类型,目前正在测试这种情况(省略了语言的次要细节):

我正在新调用中转换 float2(1.0, 2.0) 并在 .yx 中访问我的 Float2 类型的属性 YX。

问题是我收到“System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。”。我不明白为什么,因为如果我做这样的事情:

一切顺利。

我正在生成的 IL 代码如下(我认为问题出现在“L_0014:stloc.0”中,但我不知道为什么会发生):

peverify 的结果:

[IL]:错误:[offset 0x0000000F] [found value 'Bifrost.Psl.Compiler.Runtime.Float2'][expected address of value 'Bifrost.Psl.Compiler.Runtime.Float2'] 堆栈上的意外类型。

0 投票
1 回答
2006 浏览

c++ - D3D10 HLSL:如何通过反射将纹理绑定到全局 Texture2D?

好的,假设我在着色器的某处有如下声明(注意我启用了旧版支持以在 DX9 和 DX10 之间共享着色器):

我可以毫无问题地编译着色器,但我对如何将 ShaderResourceView 绑定到“DiffuseMap”有点茫然。当我“反射”着色器时,我宁愿假设它会出现在常量缓冲区的变量中。它没有。事实上,我似乎无法在任何地方识别它。那么我怎么知道我应该绑定 ShaderResourceView 的纹理“阶段”(使用 DX9 术语)呢?

编辑:我发现我可以使用“GetResourceBindingDesc”来识别采样器名称。我不确定这是否对我有帮助:(

Edit2:同样我没有注意到它在 DX9 下也是一样的......即我只能得到采样器。

Edit3:我的 Texture2D 和 Sampler 看起来像这样:

现在在效果框架中,我可以通过语义“DiffuseTexture”获得 Texture2D。然后我可以将 ResourceView(D3D10)/Texture(D3D9) 设置为 Texture2D。唉,似乎没有任何方法可以使用沼泽标准着色器来处理“语义”(很高兴知道 D3D 是如何做到的,但是研究 D3D11 效果框架让我到目前为止一无所获。它似乎正在阅读它从二进制文件中,即编译后的数据中,我自己只能在其中看到“DiffuseSampler”)。

0 投票
1 回答
411 浏览

c# - Silverlight:多边形与像素着色器的结合

我是 Silverlight 的新手,我遇到了与多边形结合的效果的小问题。我想实现着色器的渲染只在边缘内部而不是在边缘之外。如您所见,画笔正在执行此操作,但不是着色器的输出。有人知道解决此问题的解决方案吗?有没有办法获取像素着色器的输出并将其推送到多边形的填充属性中?

结果:http: //img64.imageshack.us/img64/2831/achieve.jpg

这是我的 xaml 代码:

这是我在 HLSL 中的着色器

0 投票
3 回答
4283 浏览

xna - XNA + 像素着色器的困难

我已经编写了一个基本的 2d 像素着色器,但我似乎无法让它工作。如果我在激活效果的情况下进行绘制,那么屏幕上不会出现任何内容。但是如果我禁用它,那么纹理会按预期绘制到屏幕上。

我的目标是能够在屏幕上绘制任意纹理,然后让这个像素着色器“雕刻”出圆形像素块,用于范围等的覆盖系统。

这是我的像素着色器代码:

这是 SolidCircles 技术的 ASM 版本:

这是我的 Game 类中 Draw 函数的相关部分:

最后,这是我构建位置和半径列表的函数:

构成我纹理的线条:

PositionsRadii分别是向量列表和浮点数,大小为 64。 pixTex 是一个 1 像素纯黑色纹理。

为什么着色器不起作用?

0 投票
0 回答
1797 浏览

resources - 对 HLSL 2D 着色器教程的建议?

我正在寻找一些用于编写2D着色器的资源(不是3D,所以请不要引用顶点着色器代码或类似的东西)。我正在使用HLSL,但是很难找到好的教程。

有什么建议么?

0 投票
1 回答
601 浏览

language-agnostic - 不带位运算符的右旋转

如何在不使用任何位运算的情况下对 32 位整数实现右旋转(和左旋转)操作?

我需要这个,因为高级着色器语言 (HLSL) 不允许对数字进行按位操作,并且我需要对我正在尝试实现的特定着色器进行右旋转。