2016-03-02 182 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文件。