全景VR播放器ANTVRSDK- ios 使用详解

3、如何布局空间UI - ANTImageView

2016-10-28  本文已影响35人  ARVRSchool

上篇文章介绍了所有对象的基类ANTBaseObject和ANTRenderObject,在本篇文章中,将开始进行实战操作。

在操作之前还是提一下上篇提到的渲染模型总类,如下:
本章节之介绍其中常用的渲染模型(全景、平面),其余的渲染模型自己看提供的demo使用。

// 渲染模型
typedef NS_ENUM(NSInteger, ANTRenderModel) {
    ANTVR_2D,                                   // 2d
    ANTVR_SPHERE,                               // 全景
    ANTVR_STEREO_SPHERE_LEFT_RIGHT,             // 立体全景 - 左右
    ANTVR_STEREO_SPHERE_UP_DOWN,                // 立体全景 - 上下
    ANTVR_PLANE,                                // 平面
    ANTVR_STEREO_PLANE_LEFT_RIGHT,              // 立体平面 - 上下
    ANTVR_STEREO_PLANE_UP_DOWN,                 // 立体平面 - 左右
    ANTVR_FISHSPHERE_HIGH,                      // 960 * 2560
    ANTVR_FISHSPHERE_RETINA_HIGH,               // 1520 * 2688
    ANTVR_FISHSPHERE_MEDIUM,                    // 960 * 1920
    ANTVR_FISHSPHERE_RETINA_MEDIUM,             // 1080 * 1920
};

首先实例化对象:

// 创建全景360度图片
ANTImageView *object = [[ANTImageView alloc] initWithMode:ANTVR_SPHERE];
[object setupTextureWithImage:[UIImage imageNamed:@"test0.jpg"]];
[self.antLibrary addSubObject:object];

这样就将全景图添加到场景中了。
注:在全景/蚁视模式下,不需要设置对象的position,因为摄像机的位置正好在(0.0,0.0,0.0)的位置。

Paste_Image.png

添加图片的方法多种方式 ,可以根据情况选择:(可以添加网络图片,左右两张图片等等)

/**
 * 设置图片纹理 图片名
 * @param imageName 图片image
 */
- (void)setupTextureWithImage:(UIImage *)imageName;

/**
 * 设置图片纹理 网络下载
 * @param url 网络地址/自动缓存
 */
- (void)setupTextureWithUrl:(NSString *)fileUrl;

/**
 * 设置图片纹理 图片名
 * @param color 根据图片颜色生成纹理
 * @param frameSize 生成图片的尺寸
 */
- (void)setupTextureWithColor:(UIColor *)color Rect:(CGRect)frameSize;

/**
 * 设置左右屏幕图片纹理
 */
- (void)setTextureWithLeftImage:(UIImage *)LeftImage RightImage:(UIImage *)rightImage;

- (void)setTextureWithLeftUrl:(NSString *)leftUrl RightUrl:(NSString *)rightUrl;

如果要对对象设置坐标,或者旋转角度,或缩放系数:

[object setPosition:0.0 Y:0.0 Z:-1.0];
[object setScale:1.0 Y:1.0 Z:1.0];
[object setRotate:-90 X:0.0 Y:1.0 Z:0.0];
// 创建平面图片
ANTImageView *object = [[ANTImageView alloc] initWithMode:ANTVR_PLANE];
[object setupTextureWithImage:[UIImage imageNamed:@"test1.jpg"]];
[object setObjectRect:16.0 Height:9.0]; // 设置图像的宽高比,默认为2.0,2.0
[self.antLibrary addSubObject:object];
[object setPosition:0.0 Y:0.0 Z:-15.0];
Paste_Image.png

这样就简单的实现了加载图到场景中。若要开启焦点拾取对象的功能,则需满足两个条件:
1、[self.antlibrary setFocusPicking:YES];
2、开启对象自身的监听block;

[object willSelectImageViewCallBack:^(ANTImageView *imgv) {
         // 焦点刚拾取到对象边缘    
 }];
    
[object didSelectImageViewCallBack:^(ANTImageView *imgv) {
       // 焦点已经选中对象,进度圈走完
}];
    
[object didLeaveImageViewCallBack:^(ANTImageView *imgv) {
        //  焦点离开对象边缘
}];
Paste_Image.png

关于ANTImageView的基本动画我就不介绍了,使用方法在上一篇章中已经涉及到了。
ANTImageView的最基本的使用大体上就是这些,其他的一些的高级效果,如剪裁、变形、图像的各种滤波效果就不再这一一介绍了,具体使用方法看我提供的demo。

使用ANTImageView这个对象就可以轻松的布局3D空间中的UI了。放上一张之前布局的一张UI空间图:

Paste_Image.png
上一篇 下一篇

猜你喜欢

热点阅读