2012年12月25日 星期二

仿Torchlight場景遮擋鏡頭處理流程

看過了許多網站的資料,大份都是以Multi Pass為主來處理,但是如果有物件有許SubEntity互疊,或不同角色之間互疊,仍然會有問題。

目前解決方式是用畫二次的做法,在角色的RenderQueue之前直接使用RenderSystem裡的_render函式來進行繪製(記得要透出來的場景遮擋物件,需要在之前就畫好),比較麻煩的是直接使用_render沒辦法自動更新Shader constant,因此手動做Shader Binding,可以參考相關Ogre討論區的的文章…

至於效能部份,雖說是畫二次,但是第一次Render時有做setDepthWriteEnabled(false),所以在沒有擋住時,是不會通過Depth Check,所以應該還好,而動作、Mesh及矩陣都是共用的,所以應該沒什麼影響。

以下是相關測試影片…




相關網站參考資料:


夢想還在持續中…

沒有留言:

張貼留言