[問題] openGL的shader compile問題

作者: goldflower (金色小黃花)   2016-12-09 13:38:16
開發平台(Platform): (Ex: Win10, Linux, ...)
win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
glew, glut
問題(Question):
我是c++兼opengl noob, 可能是很蠢的問題
我照這個網址的練習來做
http://blog.csdn.net/cordova/article/details/52495077
這個是以下網址的中文翻譯版, code也在其中
http://ogldev.atspace.co.uk/www/tutorial04/tutorial04.html
但是在編譯時會出現
fatal error C1021: invalid preprocessor command 'version'
中文為無效的前置處理器命令
完全看不懂... 照理說我應該已經指定用opengl去編譯了才對
我在網路上opengl論壇有看到有人有類似的問題(ptt不給縮網址 囧)
https://www.opengl.org/discussion_boards/showthread.php/
181901-version-syntax-will-not-work-on-Visual-Studio-C
但是還是不知道怎麼解...
餵入的資料(Input):
預期的正確結果(Expected Output):
可以編譯過就好QQ
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
如網址
需要額外include的檔案在
https://github.com/triplepointfive/ogldev/tree/master/Include
其中的ogldev_math_3d.h
如果還有需要include的會在
https://github.com/assimp/assimp/tree/master/include/assimp
這邊的檔案中
補充說明(Supplement):
作者: paintlife08   2016-12-09 17:31:00
呃,你可能不小心把shader.vs或shader.fs拿來compile了,因為.vs、.fs檔裡面的第一行是#version 330
作者: goldflower (金色小黃花)   2016-12-09 17:50:00
這好像就是這個錯誤所代表的意思 請問具體上要怎麼解決呢?
作者: paintlife08   2016-12-09 17:54:00
這2個檔案長得很像C語言,但是其實是GLSL想辨法讓Visual Studio把main.cpp當成主程式,也許是
作者: goldflower (金色小黃花)   2016-12-09 18:01:00
我其實有把shader object丟到glCompileShader
作者: paintlife08   2016-12-09 18:02:00
因為.vs,.fs裡面也有main()
作者: Bencrie   2016-12-09 18:04:00
先確認一下你 OpenGL render context 是不是拿對版本
作者: paintlife08   2016-12-09 18:24:00
試試把.vs,.fs從solution explorer移除(但不刪除)
作者: Ommm5566 (56天團)   2016-12-09 20:34:00
https://learnopengl.com/https://learnopengl-cn.readthedocs.io/zh/latest/draw triangle就開始談shader了Hello Triangle樓主那個網頁太精簡 不好學learnopengl.com有完整的code 基本上裡面的內容算是談到進階甚至接近專業glut也是比較舊的 新的glfw比較現代最重要的事 你程式碼沒貼上來當大家有水晶球
作者: goldflower (金色小黃花)   2016-12-10 00:39:00
好的我試試看@@ 感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com