在比較了多種多線程引擎框架后,我最終的設計類似double-buffer方案,把引擎模塊劃分為3個線程:Io線程,邏輯線程,渲染線程,對于我的引擎的目標平臺來說,已經足夠,實際上,我針對的是2-3核的CPU,再多的線程一方面會使得處理邏輯更加復雜,另一方面也不會帶來效率的提升(甚至會降低),anyway,我已經這么做了,把渲染單獨做為一個線程,邏輯線程每幀向渲染線程提交渲染數據上下文,在幀開始前進行一次同步(等待渲染線程完成上一幀的渲染),原理很簡單,但真正做起來還是有不少細節需要仔細考慮的。。總的來說還是比較順利,這要歸功于寫代碼前做了足夠多的設計工作,我甚至為此通讀了Nebula3引擎的代碼,整理了一份PPT并在公司內部講解過。
下一步工作該是把整個Graphics的高層框架搭好了
posted @
2010-06-22 20:36 清風 閱讀(628) |
評論 (2) |
編輯 收藏
摘要: 忽然發現好像滿世界的人都在自己寫3D Engine,搞得我都不好意思說我也在寫Engine了- -#。。。這會是個龐大和艱巨的任務,因為我對它的定位是游戲引擎而不是單純的圖形引擎,算下從我剛開始工作到現在的時間也不短了,一直在跟引擎打交道,既參與過自主引擎的開發也用過商業引擎...
閱讀全文
posted @
2010-05-03 17:59 清風 閱讀(658) |
評論 (5) |
編輯 收藏
摘要: 最近想研究下GPU對地形渲染的性能優化,google到了Gpu gems2的一篇文章:
,鏈接:http://research.microsoft.com/en-us/um/people/hoppe/gpugcm.pdf,掃了一遍,看懂了大概,把要點記于此:
閱讀全文
posted @
2010-03-19 14:33 清風 閱讀(2095) |
評論 (0) |
編輯 收藏
摘要: 翻譯只求意思準確,省略了一些不太相關的內容,如有錯誤煩請指正,原文:http://developer.download.nvidia.com/whitepapers/2007/SDK10/VarianceShadowMapping.pdf
閱讀全文
posted @
2009-10-20 22:52 清風 閱讀(4909) |
評論 (8) |
編輯 收藏
摘要: 雖然還有不少問題,但已經不想再寫下去了,這兩天晚上寫了幾個簡單的demo作為sample,一起發。
代碼在vs2005下編譯通過,所有代碼僅做學習交流之用,請勿用于其他用途,謝謝!
閱讀全文
posted @
2009-09-30 01:32 清風 閱讀(3620) |
評論 (14) |
編輯 收藏
摘要: 光照:
再次修改了公式,把鏡面反射的點積值也映射到了0~1的范圍內,這樣就不會再出現有一團黑的情況了:I = Ia * Ka + Id * Kd * (L dot N + 1.0) * 0.5 + Is * Ks * pow((R dot V + 1.0) * 0.5,n)...
閱讀全文
posted @
2009-09-26 20:23 清風 閱讀(2031) |
評論 (0) |
編輯 收藏
摘要: 采用了最簡單的局部光照模型,用opengl的光照方程:I = Ia * Ka + Id * Kd * (L dot N) + Is * Ks * pow((R dot V),n)
閱讀全文
posted @
2009-09-06 00:23 清風 閱讀(2313) |
評論 (2) |
編輯 收藏
摘要: 大約在一個多星期前開始寫一個軟渲染引擎,類似D3D的一個東西,只不過硬件處理的部分全部換成軟件處理,對圖形學有點了解的人應該都知道是個什么玩意。同樣,這是個業余時間進行的項目,目的是為了總結一些以前學過的很基礎的知識。我并沒有打算給自己定一個很詳細的計劃去完成它,主要是不想把它變成一種任務,那樣會很累(你有壓力,我有壓力,沒事還是別再給自己增加什么負擔了- -)
閱讀全文
posted @
2009-08-23 12:31 清風 閱讀(3053) |
評論 (10) |
編輯 收藏