我在HLSL统一中为Shaders编写了代码,我需要一个教程或文档来了解类和类型。微软文档是非常糟糕的信息(我搜索向量,我不知道如何处理它)。我需要一个ide或其他东西来处理autoCompelte语法。
因此,如果有人建议学习HLSL的文档或教程,并知道其中的函数和类以及标准库,以及用于调试和autoCompelte语法的ide。
发布于 2022-07-21 09:27:09
用于的HLSL工具是VS的一个很好的扩展,我也读过一些用于visual代码的好工具,但是我假设您使用的是Visual和。
向量类是UnityEngine的一部分,因此不能从着色器中使用。扩展将非常有帮助,但是为了让您开始,大多数数值变量被打包为向量(数字集合的数字术语),并且可以用作2、3或4个向量的float2、float3或float4 (非常类似于在Vector2、Vector3或Vector4中存储浮点数)。您可以以同样的方式使用矩阵:float3x3、float2x4等。
如果你想取两个向量的交叉积并将结果归一化,
float3 a = float3(1,2,3);
float3 b = float3(5,3,2);
return normalize(cross(a,b));你可以用dot(a,b)取点积,用mul(a,b)做矩阵乘法。
从语法上讲,它非常类似于c++。根据您想要完成的任务,您可以重新创建大多数UnityEngine.Vector类功能(这里有更多的信息)。
调试着色器的最快方法是将一些结果作为测试返回并对其进行评估。如果你正在做任何与图形相关的事情,那就意味着输出一个中间结果。您还可以编写与单线程cpu任务相同的代码,并进行传统的调试。
https://stackoverflow.com/questions/72447506
复制相似问题