您好,登錄后才能下訂單哦!
最近很多人在問,我該如何學習OpenGL?我學完了OpenGL了,該怎么用?
我想在回答這些類似的問題以前先和大家談談怎么學習API的方法,或許談完了,我就不需要回答了。首先,我認為API是工具,不是本質,OpenGL/Direct3D的本質是圖形學,而不是OpenGL/Direct3D的本身,API的本身只是一些Interface而已.如果你明白圖形學的原理.那么你很容易這些接口的作用,以及為什么要有這些接口的存在.所以,我要說的第一點是:你要學習3D編程,不是學會了OpenGL/Direct3D就可以了。甚至會不會這些API都不是那么的重要(雖然這么說,或許很多人不太贊同).最重要的,最根本的是,你要明白這些API背后的圖形學的原理---因為那才是根本中的根本.
下面我來介紹我對API學習的看法.
我認為API的學習有兩種方法:一是正向學習.二是反向學習.
一:正向學習,所謂的正向學習,就是學習API的本身.我覺得這種方法是一種Brute Force行為.不是很好.我們只要看看API的特性,有那些部分.就可以了。比如學習Direct3D的時候,我們要知道它如何初始化,以及它和操作系統的結合.它在Direct3D8里引入了VS/PS.最后就是創建一個Direct3D應用的步驟和方法.這些就足夠了。要不然.Direct3D那么多的函數,每一個都會要了我的命.
正向學習的第二個作用就是你在熟悉了圖形學和大概了解了API后,有空就來看看API的細節,然后思索一下API里提供的一些特性對你的程序有什么作用.比如Direct3D里的Two Side Stencil.OpenGL里的TextureCombine等。
二:逆向學習.這是根本的方法,到了這一步,你就可以真正的算是圖形學入門了。這要求你要有一定的圖形學基礎.比如,你現在開始做一個demo.你預計你的demo里有一堆眩眩的效果,當然你也要明白你的這些眩眩的效果要怎么實現的.然后你去找API里對應的功能,我想如果你的想法正常,一般的功能在Direct3D/OpenGL里應該都會有的.當然你也會碰到你想要的功能在這些API里沒有,但是這不重要,重要的是你又學到新東西了---這個特性在XX API里不支持^_^.
通常我是采用先正向,再逆向,同時再進行正向學習的方法.希望以上的建議,對各位初學者有一定的幫助.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。