杂篇-之裸眼3D渲染相机及画面矫正
主题公园类,或大型广场led屏幕,直角幕,三维影片如何制作,和最终画面如何矫正还原。
前两天,一朋友做的项目,大概就是一个柱状的led屏幕,可能是立在广场街角等处,如果这样子,那个柱状体的有颜色的两面就是led屏幕,要做成裸眼3d效果。

那,要解决两个事儿,一个是渲染相机怎么打,二个就是最终画面得是什么样,才能拿到正常的播放器去播放。
一、渲染相机
渲染相机当然是要模拟人的视角,于是就在人的正常高度看向led屏幕,打一个渲染相机,渲染相机的透视和角度,要尽量涵盖整个屏幕,避免画面浪费,

当然还可以再窄一点,靠近边缘即可,接下来就制作你的cg场景,角色活动范围当然就是这个视窗里面,而且是这box盒子里面,裸眼的效果想要强度多大,自行调节相机透视,做冲镜或出境效果,根据情况去做layout,然后去调节。
这里就出一张渲染画面,背景不用理。然后接下来就是去弄出,最终在播放器里面播放的画面,画面矫正。

二、画面矫正
这里画面矫正,我是用nuke去做的,也可直接在houdini里面去做,我觉得nuke很方便,所以就nuke了,而且还可随时去调整最终画面效果之类的。
播放器里最终播放的,肯定是一个二维的视频,除非自己开发的播放器自带畸形画面矫正功能,那就另说。所以这个带透视效果的肯定是不行的,所以我们就得模拟还原现场的视角和屏幕,
1、在houdini中导出你的屏幕,也就是两块面片,建议分开导,导fbx格式,记得给屏幕展好uv,这里很重要,铺满整个uv象限,后面需要用到的。

2、导出渲染相机,也导fbx,一般情况不用去导abc,除非你有动画,那就是运动的渲染相机,那你是在做黑暗乘骑了,
3、在nuke中导入你刚才导出的相机和屏幕模型,在nuke中就还原了三维场景。

4、用nuke的三维投射,把渲染画面反投回屏幕当中

5、然后就是把反投到屏幕上的画面给弄出来就行了,就是你想要的画面,这里就用 ScanlineRender 这个节点,然后把projection mode 改成uv模式就可以了,然后自己调整一下,把两半屏幕画面拼接到一起,
下图就是你要拿到播放器里面去播放的画面。

相应的测试文件 https://i.cnblogs.com/files 在这里
杂篇-之裸眼3D渲染相机及画面矫正的更多相关文章
- 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感
http://sd89.blog.163.com/blog/static/356041322014112532958728/ 3D图片的拍摄,与平面有着全新的不同要求,那就是空间感的表现. 简单来说, ...
- 裸眼3D立体显示技术原理详解
众所周知,现实世界是一个三维空间,除去时间这一维度,现实世界是由长度.宽度和高度三个维度组成,我们每天就生活在这个三维世界中,而现有的显示设备大多数都只能显示二维信息,并不能带给人真实的三维感觉.为了 ...
- 裸眼 3D 技术是什么原理?
https://www.zhihu.com/question/19553745 作者:杨英东链接:https://www.zhihu.com/question/19553745/answer/1227 ...
- 自制裸眼3D图【推荐】
Welcome to the World of Hidden 3D Stereograms.欢迎进入隐身3D图的世界! 网址:http://hidden-3d.com 裸眼立体图是什么? 立体图是立体 ...
- 这才是真正的裸眼3D!超级震撼!!
大家有没认为有意思啦,反正俺是被震撼到了. 好奇异-- ! " src="http://www.yixieshi.com/uploads/allimg/141116/1446431 ...
- 初探Stage3D(一) 3D渲染基础原理
关于本文 本文主要想介绍一下3D渲染的基本流程,及怎样把一个三角形(0,1,0),(1,0,1),(0,0,1)最终渲染到屏幕上来.文章的目的是对3D渲染流程做一个简单的介绍,其中不涉及任何语言的AP ...
- 基于 HTML5 Canvas 的 3D 渲染引擎构建生产管控系统
前言 大家好,老郑我又回来了.这一期为大家带来一个非常好玩的 demo,我们制作一套自己的 3D 管道控制系统,运用了( http://www.hightopo.com )HT 的 Graph3dVi ...
- 基于 HTML5 Canvas 的 3D 渲染引擎构建机架式服务器
前言 今天找到了 HT 的官网里的 Demo 网站( http://www.hightopo.com/demos/index.html ),看的我眼花缭乱,目不暇接. 而且 HT 的用户手册,将例子和 ...
- 3D渲染集群,你了解多少?
摘要:渲染是批处理运行模式,那能不能使用Docker容器技术,做大规模的渲染集群呢? 我们先说说3D渲染涉及哪些领域: 1.什么是3D渲染 简单粗暴的讲:就是将虚拟世界里的3D模型,变为(人眼看到)平 ...
随机推荐
- configfs_sample.c 理解
1. 编译运行 代码从如下链接获得: https://github.com/torvalds/linux/blob/master/samples/configfs/configfs_sample.c ...
- 1.深入Istio:Sidecar自动注入如何实现的?
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的Istio源码是 release 1.5. 这篇文章打算讲一下sidecar, ...
- WSL Ubuntu 18.04 LTS + VS Code
WSL Ubuntu 18.04 LTS + VS Code WSL(Windows Subsystem for Linux)使得Windows用户能够在Windows系统上使用原生的Linux环 ...
- SQL数据库表结构的修改(sql2005)
一 .ALTER TABLE命令 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. 二.添加列 语法 :ALTER TABLE table_name ADD column_name d ...
- .net core mvc appsettings.json配置文件的使用
配置文件的使用主要是两种用法 1.直接使用弱类型的数据 2.使用强类型的数据 (将配置的数据映射到类) 直接使用弱类型的数据 在appsetings.json文件中先新建两个节点 TestObj节点 ...
- CEF避坑指南(一)——编译并自制浏览器
CEF即Chromium Embedded Framework,Chrome浏览器嵌入式框架.我们可以从自制浏览器入手,深入学习它.它提供了接口供程序员们把Chrome放到自己的程序中.许多大型公司, ...
- 【转】volatile和synchronized的区别
volatile和synchronized的区别 volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取: synchronized则是锁定当前变量,只有当前 ...
- C# + Matlab 实现计件工时基于三层BP神经网络的拟合--真实项目
工序工时由该工序的工艺参数决定,有了工时后乘以固定因子就是计件工资.一般参考本地小时工资以及同类小时工资并考虑作业的风险等因素给出固定因子 采用的VS2010 , Matlab2015a 64, 开 ...
- 手写@koa/router源码
上一篇文章我们讲了Koa的基本架构,可以看到Koa的基本架构只有中间件内核,并没有其他功能,路由功能也没有.要实现路由功能我们必须引入第三方中间件,本文要讲的路由中间件是@koa/router,这个中 ...
- C++ Split string into vector<string> by space(转)
c++中没有这么方便的实现,但也有很多的方法能实现这个功能,下面列出五种常用的实现的方法,请根据需要选择,个人觉得前三种使用起来比较方便,参见代码如下: #include <vector> ...