Mental Ray渲染--在摄像机动画中如何避免finalgather闪烁?

Final gathering 依赖于在finalgather点周围进行差值,以度量入射间接光照的光强。如果没有足够多的临近点,mental ray将自动增加一些。如果摄像机发生移动,这些临近点将加载不同的位置。如果部分场景很暗,或者照明的对比度较大,那么finalgather点的光照变化率就很高,这就可能导致画面闪烁。

加大accuracy的光线数量或者半径通常可以解决这个问题,这是由于光线的数量的增加而牺牲一些性能为代价的。还可以在finalgather only 模式下先运行动画,记录一个或者多个finalgather 文件中的所有finalgather点。根据场景及摄像机的移动速度,每秒或者每十分之一秒渲染一帧也许就足够了。然后,再次运行相同的动画以计算一个渲染步骤,在渲染步骤中必须制定finalgather中,必须制定finalgather rebuild freeze语句,以确保所有帧都确切使用了与先前记录相同的finalgather点。这个过程会更加消耗时间的,但是是降低闪烁更安全的方法。
      Finalgather文件可能会变得很大,因为它们智慧积累采样点却永远不知道丢弃一些,尤其当图像的分辨率很高,accuracy半径很小,动画帧数很多,摄像机运动速度很快,从而把场景的大部分都引入视图的情况下,文件正大的情况更严重。这时用于各部分动画的多个重叠finalgather文件可在此使用。

时间: 2024-10-13 00:21:26

Mental Ray渲染--在摄像机动画中如何避免finalgather闪烁?的相关文章

mental ray渲染引擎----环境映射

环境映射,有时又称为反射映射,是一项在无穷远的球体或立方体或者相似的闭合形体上,使用纹理映射的技术,并计算使用环境映射的物体反射它时的形状.闭合的形体自身并不是物体,它仅是抽象的,只计算分析观察方向与观察位置. 环境映射是局部效果,意味着只和使用环境映射的物体相关而与其他物体无关.事实上,环境映射连接到使用环境映射物体的材质上,这意味着两个不同的物体可以有不同的环境贴图,任意的物体都是这样.环境映射是真是反射的一种廉价选择. 这是光线跟踪反射场景中的其他物体,而环境映射不反射.而且,与需要光线跟

游戏动画中欧拉角与万向锁的理解(转)

http://blog.csdn.net/huazai434/article/details/6458257 我在2009年5月份左右拜读了<3D数学基础:图形与游戏开发>,当时对欧拉角中万向锁的概念一直是百思不得其解,也从未遇到过这种情况.书上有这样一句话:"如果您从来没有遇到过万向锁情况,你可能会对此感到困惑,而且不幸的是,很难在本书中讲清楚这个问题,你需要亲身经历才能明白."今天我用3个多小时的时间再次回想了一下这个问题,总算想明白了,现在把思考的结果分享给大家. 下

如何解决IOS 动画中 Autolayout 与View Transforms的冲突

IOS 的动画放大与缩小,并非按照找它的中心点放大和缩小,而是左上角 .我分析了下原来是Autolayout 与View Transforms的冲突造成的. - (void) addSubviewWithZoomInAnimation:(UIView*)view duration:(float)secs option:(UIViewAnimationOptions)option { // first reduce the view to 1/100th of its original dimen

iOS核心动画中的常用类型

CATransaction 当我们在自定义的图层上修改某些支持动画的属性时,系统会为该属性的修改自动产生动画.这种其实属于隐式动画.隐式动画要得益于CATransaction. 一个CATransaction从调用CATransaction.begin()开始,以CATransaction.commit()结束.在这其间对图层属性的修改,会受该Transaction的控制,可以通过setAnimationDuration修改Transaction的duration. 系统的隐式动画是因为在Run

骨骼蒙皮动画中的坐标变换

背景知识 模型视图变换 OpenGL没有视图矩阵,只有模型视图矩阵,一般游戏引擎都会抽象出视图矩阵的. 总的变换为: v` = projection * view * mode * v; 父子节点变换 v` = worldMatrix * v = (parentWorldMatrix * localMatrix) * v; 骨骼变换 其实真正表示的关节,而不是骨头,只是骨头比较好理解. 默认姿态网格对象坐标空空变换到骨骼局部坐标空间(offsetMatrix). 完了后又从骨骼空间变换回动画姿态

(转发)IOS动画中的枚举UIViewAnimationOptions

若本帖转自(博客园·小八究):http://www.cnblogs.com/xiaobajiu/p/4084747.html 可怜目前天朝搜不到什么有价值的东西方便学习,在这里方便初学者. 首先这个枚举属于UIViewAnimation.我们经常使用的函数 是 [UIView animateWithDuration: animations:^{} completion:^(BOOL finished) {}];和[UIView animateWithDuration: animations:^{

关于动画中帧的解释

帧:就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头. 一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等. 我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示.每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象.高的帧率可以得到更流畅.更逼真的动画.每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅. 关键帧——任何动画要表现运动或变化,至少前后要给出两个

iOS开发之动画中的时间

概述 在动画中,我们会指定动画的持续时间.例如 scaleAnimation.duration = self.config.appearDuration 那么这个时间是怎么定义的呢?是指的绝对时间吗? 层级时间结构 layer在屏幕上的显示位置是根据父layer的位置以及本身相对于父layer偏移定义的. 与此类似,每一个layer都有自己的time space,计算本地时间(local time)时候,需要根据父layer的时间以及一定的转换规则来计算出本地时间. 这个规则就是CAMediaT

Load Mental Ray in Maya 2015

In Maya 2015, we usually use mental ray to render our model, some new users may not see the mental ray item, that is because you have not loaded it yet. Go to Window -> Setting/Preferences -> Plug-in Manager Find Mayatomr.mll, select both Loaded and