立体化渲染 Daniel Wexler,Gelato Developer,2006年6月
Gelato 可以直接使用从 Mango 中访问的简单相机设置渲染立体化图像。多相机渲染只针对主相机对象进行着色,但之后可以快速重新计算各单独相机位置,在这种情况下,是左右眼的可视性。与在单独通路中渲染每个眼睛相比,在立体化渲染中共享着色可以极大地加速渲染。
参数 stereo:separation、stereo:convergence 和 stereo:projection 控制立体化相机设置。另一个参数 stereo:shade 确定哪一个相机将被用于切割(dicing)和着色(shading)。默认“中间”相机将在用于着色的两个渲染相机的中心创建可视的第三个相机。请参阅 Gelato 技术参考中的第 4.1 部分以获得详细信息。
Gelato 支持三种不同的立体化相机投影:parallel(平行)、off-axis(离轴)和 toe-in(内束)。以上可以在 Mango 中使用 Gelato 渲染球中 Stereo Rendering(立体化渲染)部分中的 Projection(投影)字段设置这些参数。平行投影将相机偏移中线眼睛分隔距离,之后使其视角轴保持并行。平行投影中的投影平面会对齐,但会被水平移动。toe-in(内束)方法将相机偏移中线,然后向内调整其角度,使其指向时沿着原始中轴。toe-in 方法包含没有对准的投影平面,这使它很难在屏幕边缘上聚合。off-axis(离轴)方法相似,但 toe-in 方法更好,因为它会剪切两个相机的投影平面,以使它们对准。
Gelato 2.0 只支持 toe-in 和平行投影。stereo:convergence 参数用以在两个投影之间选择 ,零表示平行投影。版本 2.1 引入了 stereo:projection Camera 参数,允许您在所有三个投影模式之间明确地选择。
| 平行 |
 |
 |
| |
|
| Toe-in(内束) |
 |
 |
| |
|
| Off-axis(离轴) |
 |
 |
透过红蓝玻眼镜(蓝在右边)观看上面立体照片显示了深度分别为 20、30 和 40(距离相机位置)三个嵌入矩形形状。眼睛分离是一个单位,焦距是 30 个单位,应使中间对象在焦点中(无分离)。off-axis(离轴)图像清楚地显示,中间对象在焦点中 -- 在该点的红蓝图像之间没有差异。注意,红蓝偏移为焦平面前面及背后的对象进行切换。也请注意,由于投影面板的旋转,toe-in(内束)模式下的水平边缘与屏幕不平行。
许多人可以聚合所有图像,但平行和内束图像通常可能会有轻微的铃振铃效应,显然更难聚合。令人惊奇的是,所有三个图像中的对象均显示相同图像深度。
Gelato 图像查看器 iv 也在 2.1 版本中提升了立体照片显示效果。旧立体照片模式采用 Photoshop 技术,使一只眼睛成为红色,另一只成为青色,从而在重叠区域中形成灰色。这种生成立体照片图像的方法根本没有颜色重现。改进的方法使用左右眼输入颜色的对比度权重法(weighting)产生颜色合理重现的红-青立体照片。這個照片最好通过红-青滤镜查看,但红-蓝滤镜也可以。
颜色不是太好,但黄色、绿色和蓝色还不错。以下图像中的彩色方块通过旧的 Photoshop 式和新的 NCSU 算法显示。
请参阅 Paul Bourke 的杰出网站以了解所有各类立体化主题的更多理论、背景和可用代码。NCSU 立体化计算机图形页是另一个很好的资源,特别是立体照片渲染技术。我们采用了由北卡罗来纳州 David McAllister 规定的最小二乘近似值法计算立体照片母体。 |