This is a small VR library that can quickly help you build VR app. (As the project contains the ijkplayer, so the project a little big, please be patient to download!)(About 150Mb)
不支持模拟器,请在真机下测试。(模拟器下会报错)
SZTLibrary.h 类
// create sdk 两种实例方法都可以
self.sztLibrary = [[SZTLibrary alloc] initWithController:self];
or
self.sztLibrary = [[SZTLibrary alloc] initWithView:self.view];
// 渲染模型
typedef NS_ENUM(NSInteger, SZTRenderModel) {
SZTVR_2D, // 2d
SZTVR_SPHERE, // 全景
SZTVR_STEREO_HEMISPHERE, // 3D180(左右格式)
SZTVR_STEREO_SPHERE, // 立体全景(上下格式)
SZTVR_PLANE, // 平面
SZTVR_DOME180, // 圆顶180
SZTVR_STEREO_PLANE_LEFT_RIGHT, // 立体平面 - 上下
SZTVR_STEREO_PLANE_UP_DOWN, // 立体平面 - 左右
SZTVR_FISHSPHERE_HIGH, // 960 * 2560
SZTVR_FISHSPHERE_RETINA_HIGH, // 1520 * 2688
SZTVR_FISHSPHERE_MEDIUM, // 960 * 1920
SZTVR_FISHSPHERE_RETINA_MEDIUM, // 1080 * 1920
SZTVR_3D_MODEL, // 3D模型
SZTVR_CURVEDSURFACE, // 曲面屏幕 - 不规则曲面(5面)
SZTVR_SECTOR, // 扇形曲面 - 平滑曲面
};
typedef NS_ENUM(NSInteger, SZTFilterMode) {
SZTVR_NORMAL, // 普通
SZTVR_LUMINANCE, // 像素色值亮度平均,图像黑白 (黑白效果)
SZTVR_PIXELATE, // 马赛克
SZTVR_EXPOSURE, // 曝光 (美白)
SZTVR_DISCRETIZE, // 离散
SZTVR_BLUR, // 模糊
SZTVR_BILATERAL, // 双边模糊
SZTVR_HUE, // 饱和度
SZTVR_POLKADOT, // 像素圆点花样
SZTVR_GAMMA, // 伽马线
SZTVR_GLASSSPHERE, // 水晶球效果
SZTVR_CROSSHATCH, // 法线交叉线
};
typedef NS_ENUM(NSInteger, SZTModeDisplay) {
SZTModeDisplayNormal, // 普通模式
SZTModeDisplayGlass, // 分屏模式
};
/**
* 设置单双屏幕模式 - 默认分屏
*/
- (void)dispalyMode:(SZTModeDisplay)mode;
// 使用方法
[self.SZTLibrary dispalyMode:SZTModeDisplayNormal];
sdk集成了gvr处理陀螺仪数据的方法,效果更好。
typedef NS_ENUM(NSInteger, SZTSensorMode) {
SZTSensorNormal, // 系统默认处理
SZTSensorGvr, // gvr陀螺仪处理(有跟随效果)
};
typedef NS_ENUM(NSInteger, SZTModeInteractive) {
SZTModeInteractiveTouch, // 触摸
SZTModeInteractiveMotion, // 陀螺仪
SZTModeInteractiveMotionWithTouch, // 陀螺仪和触摸
};
/**
* 设置交互模式 - 默认陀螺仪
*/
- (void)interactiveMode:(SZTModeInteractive)mode;
// 使用方法
[self.SZTLibrary interactiveMode:SZTModeInteractiveMotion];
SZTAudio * audio = [[SZTAudio alloc] init];
NSString* path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];
Sound *sounds = [[Sound alloc] initWithFilePath:path];
[audio addSubAudio:sounds];
[sounds setPosition:0.0 Y:0.0 Z:-50.0];
typedef NS_ENUM(NSInteger, SZTDistortion) {
SZTDistortionNormal, // 无畸变
SZTBarrelDistortion, // 桶形畸变模式
};
/**
* 畸变模式 - 默认无畸变
*/
- (void)distortionMode:(SZTDistortion)mode;
// 使用方法
[self.SZTLibrary distortionMode:SZTDistortionNormal];
// 要使用热点拾取功能,一定需要设置该接口
[self.sztLibrary setFocusPicking:YES];
// 热点拾取方法 object为要被拾取的对象
SZTTouch *touch = [[SZTTouch alloc] initWithTouchObject:object];
// 拾取的三个状态
[touch willTouchCallBack:^(GLKVector3 vec) {
NSLog(@"will select");
}];
[touch didTouchCallback:^(GLKVector3 vec) {
NSLog(@"select");
}];
[touch endTouchCallback:^(GLKVector3 vec) {
NSLog(@"will leave");
}];
我们会不定期的更新sdk,加入更多新功能,大家有新的需要或好的想法,欢迎大家加入群一起讨论。
- 邮箱 :[email protected]
- QQ 群 :174962747