2012年6月30日 星期六

Ogre3D1.8整合心得報告

1.8與1.7最大的不同,如下:
  1. 支援OpenGL ES 2.0(這個版本後,才有對Shader的支援)
  2. 就是不再支援orientation mode(底層會自行建立好View Controler)
  3. 與Run Time Sahder Lib的整合(因為OpenGL ES 2.0不支援Fix Function Pipeline,所以利用Run Time Shader Lib來進行動態建立Default Shader的相關處理)
Build Ogre的心得:
  1. 切記儘量讓CMake所有相關的Dependency皆能找到,不要出現紅色的訊息。
  2. 關於FreeType的部份,用Ogre Dependency裡面的,不要用系統內建,之前在整合1.7時,被這個問題卡很久。
Run Time Shader Lib的整合:
基本上參考SimpleBrowser的Source Code,即可輕易整合,要注意的是在Ogre::RTShader::ShaderGenerator::initialize()時,要先把System Manager準備好,因為建立ShaderGenerator時需要用到。

PageGoemetry整合:
這是最麻煩的部份,因為原Lib並沒有處理GLSL ES Shader的部份,而且他的Shader Source Code是寫死在程式裡面,新的Ogre Materil Script架構,允許指定對應到不同的Shader檔,所以關於跨平台的部份,可以在Script裡面做,於是筆者就自行修改了這部份的source code,並做好對應的相關Shader code。

相關Demo影片:



夢想還在持續中…

沒有留言:

張貼留言