我正在尝试使用this教程制作一个简单的OpenGL应用程序。它说我可以给着色器提供任何我想要的文件扩展。但是,在VS2013中,当我点击“添加新项目”时,转到Visual C++选项卡并添加一个像素着色器或顶点着色器,它不能正确编译,并且出现错误。这是为什么发生?为什么我不能在我的着色器中使用.hlsl文件,而常规的.txt只是编译?。用于OpenGL着色器的.HLSL文件
错误,我得到:
- 错误X3000
- 错误x1504
我正在尝试使用this教程制作一个简单的OpenGL应用程序。它说我可以给着色器提供任何我想要的文件扩展。但是,在VS2013中,当我点击“添加新项目”时,转到Visual C++选项卡并添加一个像素着色器或顶点着色器,它不能正确编译,并且出现错误。这是为什么发生?为什么我不能在我的着色器中使用.hlsl文件,而常规的.txt只是编译?。用于OpenGL着色器的.HLSL文件
错误,我得到:
问题不在于文件扩展名,但与文件有关的编译器选项。在visual studio中创建hlsl
文件之一时,其默认Item Type
(可在属性面板中看到)为HLSL Compiler
。这意味着编译器链试图用hlsl编译器编译这个文件,当文件包含glsl
的代码时它不会运行。
您可以手动将项目类型切换为Text
(或其他没有编译关联的项目),也可以使用其他扩展名。无论如何,我个人绝不会命名glsl shader文件* .hlsl,因为项目中的其他人都会假定它包含hlsl代码。
Hlsl是DirectX着色器的扩展。在Visual中添加hlsl文件时,它会识别它并尝试将其编译为DirectX着色器,这当然与OpenGL着色器不同。我建议使用glsl文件。