在利用opengl匯入obj模型後,發現模型是透明的,在旋轉過程中特別難看,於是需要設定成非透明的實體模型。下面的圖是模型為透明的時候,看起來就讓人感覺很亂:
由於一開始我們利用 glclear(gl_color_buffer_bit | gl_depth_buffer_bit) 清除了緩衝區,所以只要設定開啟深度緩衝區即可,即 glenable(gl_depth_test).
最後的非透明效果如下所示:
原理:啟用了深度緩衝區時,opengl在繪製每個畫素之前,會把它的深度值和已經儲存在這個畫素的深度值進行比較。新畫素深度值小於原先畫素深度值的話,那麼新畫素的值便會取代原先的,從而實現了遮擋的效果。
OpenGL讀取Obj模型檔案
想要順利讀取obj模型檔案,先要了解這種檔案的格式,obj檔案格式是非常簡單的。這種檔案以純文字的形式儲存了模型的頂點 法線和紋理座標和材質使用資訊。obj檔案的每一行,都有極其相似的格式。在obj檔案中,每行的格式如下 字首 引數1 引數2 引數3 其中,字首標識了這一行所儲存的資訊型別。引數則是...
opengl讀取OBJ模型檔案
要順利讀取 obj模型檔案,先要了解obj檔案的格式。obj檔案格式是非常簡單的,它以純文字的形式儲存了模型的頂點 法線和紋理座標和材質使用資訊。obj檔案的每行的格式如下 字首引數1引數 2引數3 其中,字首標識了這一行所儲存的資訊型別。引數則是具體的資料。obj檔案常見的的字首有 v表示本行指定...
opengl讀取obj模型3
第三版本相較於前兩個版本,新增了對 f 1 1 型別的支援 面 由點座標和法向量組成 以及對mtl檔案的讀取。準備工作,準備乙個結構體來儲存材質資訊,然後由vector儲存即可 struct mmaterial ka,kd,ks即相應的環境光,漫反射及鏡面反射的引數,mtexturename儲存著該...