2008年11月19日星期三

David Kim

CGTalk上一幅二维作品,挺有意思:)

2008年11月18日星期二

Mental ray Motion Blur 试解决方案和 mip_motionblur mip_motion_vector shader

Mental ray Motion Blur 试解决方案和 mip_motionblur mip_motion_vector shader


基于Mental ray渲染Motion blur现在有几种解决方案:

  • 3D
    • 纯3D Motion blur
    • Rasterizer
  • 2D 后期
    • 在maya内应用mip_motionbur
    • 后期Motion blur, 通过Motion vector。

纯3D Motion Blur 渲染的图片最真实,反射,折射,GI等都不会有问题。但是缺点是速度慢,为了提高动态模糊的渲染质量需要不断的提高sample 和 temporal sample 的值,占用大量的渲染时间。渲染速度和质量(sample)是成一种linear的关系。

Rasterizer 优 点是速度快,比raytrace motion blur要快很多,能够很快的实现高质量的motion blur。它将shading和sample分开进行,极大的提高渲染速度。因为这种特点渲染速度和质量(sample)不是一种linear关系。另外 他的sample方式也与raytrace不同。但是由于这种方式的特点不适合对反射和折射要求较高的场景应用。渲染头发是应用这种渲染方式加 detailed shadow map。另外不适合应用fg,gi caustics,auto volumn, raytraced shadow, ray bending lens shader, reflect refract.

2d,后期的motion blur是 基于二维平面的动态模糊。优点是节省渲染时间,三维渲染不需要渲染motion blur。调整快,可以说是实时的。在后期调整时非常灵活如果是渲染的motion blur如果有问题就需要到三维里重新渲染,在后期里调整就不需要。在后期里可以得到实时的反馈根据需要任意调整动态模糊的幅度。缺点是不准确不能模糊反 射折射的情况,不能有multisegment motion blur,动态模糊都是直线的不会有弧线的,另外后期软件对其支持也不禁相同还有很多限制。2d的motion blur主要是通过三维软件渲染motion vector通过后期软件调整。除了这种方式,Mental ray提供了一个output shader:mip_motionblur shader. 这个shader 通过利用motion vector 和 depth frame buffer对渲染出来图片进行处理。由于是集成于渲染器它的优点是拥有一些后期软件没有的功能。而motion vector shader主要是用于输出针对不同后期软件处理动态模糊需要不同motion vector图像而写的shader。

对于3D motion blur,最重要的渲染速度而这主要是取决于整体的sample和temporal sample在maya内由time contrast 控制。这个参数是主要影响动态模糊速度的。


mip_motionblur, mip_motion_vector具体应用方法。

应 用这两个shader都需要将motion blur选项开启,但是要保证shutter interval 为零。看具体情况考虑,为了后期考虑有时应将物体停在shutter interval的中间这样方便向前后两个方向动态模糊。比如shutter open 是0 shutter close是1,在启用这个shader的时候要两个值都为0.5。即 shutter open 0.5 shutter close 0.5。这样会关闭motion blur但是会计算motion vector。同时将time contrast改为1,避免mental ray 作不必要的计算。




这两个shader都是output shader 但是连到maya 2009 camera 的output shader里并不可用,只可以使用以前的链接方式。默认情况下此界面在camera attribut editor里是被隐藏的。方法倒很简单将output shader拖动到相机上选择 default 就可以了或者使用connectio editor 同时要启用 motion vectors, depth framebuffer。







关于两个shader的具体参数,可以直接参看官方的production shader documents. 这里需要强调一下的是如果在nuke中作motion blur,首先需要将mip_motion_vector中floating point format 改为1, pixel threshold 最小要写0.001否则会有artifacts(图像某些不动的部分会有值)这个值是告诉mentalray多小的像素移动可以忽略不记。这样nuke的vector blur节点才能正确读取mental ray 输出的motion vector信息。其他插件和软件对motion vector要求不一样,要看具体要求输出。



使用 nuke 自己的 vector blur shader 还是不能很好的模糊需要动态模糊的部分和其它背景同在一个rgb通道内的图像,如果需要动态模糊的部分外边没有rgb信息可以很好的模糊图像,如果有,效果没有reelsmart motion blur效果好,但是RSMB一样有些问题。暂时还不知道是不是我的设置有问题。

5.1v2 的vector blur结点坏了,foundry已经确认,下个版本修正...不用试了。


2008年11月9日星期日

匹配颜色 (Matching the lightspace) 笔记

匹配颜色 (Matching the lightspace) 笔记

这里的匹配颜色方法主要是基于一条逻辑色思路。首先匹配明度和对比,然后颜色方面的。接着是灯光方向,灯光质量,灯光效果,阴影,和颜色现象。

现在假设一种情况是,用前景来匹配背景,背景已经是被color grading过的。

1.Brightness and contrast.

  1. 这一步只要是匹配black point 和 white point 。理论上black point就是漫反射2%光线的黑色物体表面的像素值。White point 是漫反射90%光线的白色物体表面的像素值。对8位linear图来说black point一般是第10个色阶(值0.04)。当然实际工作中不一定就是匹配这几个值,也许图片中跟比就没有这么“黑”或这么“白”的像素点。我们只是匹配素材中相应的black and white point。工具一般用一条曲线的input和output控制就可以了。
  2. 匹配Contrast要用 S 形curve,因为不会clip。
  3. 还有 matching the midtones要基于我们已经定好的black point 和white point。就是可以给予同一条曲线上加点调节。
  4. 当我们把在制作电影需要转到video的时候black point 如果匹配的不好容易出问题。我们在匹配的时候可以试着把显示器的gamma 调高再调低分不同情况在看一下。

2.Color Matching

  1. 当匹配颜色的时候我们需要对全局匹配也需要对个别物体匹配,因为在不同光照环境下物体对光的反映是不一样的。比如一个人穿着一件衣服在室外和在室内,肤色和衣服对光的反映是不一致的。对于匹配颜色我们一般将纯灰色物体和肤色作为参考。
  2. “constant green” 较色方法,就是绿色不动,动其他的颜色。因为绿色对明度影响太大,动一点就很容易被察觉到明度的变化。明度的RGB分布比例为G 59%, R 30%, B 11%。
  3. 在室外的场景要想到,物体一般收两个光源的照射太阳和天空,太阳偏黄,天空偏蓝。收太阳照射的地方一般偏黄些,不受太阳直接照射的部分一般偏蓝些。
  4. 关于高光点,如果要降暗高光点的话,记得要增加饱和度或者添加颜色。因为在过度爆光部分RGB是被压缩了的,所以看起来会“grey”一些。

其他暂时没什么要注意的。需要再补充吧。