原创 現代OpenGL+Qt學習筆記之十一:使用halfway向量提高光照計算效率

現代OpenGL+Qt學習筆記之十一:使用halfway向量提高光照計算效率 主要內容   本文介紹另一種光照計算的方法,可以減少光照計算的效率,當需要計算光照的的頂點/片元的較多時,使用該方法可以提高着色器的運行效率,從而提高渲染效率。

原创 OpenMesh的進階用法

OpenMesh的進階用法   OpenMesh的中文教程已經發布很久, OpenMesh作爲半邊數據結構的封裝庫, 在CG編程中還是比較好用的, 但是實際上只用入門教程中的那種使用方法/流程, 感覺還是比較繁瑣, 尤其是對於稍微大一點的

原创 現代OpenGL+Qt學習筆記之二:程序框架

現代OpenGL+Qt學習筆記之二:程序框架 主要內容   本文的主要內容是新建一個qt工程,用於現代OpenGL內容的學習。主要演示一下怎樣在qt框架下實現一個繼承自QOpenGLFunctions和QOpenGLWidget類的自定部

原创 現代OpenGL+Qt學習筆記之三:顯示一個彩色三角形

現代OpenGL+Qt學習筆記之三:顯示一個彩色三角形 主要內容   本文的主要內容是在現代OpenGL+Qt學習筆記之二程序框架的基礎上,在OpenGL部件中繪製一個彩色三角形。涉及內容有頂點着色器、片元着色器、着色程序和OpenGL緩

原创 現代OpenGL+Qt學習筆記之十二:模擬聚光燈

現代OpenGL+Qt學習筆記之十二:模擬聚光燈 主要內容   本文將實現一種特殊的光源,該光源的位置定義在一個圓錐的頂點上,光的照射範圍僅在圓錐範圍內,且光強在該圓錐的中心軸上時最強的,而隨着空間點到該中心軸的距離的增加,光強也隨之減少

原创 現代OpenGL+Qt學習筆記之八:GLSL雙面渲染

現代OpenGL+Qt學習筆記之八:GLSL雙面渲染 主要內容   本文主要介紹OpenGL中的雙面渲染,在一般情況下,如果要繪製的曲面是封閉的,如前面涉及過的圓環體,其內部是隱藏的,但是當一些模型有洞時,其內部可見。但在默認情況下,由於

原创 現代OpenGL+Qt學習筆記之五:OpenGL矩陣變換

現代OpenGL+Qt學習筆記之五:OpenGL矩陣變換 主要內容    主要是關於OpenGL中的矩陣變換,通過介紹一個點的變換過程,也可以幫助理解OpenGL的管線的執行過程。沒有非常詳細的數學和幾何變換內容的介紹,好在QMatrix

原创 現代OpenGL+Qt學習筆記之七:Phong光照及在GLSL中使用函數

現代OpenGL+Qt學習筆記之七:Phong光照及在GLSL中使用函數 主要內容   在現代OpenGL+Qt學習筆記之六:繪製可旋轉、帶光照效果的三維物體中介紹了一個最簡單的漫射光的原理及在OpenGL中的實現。本文將重點介紹一個更加

原创 OpenMesh學習筆記6 怎樣遍歷網格

怎樣遍歷網格 介紹   遍歷大家都清楚的吧,學習數據結構的時候就經常講到遍歷,比如八叉樹中,要遍歷每一個節點,有各種遍歷方法,什麼深度優先遍歷,廣度優先遍歷神馬的。在一個網格中,有時候我們也要遍歷網格中的每一個點、面、邊等基本元,這就

原创 OpenMesh學習筆記5 OpenMesh+OpenGL的一個例子

OpenMesh+OpenGL的一個例子     這篇文章主要給一個OpenMesh的例子,其中Mesh數據是從文件中讀取的,關於OpenMesh中的Mesh IO,會在後面的博文中給出,這部分代碼可以忽略,反正需要知道的就是,經過IO之

原创 Callback functions in GLFW

Callback functions in GLFW These are almost all the callback functions I read in the documentation of GLFW 3.2, exc

原创 GLFW理解之Video mode

GLEW理解之Video mode   學習一門新的語言或者庫的時候,總會出現難以理解的語言或者庫的設計機制和概念。針對GLFW庫,第一個讓我頭疼的概念就是這個Video mode,終於在看了幾遍文檔,加上例子程序,終於是對這個概念有

原创 現代OpenGL+Qt學習筆記之六:繪製可旋轉、帶光照效果的三維物體

現代OpenGL+Qt學習筆記之六:繪製帶光照效果的三維物體 主要內容   本文僅考慮最簡單的光照,即漫射光,同時在前面程序的基礎上加入多模型的鼠標控制功能。此外,爲了現實真正的三維渲染效果,本文將繪製的物體是一個如圖所示的三維的圓環體。

原创 現代OpenGL+Qt學習筆記之一:概述

現代OpenGL+Qt學習筆記之一:概述   學習了一點Qt,現在寫程序都想用Qt了,GUI程序容易開發而且美觀,又因爲經常要用到OpenGL,所以就想學習一下在Qt中如何使用OpenGL了。傳統的固定管線,之前一直在VS中寫代碼的時候用

原创 現代OpenGL+Qt學習筆記之十:使用逐片元渲染提升真實感

現代OpenGL+Qt學習筆記之十:使用逐片元渲染提升真實感 主要內容   到目前爲止,關於法向、光照(顏色)的計算都是在頂點上進行的,在片元着色器運行之前,OpenGL會對這些頂點的數據(包括法向、顏色、紋理等)進行線性插值,從而得到每