iOS 下编译 OSG 引擎

来源:互联网 发布:七天网络阅卷系统2017 编辑:程序博客网 时间:2024/05/22 00:30

1 准备工具

1、CMake 3.0+
2、Xcode 6.0+
3、下载 OSG 3.2.1 稳定版:
点击打开下载链接

2 设置真机或模拟器:

在iOS下需要选择是使用Simulator还是使用Device,因此在编译之前需要打开CmakeList.txt在源码根目录,找到OSG_BUILD_PLATFORM_IPHONE项会有如下两行:
OPTION(OSG_BUILD_PLATFORM_IPHONE "Enable IPhoneSDK Device support" OFF)OPTION(OSG_BUILD_PLATFORM_IPHONE_SIMULATOR "Enable IPhoneSDK Simulator support" OFF)

选择其中一个,设置为ON,另一个为OFF:
OPTION(OSG_BUILD_PLATFORM_IPHONE "Enable IPhoneSDK Device support" ON)OPTION(OSG_BUILD_PLATFORM_IPHONE_SIMULATOR "Enable IPhoneSDK Simulator support" OFF) 

3 开始 CMake

3.1 修改版本号和架构

1)修改 IPHONE_SDKVER ,根据你的系统实际 SDK 版本修改,我这里修改为 8.1
IPHONE_SDKVER = 8.1

2)修改 IPHONE_VERSION_MIN,我这里修改为 5.1:
IPHONE_VERSION_MIN = 5.1

3)修改 CMAKE_OSX_ARCHITECTURES ,我这里修改为 armv7;armv7s;arm64
CMAKE_OSX_ARCHITECTURES = armv7;armv7s;arm64

4)修改 CMAKE_OSX_SYSROOT 路径:
CMake使用CMAKE_OSX_SYSROOT变量来指向 iOS sdk的位置,设置了 IPHONE_SDKVER 后 OSG会自动检测到该位置:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk

如果位置有误,你也可以手工对其进行修改。

也可以通过指定 -miphoneos-version-min选项(在CMAKE_CXX_FLAGS中)来指定SDK的最小版本号,默认是4.0,如果使用的是CMAKE GUI,打开Advance选项才能看到CMAKE_CXX_FLAGS项。 

3.2 修改静态编译

iOS 要求OSG必须要静态编译,找到如下项:
DYNAMIC_OPENSCENEGRAPH = OFFDYNAMIC_OPENTHREADS = OFF

3.3 GLES1 or GLES2

iOS 同时运动GLES1和GLES2,其中GLES2支持可编程管线,因此建议选择GLES2,下面是不同的选择的设置:

GLES1
OSG_GL1_AVAILABLE = OFFOSG_GL2_AVAILABLE = OFFOSG_GL3_AVAILABLE = OFFOSG_GLES1_AVAILABLE = ONOSG_GLES2_AVAILABLE = OFFOSG_GL_LIBRARY_STATIC = OFF OSG_GL_DISPLAYLISTS_AVAILABLE = OFFOSG_GL_MATRICES_AVAILABLE = ONOSG_GL_VERTEX_FUNCS_AVAILABLE = ONOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE = ONOSG_GL_FIXED_FUNCTION_AVAILABLE  = ON

GLES2
OSG_GL1_AVAILABLE  = OFFOSG_GL2_AVAILABLE = OFFOSG_GL3_AVAILABLE = OFFOSG_GLES1_AVAILABLE = OFFOSG_GLES2_AVAILABLE = ONOSG_GL_LIBRARY_STATIC = OFFOSG_GL_DISPLAYLISTS_AVAILABLE = OFFOSG_GL_MATRICES_AVAILABLE = OFFOSG_GL_VERTEX_FUNCS_AVAILABLE = OFFOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE = OFFOSG_GL_FIXED_FUNCTION_AVAILABLE = OFF

3.4 插件

插件至少需要选择 freetype 插件,用来读取 ttf字体。右侧为FreeType插件地址:https://github.com/stmh/osg/tree/iphone/IPhone_Project/3rdParty

3.5 应用和示例

对Applications和Exameple进行设置 ,applications是诸如osgviewer, osgconv, osgversion等,Examples是例子程序。
BUILD_OSG_APPLICATIONS=OFFBUILD_OSG_EXAMPLES=OFF

如果上述打开,则可能生成错误,到时候自己改吧。对OSG贡献代码的人并不怎么考虑iOS。

3.6 编译

点击 'Generate' 生成工程,然后编译 BUILD_ALL。
0 0
原创粉丝点击