温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

NVisionXR_iOS教程五 —— 添加灯光渲染

发布时间:2020-07-23 17:53:11 阅读:610 作者:NVisionXR 栏目:移动开发
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

接着上一章的例子,这章节来介绍一下三种灯光(平行光、点光源、聚光灯)的使用。 
引入头文件#import ''NVWorldLight.h'' 
1、创建平行光 
onCreate里面实例话灯光对象,代码如下图 
NVisionXR_iOS教程五 —— 添加灯光渲染 
代码: 

    // 灯光、地面、粒子都属于世界对象,所以需要从NVWorld中创建 
    // 先确认场景中是否添加过了相同名字的灯光,因为要确保对象创建的唯一性 
    NVWorldLight *light = (NVWorldLight *)[[self getWorld] getObjectByName:@"dir_light"]; 
    if (!light) { 
        light = (NVWorldLight *)[[self getWorld] createObject:LIGHT objectName:@"dir_light"]; 
        // 设置灯光类型 
        [light setType:DIRECTION]; 
        // 设置灯光的坐标 
        [light setDirection:NVPosition(0, -1, 0)]; 
    }
    NVWorldLight *light = (NVWorldLight *)[[self getWorld] getObjectByName:@"dir_light"]; 
    // 将灯光添加到场景中 
    if (light) { 
         [light attach:self]; 
    }
     NVWorldLight *light = (NVWorldLight *)[[self getWorld] getObjectByName:@"dir_light"]; 
    // 将灯光从场景中去除 
    if (light) { 
         [light dettach]; 
    }
    // 灯光、地面、粒子都属于世界对象,所以需要从NVWorld中创建 
    // 先确认场景中是否添加过了相同名字的灯光,因为要确保对象创建的唯一性 
    NVWorldLight *light = (NVWorldLight *)[[self getWorld] getObjectByName:@"point_light"]; 
    if (!light) { 
        light = (NVWorldLight *)[[self getWorld] createObject:LIGHT objectName:@"point_light"]; 
        // 设置灯光类型 
        [light setType:POINT]; 
        // 设置灯光的坐标 
        [light setPosition:NVPosition(2.0, 2.0, 2.0)]; 
        // 设置灯光是否具有衰减性 
        [light enableAttenuation:YES]; 
    }
    // 灯光、地面、粒子都属于世界对象,所以需要从NVWorld中创建 
    // 先确认场景中是否添加过了相同名字的灯光,因为要确保对象创建的唯一性 
    NVWorldLight *light = (NVWorldLight *)[[self getWorld] getObjectByName:@"spot_light"]; 
    if (!light) { 
        light = (NVWorldLight *)[[self getWorld] createObject:LIGHT objectName:@"spot_light"]; 
        // 设置灯光类型 
        [light setType:SPOT]; 
        // 设置灯光方向 
        [light setDirection:NVPosition(-1, -1, -1)]; 
        // 设置灯光的坐标 
        [light setPosition:NVPosition(1.0, 1.0, 1.0)]; 
        // 设置灯光是否具有衰减性 
        [light enableAttenuation:YES]; 
    }

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×