这是一个小型的VR库,可以快速帮助你构建VR应用程序。(项目包含ijkplayer framework 和资源,所以项目有点大,请耐心下载!)(项目约150MB,sdk实际大小为9Mb)
This is a small VR library that can quickly help you build VR app.
(As the project contains the ijkplayer framework and resources, so the project a little big, please be patient to download!)(About 150Mb)
不支持模拟器,请在真机下测试。(模拟器下会报错)
not support the simulator,Please run on a real machine. (the simulator will make a mistake.)
SZTLibrary.h
// create sdk based on Controller
self.sztLibrary = [[SZTLibrary alloc] initWithController:self];
or
// create sdk based on view
self.sztLibrary = [[SZTLibrary alloc] initWithView:self.view];
// Render Model
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, // 扇形曲面 - 平滑曲面
};
// Filter Mode
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");
}];
1、粒子系统
2、环形控件
3、九宫格控件,根据头距自动上下滑动
4、耳机线控拾取
5、储物盒控件
6、视频预览控件(基于九宫格)
功能不一一展示在这里了,有需要的加群讨论。
可视化编辑器还在开发中,请先使用json脚本编辑。 |
---|
// create sdk
self.sztLibrary = [[SZTLibrary alloc] initWithController:self];
[self.sztLibrary setFocusPicking:YES]; // 开启热点交互
/*** json 脚本****/
NSString *path = [NSString stringWithFormat:@"%@/%@",SANDBOXPATH, @"supermarket.json"];
script = [[ScriptUI alloc] initWithSandboxPath:path];
[script setVideoPlayer:SZT_IJKPlayer]; // 脚本的播放器使用ijkplayer/avplayer
[self.sztLibrary addSubObject:script];
脚本规范查看:http://www.vrkongfu.com/doc/doc_zh.html
项目测试:把脚本和资源放到app的根目录下
脚本和资源地址:https://pan.baidu.com/s/1skAdqHZ
脚本空模版:
Script specification:http://www.vrkongfu.com/doc/doc_en.html
Project testing: Put scripts and resources in the root directory of app
scripts and resources:https://pan.baidu.com/s/1skAdqHZ
Template:
我们会不定期的更新sdk,加入更多新功能,大家有新的需要或好的想法,欢迎大家加入群一起讨论。
We will update SDK regularly.Welcome to join the group for discussion.
- 邮箱 :sdk@360looker.com
- QQ 群 :174962747
- 公司地址 :http://www.arvrschool.com/