OSG库准备
版本3.4.0,git上clone,自行编译,具体编译过程有空再写。
编译osg的cmake命令:
cmake ./ -G Xcode -DOSG_BUILD_PLATFORM_IPHONE:BOOL=ON
-DIPHONE_SDKVER=“10.0”
-DIPHONE_VERSION_MIN=“8.0”
-DOPENGL_PROFILE:STRING=GLES2
-DBUILD_OSG_APPLICATIONS:BOOL=OFF
-DBUILD_OSG_EXAMPLES:BOOL=ON
-DOSG_WINDOWING_SYSTEM:STRING=IOS
-DOSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX=“imageio”
-DDYNAMIC_OPENSCENEGRAPH:BOOL=OFF
-DDYNAMIC_OPENTHREADS:BOOL=OFF
-DCURL_INCLUDE_DIR:PATH=“KaTeX parse error: Undefined control sequence: \ at position 42: …evice/include" \̲ ̲ -DCURL_LIBRARY…THIRDPARTY_PATH/curl-ios-device/lib/libcurl.a”
-DFREETYPE_INCLUDE_DIR_freetype2:PATH=“KaTeX parse error: Undefined control sequence: \ at position 58: …lude/freetype" \̲ ̲ -DFREETYPE_INC…THIRDPARTY_PATH/freetype-ios-universal/include”
-DFREETYPE_LIBRARY:PATH=“KaTeX parse error: Undefined control sequence: \ at position 76: …e_universal.a" \̲ ̲ -DTIFF_INCLUDE…THIRDPARTY_PATH/tiff-ios-device/include”
-DTIFF_LIBRARY:PATH=“KaTeX parse error: Undefined control sequence: \ at position 48: …lib/libtiff.a" \̲ ̲ -DGDAL_INCLUDE…THIRDPARTY_PATH/gdal-ios-device/include”
-DGDAL_LIBRARY:PATH=”$THIRDPARTY_PATH/gdal-ios-device/lib/libgdal.a"
在xcode8.0编译的,更高的编不过
创建项目并配置
-
创建项目
xcode创建iosapp项目,高于8.0的也可以 -
配置c++查找路径
target配置里,Build Settings ==> Search Paths,把osg的include路径添加到头文件查找路径
同样把osg的lib文件夹添加到库查找路径 -
配置链接库
Build Phases ==> Link Binary With Libraries, 把需要用到的osg库拖到链接库里还要加上c++标准库,不然一大堆std的链接失败。点加号,弹出的框里搜索libc++.tbd加上就行
-
其它c++编译选项配置
c++ Language Dialect至少得是c++11
Other C++ Flags添加自定义宏,待确认需要些什么。
项目配置好了,下面可以使用osg写渲染程序了
创建c++渲染窗口
osg对ios端的渲染窗口封装得很好了,不像安卓端那样麻烦。更方便的是,触屏事件都完全封装好了。
代码如下:
- (void)createViewer:(UIView