原创 OSG 高效渲染 之 多線程模型與渲染

這裏以OSG多線程渲染爲例,談談OSG渲染引擎多線程渲染模式,再說說哪裏有點“過時”了需要改進。 先談點題外話,曾經看到知乎上一篇關於遊戲引擎的設計討論的文章,有位“大大”提出遊戲引擎的設計關鍵在於架構設計,這是靈魂,一味強調畫質如何,s

原创 OpenGL 編程指南中 關於 uniform block 綁定錯誤解釋

1. uniform 塊綁定部分介紹有歧義的地方 OpenGL 編程指南在講到數據塊接口的章節時,有一些令人費解的地方,比如 調整uniform 塊索引(紅框文字部分): 如果不深究的話,很可能把這個函數的用途理解成重新設置 u

原创 History of hardware tessellation

  History of hardware tessellation Posted on 2010-09-29 by Daniel Rákos DISCLAIMER: This article was migrated from th

原创 Filament 渲染引擎剖析 之 FrameGraph 1 虛擬資源的定義與創建

Filament 使用了可擴展渲染管線(FrameGraph)來組織渲染通道和管理渲染資源,網上也搜了下可擴展渲染管線的相關的文章,一般認爲可擴展渲染管線是次時代渲染引擎應該具備的比較先進的管線組織架構方式。所以就硬着頭皮讀了讀 Fros

原创 Computing Alpha Mipmaps

這篇文章主要是解決使用帶alpha 通道的貼圖渲染草、樹這類對象時,由於mipmap 的原因,更高一級的mipmap 貼圖變得透明會導致當對象縮小時,會出現渲染對象變得光禿了或不可見了。。。 Computing Alpha Mipmaps

原创 Filament 渲染引擎剖析 之 創建渲染對象 1

Filament 渲染對象的創建 Filament 將實體(Entity)屬性看成組件(component)的形式,實體可以是相機,光源,可繪製實體, 全局光照(IBL)實體等類型。一個場景包含最多、最主要的是可繪製實體對象。可繪製實體主

原创 OSG OIT 順序無關透明繪製(PPLL_OIT, WB_OIT) 實現及注意事項

  這段時間研究了一下順序無關的半透明實體繪製實現方法,順便完善了OSG顯示引擎半透明實體繪製部分,看了看相關資料,正確性、效率最好的是基於權重函數的混合算法和GPU端鏈表法,還有個基於矩的數學方法,繪製的效果比基於權重函數的混合算法效果

原创 OpenGL 片元着色及輸出

片元着色器處理光柵化後的產生片元並輸出一系列的顏色和一個深度值。片元着色器是圖元光柵化後,OpenGL顯示管線的下一階段,被圖元覆蓋的像素將產生輸出。每一個片元着色器都具有窗口空間的位置和一系列在前一階段頂點着色器輸出的逐頂點插值。 片元

原创 OSG 渲染剖析 之 Geometry中使用VBO、VAO

在OSG 渲染剖析 之 Geometry VBO 生成中,我們分析了OSG 的幾何數據如何轉換成OpenGL 對應的相數據, 及相關實現類,這一節我們看看,Geometry中的幾何數據是怎樣被渲染出來的 。 我們先認識一下VBO,VAO的

原创 OSG 渲染引擎特性與架構

OSG 作爲老牌的開源渲染引擎之一,有一定的用戶羣體,不少個人、企業、科研機構都在使用OSG進行開發。隨着不少商業渲染引擎的開源與準門檻的降低(比如Unity3D 授權費用比較低,中小企業甚至個人都能負擔的起授權費用,UE開源且準門檻也比

原创 加載OpenGL函數

加載OpenGL函數是創建OpenGL上下文後的一項重要的初始化工作,需要使用平臺特定的函數查詢函數指針,且不同的版本有不同的語義。 獲取平臺特定的OpenGL函數 1.Window 我們使用 wglGetProcAddress

原创 Filament 渲染引擎剖析 之 FrameGraph 2 動態構建渲染管線

一、渲染通道的設計與實現 1 Frostbite 構建FrameGraph的準則 我們先看下Frostbite 構建FrameGraph原則,包括三個階段: 設置階段 setup、編譯階段compile、執行階段execute。

原创 Filament 渲染引擎剖析 之 FrameGraph 第一節 虛擬資源的定義與創建

  Filament 使用了可擴展渲染管線(FrameGraph)來組織渲染通道和管理渲染資源,網上也搜了下可擴展渲染管線的相關的文章,一般認爲可擴展渲染管線是次時代渲染引擎應該具備的比較先進的管線組織架構方式。所以就硬着頭皮讀了讀 Fr

原创 FMViewer三維模型瀏覽器

FMViewer 能夠瀏覽FBX, OBJ, DAE 三維格式的文件和JPG,PNG,DDS 等圖片文件,目前功能還不太完善,作爲一款簡單的模型瀏覽器還是能用起來的。   下載地址: 鏈接:https://pan.baidu.com/s

原创 gl_FragCoord 的含義

gl_FragCoord 表示當前片元着色器處理的候選片元窗口相對座標信息,是一個 vec4 類型的變量 (x, y, z, 1/w), 其中 x, y 是當前片元的窗口座標,OpenGL 默認以窗口左下角爲原點, 在 着色器中通過佈局限