博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你了解OpenEXR吗?
阅读量:5771 次
发布时间:2019-06-18

本文共 1376 字,大约阅读时间需要 4 分钟。

hot3.png



原文地址:

很多人对 OpenEXR 这种图像格式的了解仅限于:它是 32bit 的,它可以支持多通道,VFX 公司都在使用 EXR。这些都没错,但如果你的渲染器生成的是 tile 方式的多通道 EXR,则会降低 Nuke 的合成的效率。

Tile vs. Scanline

    很多人都不知道在输出 EXR 文件的时候有两种方式:tile 和 scanline,而 Nuke 读取图像是以 scanline 方式从上至下读取,如果读取 tile EXR,速度会非常慢(单通道文件没有感觉,多通道文件感觉明显),转换成 scanline 以后,速度可以提升 5-10 倍。

    渲染器大都以 tile 方式输出 EXR(Arnold 和 Vray 缺省为 tile;Softimage 的 mental ray 和 3delight 在界面内无法选择,只能用 tile;Maya 2013 开始将缺省的 EXR 和 TIFF 输出方式改成 scanline),渲染通常是分成图块来处理的,tile 方式允许渲染器将当前处理的图块存盘,这样可以节省 framebuffer 资源,而 scanline 方式则要等整个图像处理完毕后才能存盘,如果渲染图片尺寸大的话,就会有明显的效率差别。

    正因为大部分渲染器输出的是 tile EXR,所以很多 VFX 公司都有专门的工具来转换生成的 EXR 文件。我也更倾向于渲染的时候不要直接输出多通道(multi-channel)EXR,而是每个通道单独输出,然后在 Nuke 里将这些通道序列结合成多通道的 EXR(可以使用 gizmo)。

压缩方式

    OpenEXR 支持无损和有损的图像压缩:32bit 文件会占用大量的磁盘空间,压缩能大大减少文件尺寸,减轻网络负荷。Zip 压缩的 scanline EXR 是 Nuke 推荐的。

Half float vs. Float

    合理选择输出半浮点还是全浮点的 EXR,很多通道(高光、反射、阴影等)使用半浮点即可,精度要求高的通道(depth、motion vector、incidence 等)可以使用全浮点。

单通道 vs. 多通道

    一堆单通道 EXR 文件和单个多通道的 EXR 文件,很难说是谁的合成效率高,这和个人习惯有关。

    把所有通道放到一个文件中,会导致文件尺寸变大,增加网络负担。我常用的合成通道有:diffuse, indirect diffuse, specular, indirect specular (reflection), shadow, depth, normal, fresnel, point position, RGB matte, occlusion, (reflect occlusion), (refraction), (RGB light)。有些材质会使用更多的合成通道,例如 SSS。如果可能,我还会渲染 beauty 通道,以供快速预合(这样就不需要等待所有 pass 合成一遍才能看到大致结果)。这里只是一些参考,并不一定适合所有的情况。渲染合成之前先测试一帧,看看有没有明显的速度问题,有的话就要找找问题的根源了。

转载于:https://my.oschina.net/u/2344808/blog/397860

你可能感兴趣的文章
我的友情链接
查看>>
[HDU]2565放大的X
查看>>
Linux改变PS1颜色显示示例
查看>>
我的友情链接
查看>>
TCP/IP概述
查看>>
MYSQL --Subquery returns more than 1 row查询结果多于一行
查看>>
分页封装类
查看>>
js判断奇偶性
查看>>
docker-compose初试及命令基础
查看>>
Ubuntu12.10 下安装搜狗输入法、Google拼音、双拼、五笔输入法
查看>>
【JZOJ5248】花花的聚会
查看>>
php语法
查看>>
腾讯微博邀请码大放送!需要的从速……
查看>>
匹配img标签及img 的src的正则表达式
查看>>
BZOJ4671 异或图
查看>>
资深专家深度剖析Kubernetes API Server第3章(共3章)
查看>>
CodeForces-714C - Sonya and Queries【状压 】
查看>>
Linux 下 Wordpress "Not Found" 解决
查看>>
Scut游戏服务器引擎之新手入门
查看>>
jQuery学习总结(二)
查看>>