2011年8月18日 星期四

Ogre3D v1.7 與 OpenGL ES 1.1 (2)

最近因為升級了其它的 ThirdParty 套件的版本所以 Ogre 也必須要 Rebuild, 只是 OpenGL ES 忘了當初怎麼 Build 因此又花了一些時間研究, 順便做一下筆記, 免得下次要 Rebuild Ogre 時又忘了.

Ogre 1.7.x 只支援 OpenGL ES 1.1, 所以想使用 OpenGL ES 2.0 的話則必須使用 Ogre 1.8, Ogre 1.8 官方目前還在 Debug 中, 所以只好先使用 Ogre 1.7.x + OpenGL ES 1.1 的組合, 以下將說明方法.

1. 至 PowerVR 的網站下載 OpenGL ES SDK, 要先加入會員.

2. 在 Khronos OpenGL ES 1.1 SDKs 中選擇 PC Emulation Windows 7/Vista/XP - OpenGL ES 1.1, 如果方便的話, 也可以將其它平台及版本的套件全部下載, 還有工具及說明文件也一併下載.

3. 安裝 OpenGL ES SDK, 等待安裝完成後就可以進行下一步.

4. 在其它地方中先建立一個 Dependencies 目錄, 並在此目錄下建立三個子目錄

Dependencies\Bin
Dependencies\include
Dependencies\lib

5. 打開 SDK 安裝目錄, 然後切換目錄至 Imagination Technologies\POWERVR SDK\OGLES_WINDOWS_X86EMULATION_2.08.28.0634\Builds\OGLES

將 Include 目錄下所有的檔案複製到 Dependencies\include
將 WindowsX86\Lib 目錄下所有的 .lib 檔複製到 Dependencies\lib
將 WindowsX86\Lib 目錄下所有的 .dll 檔複製到 Dependencies\bin

複製完後應該會有如下列的檔案

Dependencies\Bin
Dependencies\Bin\Debug
Dependencies\Bin\Debug\libEGL.dll
Dependencies\Bin\Debug\libgles_cm.dll
Dependencies\Bin\Release
Dependencies\Bin\Release\libEGL.dll
Dependencies\Bin\Release\libgles_cm.dll

Dependencies\include
Dependencies\include\EGL
Dependencies\include\EGL\egl.h
Dependencies\include\EGL\eglext.h
Dependencies\include\EGL\eglplatform.h
Dependencies\include\GLES
Dependencies\include\GLES\egl.h
Dependencies\include\GLES\gl.h
Dependencies\include\GLES\glext.h
Dependencies\include\GLES\glplatform.h
Dependencies\include\KHR
Dependencies\include\KHR\khrplatform.h

Dependencies\lib
Dependencies\lib\Debug
Dependencies\lib\Debug\libEGL.lib
Dependencies\lib\Debug\libgles_cm.lib
Dependencies\lib\Release
Dependencies\lib\Release\libEGL.lib
Dependencies\lib\Release\libgles_cm.lib

6. 將 Dependencies 複蓋到 Ogre 的 Dependencies 目錄

7. 編譯的時候會有 Error, 修改 Code 方法如下,
在 GLESTextureBuffer::GLESTextureBuffer 中, 將 pow(2, level) 改成 (int)pow(2.0f, level)