我在http://www.360doc.com/content/12/0118/16/4512349_180205150.shtml看到的这篇文章,似乎作者博客地址已经失效,个人觉得不错,于是把部分台湾表述改成大陆表述方式,将本文转载到此。
在像 Pixar 这样的 animation studio,或是像 ILM 这样大规模的 VFXstudio 里头,OpenEXR扮演了一个非常重要的角色:工作过程中,可以用来预览或是再加工(合成)的图片文件。我们就如同其它的 studio 一样,也是使用 EXR作为内部的图档使用。公司里头,绝大部分的 exr 文件,都是 renderer 的产物。OpenEXR 是个可以用来乘载HDR 的图片格式,在 ILM 的推波助澜,加上其它 studio 的跟进以及动画软件的支持下,几乎成了某种 de facto标准。然后,它终究只是一个“够开放“的图档格式,如何有效且正确的善用它,才是更重要的事。
以下几点,是我们在太极影音的工作过程中,发展出来的一些经验:
- EXR 档案里头没有任何标头或 tag 指出它存的 color space是线性(linear)、gamma 2.2(1.8, 2.6, ...)等,而是由使用的人或是软件自行解释。
- EXR 鼓励以 linear color space 的方式来存内容(scene-referred)。这样不管是人、机器或是软件,都不用去猜测别的可能性,而且对于后期合成来说,既不用对拿到的影像想太多就直接操作,也不需要先做个转换,是比较省事且安全有效率的pipeline。但这点不是强制性的,只能说是大家约定成俗的一种习惯性用法。就像我们现在都认为相机出来的 JPEG 一般是sRGB (~ gamma2.2) 或 AdobeRGB,但其实 JPEG spec 并没有定义这个。
- EXR 以 linear 储存后,在显示时才去根据不同的 display device,使用不同的transformation 或是 LUT 来转换。要求比较严苛的工作环境,会就每个 display device 有一组 LUT(1D? 2D? 3D? 这部分我还没有作完研究各种 LUT 表示法的适用状况,只能说,理论上 3D LUT比较厉害。),且会定时根据 device 的状况来更新那组 LUT。这种作法是非常非常严苛的要求下的作法。
- EXR 可以有任意的 metadata,所以是可以在里头存个 'colorspace' 的 meta来用,不过这样得确认所有接触到此 exr 的程序,都有去“尊重“这个 meta才有用,不然反而会落得不三不四的。
- EXR 储存的数值,只有 16-bit 或是 32-bit的这两种,并没有 8-bit, 10-bit, 12-bit, 24-bit, ...等此说法。当有人这样说时,可以假设是只用了比较少的 bit(ex, 16 bits 中,只用了 14 bits,另外两个 bits为零),但存在档案里时,一样是 16 或是 32 bits。
- 同样的图片,以 linear 与 log 的方式来存的话(这边指的是单纯的 log,并非 REDlog 或是 panalog这类特定的 preset),log 存的档案的确是会小一点点,约节省了 10%~20%。但它仍旧是以 16 bits 或是 32bits 来存。
- 压缩方法中,有 loseless 与 lossy 两种。PIZ, ZIP, ZIP (16 scanline), RLE 属于loseless。其中 ZIP (16 scanline) 对于 CG image 的压缩率最大;而 PIZ 对于有 filmgrain 的 image 有最好的表现(因为使用了 wavelet)。B44 或是 B44A 为lossy,我们现有的工作环境不会使用到,也不应该使用到才是。
- 像素(pixel) 存的方式,又分为 scanline 与 tiled。后者适合以一张 .exr 来存一整个mipmaps,就像 .tex 一样(.tex 是 .tif 的一种小变型)。prman(Pixar's RenderMan)的texture 这个 shader op,也许已经有支持 .tiff 或 .exr 了(我没去确认),但我相信对于.tex 的支持应该仍旧是最好的。
further reading:
- ILM 于 SIGGRAPH 2004 发表的 OpenEXR ColorManagement 是个很好的参考,不过其中的 CTL 已经开始由 OpenColorIO取代掉了。
- Understanding Nuke's unique Layer and Channel system (including theShuffle Nodes).
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。