【发布时间】:2021-12-25 03:47:23
【问题描述】:
我正在关注 Rastertek 教程,http://www.rastertek.com/dx11s2tut04.html
在此代码中,着色器是从 *.vs 和 *.ps 文件编译的
result = D3DCompileFromFile("light.vs", NULL, NULL, "LightVertexShader", "vs_5_0", D3D10_SHADER_ENABLE_STRICTNESS, NULL, &vertexShaderBuffer, &errorMessage);
result = D3DCompileFromFile("light.ps", NULL, NULL, "LightPixelShader", "ps_5_0", D3D10_SHADER_ENABLE_STRICTNESS, NULL, &pixelShaderBuffer, &errorMessage);
教程提到了使用 HLSL,大多数在线教程也使用它,但是 HLSL 看起来不像 *.vs 和 *.ps 文件,HLSL 看起来更像 C++ 代码并且有一个 Main( ) 函数。
这些本质上是使用不同语言的相同着色器吗? 哪个更新更好用?
谢谢,
【问题讨论】:
-
HLSL 是一种语言,文件可以按照你想要的方式命名。这里的两个文件都包含 HLSL 代码,但作者为像素着色器 (ps) 创建了一个单独的文件,为顶点着色器 (vs) 创建了另一个文件。没有什么“更新更好”。
标签: c++ visual-studio directx directx-11