呃...15年开篇~

去年想写一个有关默认相机转VR相机的脚本,当时没写完,今天不小心翻到并写完了,而且思路也和原来完全不一样了,增加了是否删除原相机与是否转换所选相机的选项.

由于国内VR版本比较混乱,中间加了个中英文版本的适配.

fn cam_to_vrcam sel:#off del:#on =
(
local sel_cam = #()
local del_cam = #()
case sel of
(
#off : cams = cameras
#on : cams = sel_cam + selection
)
case of
(
(VRayPhysicalCamera != undefined) : YY_vrcam = VRayPhysicalCamera isSelected:on
(VR物理摄影机 != undefined) : YY_vrcam = VR物理摄影机 isSelected:on
(VR_物理摄影机 != undefined) : YY_vrcam = VR_物理摄影机 isSelected:on
-- default:
)
for c= to cams.count do
(
if (classof cams[c] == Freecamera) or (classof cams[c] == Targetcamera) do
(
YY_new_cam = copy YY_vrcam
try cams[c].type = #free catch()
YY_new_cam.rotation = cams[c].rotation
YY_new_cam.pos = cams[c].pos
append del_cam cams[c]
)
)
delete YY_vrcam
case del of
(
#on : for d in del_cam do delete d
#off : ()
)
)--将默认相机转化为VR物理相机
cam_to_vrcam sel:#on del:#on

找到更简单的方法再继续修改~

----------------------------------------------------------------------------

在测试中发现一些问题:try cams[c].type = #free catch()

当将目标相机转换为自由相机时,目标点就不存在了,原来 selection 的物体会发生变化.

后来发现更简单的方法 baseobject 可以获得节点的原始对象的类别.而不像 classOf() 函数返回的是对象类的最终状态(堆栈的顶部).

fn cam_to_vrcam sel:#off =
(
case sel of
(
#off : cams = cameras
#on : cams = selection
)
case of
(
(VRayPhysicalCamera != undefined) : YY_vrcam = VRayPhysicalCamera()
(VR物理摄影机 != undefined) : YY_vrcam = VR物理摄影机()
(VR_物理摄影机 != undefined) : YY_vrcam = VR_物理摄影机()
default : messagebox "V-Ray版本不支持!"
)
for c= to cams.count do
(
if (classof cams[c] == Freecamera) or (classof cams[c] == Targetcamera) do
(
try cams[c].baseobject = YY_vrcam catch()
)
)
delete YY_vrcam
)--将默认相机转化为VR物理相机
cam_to_vrcam sel:#on

不过这个方法转换的相机都是关联的,以后在修改.

2015-01-30  今天找到了解除物体关联的方法了:连接地址

有关默认相机转VR相机的更多相关文章

  1. 旋转VR相机不头晕:一个反直觉的发现

    旋转VR相机不头晕:一个反直觉的发现 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/deta ...

  2. 从谷歌到脸书:为何巨头纷纷“钟情于”VR相机?

    VR的火爆,自然无需多言.而基于VR这一个概念,已经在多个相关行业不断衍生出新的产品.服务或内容.VR眼镜.VR头盔.VR相机.VR游戏.VR影视.VR应用--但VR产业的发展并不是齐头并进,而是出现 ...

  3. 干货 | LIDAR、ToF相机、双目相机如何科学选择?

    点击"计算机视觉life"关注,置顶更快接收消息! 本文阅读时间约5分钟 本文翻译自卡内基梅隆大学 Chris asteroid 三维视觉技术的选择 传感器参数及定义 LIDAR ...

  4. Android调用系统相机、自定义相机、处理大图片

    Android调用系统相机和自定义相机实例 本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理 ...

  5. unity, 相机空间 与 相机gameObject的局部空间

    在unity里 相机空间 与 相机gameObject的局部空间 不重合. Camera.worldToCameraMatrix的文档中有这样一句话: Note that camera space m ...

  6. Android相机使用(系统相机、自定义相机、大图片处理)

    本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人Surf ...

  7. Android调用系统相机以及自定义相机

    0.综述 自定义相机,此处展示简单的相机功能,官方文档中还有相应关于视频拍摄的内容,此处不提 1.添加权限 <!--相机权限,数据存储--> <uses-permission and ...

  8. Unity设置相机正交相机和透视相机的动态切换

    Camera.main.orthographic = true;    Camera.main.orthographicSize = 4;    Camera.main.orthographic = ...

  9. Arduino 计算机视觉系统概述

    计算机视觉系统概述 计算机视觉系统是最近比较热门的研究领域,今天开始给大家介绍下计算机视觉相关的知识. 视觉是人的所有感官中最敏感的一种,人的视觉可以感知环境,而机器的视觉却很难感知环境 为了解决计算 ...

随机推荐

  1. 作业七:团队项目——Alpha版本冲刺阶段007

    今日进展:完善游戏主体代码. 今日安排:让游戏能运行起来.

  2. iOS---XMPP环境搭建过程

    什么是即时通信? 即时通信是目前Internet上最为流行的通讯方式, 各种各样的即时通讯软件也层出不穷, 服务提供商也提供了越来越枫木的通讯服务功能. 即时通讯有多重实现方式, XMPP就是其中一种 ...

  3. jQuery原生框架-----------------事件

    jQuery.extend({ // 绑定事件 addEvent: function( ele, type, fn ) { // ele不是DOM,type不是字符串,fn不是函数,打包打走 if( ...

  4. 第五章 搭建S3C6410开发板的测试环境

    在PC上可以开发Linux驱动,重新编译成ARM架构的Linux驱动模块,但最后还是要在开发板上进行测试.目前最流行的是基于三星S3C6410 ARM11架构的开发板,很多厂商在其基础上进行了扩展,开 ...

  5. cocos2d-x 3.0 事件分发机制

    在cocos2d-x 3.0中一共有五个事件监听器: 触摸事件(EventListenerTouch) 键盘响应事件 (EventListenerKeyboard) 加速器记录事件(EventList ...

  6. NLog的使用

    1.项目添加NLog的项目引用: 2.将工程的framework框架改为3.5或4.0,将配置文件[NLog.config]拷贝至运行的bin/(release/debug)路径下 3.项目中代码使用 ...

  7. sed用法

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  8. 【Python】列表各种操作

    # -*- coding:utf-8 -*- #列表操作name_list = ['zhangsan','lisi','wangwu'] #append 在最后插入name_list.append(& ...

  9. Freemark基本语法知识(转)

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输 ...

  10. ssh整合--struts

    一 struts(jar+web.xml+struts.xml+Action) 1import min_jars-------struts-2.3.20.3-all(struts2-blank.war ...