2013-04-12 44 views
0

在試圖獲得OpenGL的要點時,我最終碰到了GLSL。我之前已經使用OpenGL的miminal的事情,比如三角形和顏色(因爲我還沒有了解到很多尚未),但是當我喜歡在glBegin發現了被廢棄的函數glEnd,我必須忘掉的東西我剛學過。爲什麼使用GLSL和OpenGL?

現在,我所遇到的頂點緩衝區頂點緩衝對象頂點和片段着色器 ......有一件事我從未想過了解就是爲什麼要使用GLSL?爲什麼使用GLSL和OpenGL?使用純OpenGL無法做什麼?對我來說,將GLSL着色器集成到程序中增加了複雜性,因爲您已經處理了外部文件,或者必須將着色器嵌入到程序中,這會導致更多的工作。

我的經驗很少。我想更多地瞭解這個主題,但由於這個難以理解的矛盾,我無法取得進展。

那麼,爲什麼使用GLSL以及OpenGL

+0

那麼,OpenGL不會告訴你的圖形硬件*如何繪製一些東西,只是*繪製什麼*已過時的函數用於爲你預先打包」如何「,現在你需要自己做我對OpenGL/GLSL的理解並不完全一流,我也沒有一個完整的答案,所以這個評論。 – Hydronium

+0

@Hydronium:好的,這有一點幫助,但是,謝謝,我欣賞這個姿勢 – Helixirr

回答

3

你的問題不是關於GLSL;它一般是關於着色器。 GLSL只是在OpenGL中提供着色器的認可方式。你的問題真的是「爲什麼在OpenGL中使用着色器?」

我不打算詳細說明着色器可以做什麼,固定功能不能。但是,這裏只列舉了一些固定功能的OpenGL無法做到的事情:

我可以繼續下去(對於時間),但我想你明白了吧。如果你真的關心關心關於「視覺保真度」的小東西,你應該使用着色器。

問題不是「爲什麼使用着色器;」這是「爲什麼不是使用着色器?「

+0

I認爲他不明白OpenGL(API)和着色器之間的區別是什麼,而不是着色器和固定函數之間的區別,除非這個答案涵蓋了相同的理由。 – Hydronium