原创 探索未知種族之osg類生物---呼吸分解之事件循環一

事件循環和更新循環**終於到了我們嘴裏經常唸叨的事件循環、更新循環以及渲染循環了。首先我們來區分一下事件循環和渲染循環,他們兩個首先是兩個不同順序執行的過程,我們有時候會用到任意node的updateCallback函數,這個就是在更新循環

原创 探索未知種族之osg類生物---呼吸分解之事件循環二

VPM矩陣1、V 表示攝像機的觀察矩陣(View Matrix),它的作用是把對象從世界座標系變換到攝像機座標系。因此,對於世界座標系下的座標值 worldCoord(x0, y0, z0),如果希望使用觀察矩陣 VM 將其變換爲攝像機相對

原创 探索未知種族之osg類生物---呼吸分解之advance

回顧我們用了兩節的內容才堪堪講解完ViewerBase::frame()函數中調用的realize()---Viewer:: realize()函數。我們簡單的總結就是Viewer:: realize()主要是使GraphicsContex

原创 探索未知種族之osg類生物---器官初始化四

上一節我們對完成了對osg生物內部非常重要器官graphicsContext的初始化工作。這樣就可保證我們場景中至少有一個graphicContext存在,不至於剛出生就面臨夭折。我們根據上一節中osg代碼的研究也就知道了,在我們正常使用o

原创 探索未知種族之osg類生物---器官初始化二

那我們回到ViewerBase::frame函數中來,繼續看看爲什麼osg生命剛剛出生的時候會大哭,除了初始化了eventQuene和cameraManipulator之外還對那些器官進行了初始化。在這之前我們先介紹一下上一節說到的osg的

原创 探索未知種族之osg類生物---器官初始化三

當判斷到viewer中沒有一個graphicContext可用時,osg就會默認的進行一次對viewer的實現操作,這樣可以保證osg以後可以安心的在屏幕上進行作畫。那我們就來看看這個osgViewer::Viewer::realize()

原创 探索未知種族之osg類生物---器官初始化一

我們把ViewerBase::frame()比作osg這類生物的肺,首先我們先來大概的看一下‘肺’長什麼樣子,有哪幾部分組成。在這之前得對一些固定的零件進行說明,例如_done代表osg的viewer是否被刪除釋放內存;_firstFram

原创 探索未知種族之osg類生物---起源

任何程序都是有生命的,是生命就需要呼吸。例如普通的windows程序,當運行完main()函數後,就需要進入消息循環,來監聽用戶的各種操作,以便做出及時的迴應。這樣的每次循環就像生命的每次呼吸,來維持生命體徵。 osg的程序不僅僅需要消息循

原创 Introduction to3D Game Programming withDirectX翻譯開篇

Direct3D 11簡介 Direct3D 11是一個渲染庫,用於在Windows平臺上使用現代圖形硬件編寫高性能3D圖形應用程序。Direct3D是一個windows底層庫,因爲它的應用程序編程接口(API)可以很好地非常接近於它控制的