2016-03-02 135 views
0

我正在尝试使用this教程制作一个简单的OpenGL应用程序。它说我可以给着色器提供任何我想要的文件扩展。但是,在VS2013中,当我点击“添加新项目”时,转到Visual C++选项卡并添加一个像素着色器或顶点着色器,它不能正确编译,并且出现错误。这是为什么发生?为什么我不能在我的着色器中使用.hlsl文件,而常规的.txt只是编译?。用于OpenGL着色器的.HLSL文件

错误,我得到:

  • 错误X3000
  • 错误x1504

回答

3

问题不在于文件扩展名,但与文件有关的编译器选项。在visual studio中创建hlsl文件之一时,其默认Item Type(可在属性面板中看到)为HLSL Compiler。这意味着编译器链试图用hlsl编译器编译这个文件,当文件包含glsl的代码时它不会运行。

您可以手动将项目类型切换为Text(或其他没有编译关联的项目),也可以使用其他扩展名。无论如何,我个人绝不会命名glsl shader文件* .hlsl,因为项目中的其他人都会假定它包含hlsl代码。

0

Hlsl是DirectX着色器的扩展。在Visual中添加hlsl文件时,它会识别它并尝试将其编译为DirectX着色器,这当然与OpenGL着色器不同。我建议使用glsl文件。