最近需要模拟红侠乔伊的镜头运用.这东西初看简单,实际还是很需要功夫的.关键不是程序技术如何(就一个摄像机),而是分析其轨迹和追踪点规律.其实就是一个3D空间中的缓冲系统.你如何确定都有什么参数,这么多参数又如何相互之间作用?这些天做下来,有一些心得.

  1  确立缓冲点.有3个方向位移的缓冲,有180度范围旋转的缓冲,但这些缓冲关系,只从2个点变化而来:相机的位置,以及相机追踪点的位置.后边这个一开始做的时候容易被忽略,实际上对效果的精细程度所起作用是很关键的.实际上不止对于摄像机系统,对于广泛意义的缓冲系统而言,都要找出主动关系与被动关系的缓冲点.在摄像机中,主动关系就是相机追踪位置,被动关系是相机位置.每个关系一个缓冲点.如果主动关系有2个,那就多一个缓冲点.依次类推.

  2  确立缓冲点上的正交关系.摄像机系统中,就是每个缓冲点处的x,y,z轴.旋转的缓冲其实依赖于位移,所以只关注位移就行了.

  3  想象在缓冲点处,沿你确定的每个正交方向,有一个弹簧点.弹簧由参数控制,沿其方向滑动.如果你在脑海中模拟到这个画面,缓冲系统已经完成大半了.

  4  插值函数.对于这种动态缓冲环境而言,我认为需要且只需要一个线性插值函数就足够了.丰富多彩的插值函数,适用于类似道路曲线或零件形状这种静态环境.我一开始在这里走了弯路,尝试了几个插值方式,后面才意识到错误.为什么?因为插值函数相当于一个黑盒子,对于插值函数的输入参数t来说,t本身已经由我们进行了模拟,不是线性的,那么一个非线性的参数进入一个非线性的盒子,所得结果你是非常非常难于预料的.

  5  参数调整.对于参数处理,log(x+a), e^(-x+a), (ax + b) / (cx + d)这3个函数框子是你最好的朋友.多考虑是否能用阙值函数代替条件判断.

  

实现3D摄像机缓冲系统的一些思考的更多相关文章

  1. 企业办公3D指纹考勤系统解决方案(一)

    员工准时.正常出勤是企业考勤制度的基本要求,然而目前签名式.卡钟式.IC卡考勤系统均存在代打卡.人情卡.不易统计等漏洞,而市面上的光学指纹考勤机存在识别能力差.识别速度慢.使用寿命短.不能完全杜绝指纹 ...

  2. 连锁机构3D指纹考勤系统解决方案

    信息技术的高速发展加速了商业零售业连锁经营的信息化和全球化的进程,同时也推动了商业管理的变革.尽管人们对它的认识是被动与滞后的,但这种变革依然伴随着商业业态的转变和信息技术的发展或快或慢地在悄然进行着 ...

  3. 景区3D指纹验证系统解决方案

    旅游业已成为全球经济中发展势头最强劲和规模最大的产业之一.旅游业在城市经济发展中的产业地位.经济作用逐步增强,旅游业对城市经济的拉动性.社会就业的带动力.以及对文化与环境的促进作用日益显现.指纹门票为 ...

  4. 公共交通3D指纹验证系统解决方案

    为了响应国家关于老年人的优待政策,华本研发了退休老人乘公交车指纹认证系统.指纹认证系统不仅方便老人乘坐公交,还能为公共部门减压,杜绝伪造优待证乘坐公交的不法行为. 目前,优待证都是人工检查,缺乏有效的 ...

  5. 工厂食堂3D指纹考勤系统解决方案

    指纹考勤就餐管理系统利用3D活体指纹技术完成对正式员工就餐管理.就餐者只需办理完入职手续,并登记考勤指纹,就可通过考勤指纹在工厂食堂领餐. 大多数工厂食堂就餐是福利性的,只准员工就餐,不准员工带亲戚朋 ...

  6. 企业办公3D指纹考勤系统解决方案

    员工准时.正常出勤是企业考勤制度的基本要求,然而目前签名式.卡钟式.IC卡考勤系统均存在代打卡.人情卡.不易统计等漏洞,而市面上的光学指纹考勤机存在识别能力差.识别速度慢.使用寿命短.不能完全杜绝指纹 ...

  7. 基于HTML5的燃气3D培训仿真系统

    最近上线了的基于HTML5的燃气3D培训仿真系统,以前的老系统是采用基于C++和OpenGL的OpenSceneGraph引擎设计的,OSG引擎性能和渲染效果各方面还是不错的,但因为这次新产品需求要求 ...

  8. AE 3D摄像机工作原理

    看了AE教程的3D可视化音频和序列法导入三维模型之后对于视频解析3D是有了更深的认识.很感谢AE在CS6之后加入了3D摄像机跟踪器的功能.它是通过摄像机跟踪反求来得到影片中的平面特征点.然后由用户指定 ...

  9. 基于HTML5气3D仿真培训系统

    根据最近的上线HTML5的燃气3D培训仿真系统.曾经的老系统是採用基于C++和OpenGL的OpenSceneGraph引擎设计的,OSG引擎性能和渲染效果各方面还是不错的,但由于这次新产品需求要求能 ...

随机推荐

  1. CentOS下对Apache的中文乱码处理

    # vi /etc/sysconfig/i18nLANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16" 默认的语言是英文,如 ...

  2. php mysql_insert_id()

    mysql_insert_id mysql_insert_id()返回给定的 link_identifier中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号.如果没有指 ...

  3. Navicat

    create table <表名>(    <列名> <数据类型及长度> [not null],    <列名> <数据类型及长度>,   ...

  4. 《Linux内核设计与实现》读书笔记(七)- 中断处理【转】

    转自:http://www.cnblogs.com/wang_yb/archive/2013/04/19/3030345.html 中断处理一般不是纯软件来实现的,需要硬件的支持.通过对中断的学习有助 ...

  5. NandFlash详述【转】

    NandFlash详述 转自:http://wenku.baidu.com/view/04d9330bb52acfc789ebc92f.html?re=view 1. 硬件特性: [Flash的硬件实 ...

  6. Maven下使用Jetty进行Debug

    1.环境和条件 Maven-3.0.3Eclipse请阅读者事先具备一定maven知识 2 配置2.1 添加Jetty插件 在pom.xml中加入如下代码段 <plugin> <gr ...

  7. YTU 2615: AB编程题--世界杯小组赛

    2615: AB编程题--世界杯小组赛 时间限制: 1 Sec  内存限制: 128 MB 提交: 100  解决: 35 题目描述 注:本题目自由设计,但必须使用类进行代码设计. 世界杯32支参赛队 ...

  8. 第三篇 从EXCEL电子表格到数据库

    一个靠EXCEL电子表格处理各部门业务数据的公司和一个使用一个统一的数据库存储各个部门用到的业务数据并提供大量权限不同的使用界面给用户的公司两者有什么不同呢?   EXCEL电子表格是数据和操纵数据的 ...

  9. HibernateTools的使用

    1. 到 Hibernate.org官网上 下载最新版的 Hibernate Tools,我用的是 HibernateTools-3.2.4.GA版 2. 将 下载下来的压缩包解压缩,里面会有 plu ...

  10. ajax请求(二),后台返回的JSon字符串的转换

    ajax请求,json的转换 $.ajax({ url : "../folder/isExistAddFolder.do?t="+new Date(), type : 'POST' ...