如何加强角色渲染的真实感(self shadow + subsurface scattering + rim lighting)
2011-06-22 18:24
344 查看
最近一直在玩street fighter IV,被其夸张的角色建模、华丽的动作和漂亮的油画效果所震撼。里面的角色,在对手跳起或蹲下时,自己的头部会一直注视着对手;近身时,如果一方发出必杀技,另一方的面部将作出恐怖和惊吓的表情。这些许细节,将角色的个性表现得淋漓尽致。值得一提的是,头部注视对手的效果,2D格斗的年代,早在SNK的《世界英雄》里已经实现,虽然表现力以现在的眼光来看,确实有点粗糙,但足以一窥日本人在细节上的重视程度。
不过,真正让我惊艳的,还是bio5。日本人对于各种高端图形技术已经运用得相当成熟,整部游戏,完全的实时渲染,让人感受到一部大片的视觉享受。其对技术的熟练程度,当吾辈还在摸索shadowmap精度问题,为到底是psm还是vsm或是csm好争执的时候,他们早已可以将这些技术整合完成,并已经用于艺术表现。
传统的局部光照diffuse + specular, 效果比较单一,不受周围环境影响,给人的感受就是,单个物体看着还行,复杂的场景渲染就会觉得有点假。真实世界中的全局光照,是不会出现LdotN的背面那么黑的情况。因为大量的光线在散射后,基本上不会出现“绝对黑”,仅仅一个ambient是无法模拟出来的,这也是为什么各种GI渲染的效果如此逼真的原因。
大致地总结了一下,为了表现更生动,需要重点关注的是人物头部,以及光照渲染,其他的可参照现有技术:
角色头部相关技术
-------------------------
1. 丰富的面部表情,通过morph网格变形实现,需要做一个编辑器,供美术调整面部顶点,并记录下来,供后期VS混合时使用。
2. 活动的头部,通过控制颈部的骨骼,限制一定的活动范围,达到“注视”目标的效果。(国外的游戏很早就开始关注的到这个细节,特别是一些恐怖和解谜的游戏,可怜我国的单机游戏,血狮做完就直接大跃进到MMO)
3. 活动的眼球, 眨动的眼皮。WOW的实现是,眼眶是固定的模型,眼睛是一个片,可以左中右三方向随机固定运动,至于眨眼,只是随机时间内短暂出现一个皮肤色的片,暂时挡住眼球部位,实现瞬间的眨眼效果。这样的细节程度,可以满足WOW这种近境渲染不多的游戏;对于生化五这种注重人物表现的游戏,通常的实现应该是,眼眶的顶点可活动,随时时间播放“合拢”动画,达到眨眼效果,也可以实现各种“瞪眼”和“眯眼”的效果。而眼球,一个半圆的球面,通过一根骨骼控制,同头部实现。
光照相关技术
-------------------------
1. self shadow,众多shadow map,我选择的是vsm,它在实现self shadow的效果中表现良好,一定程度模拟出soft shadow的效果,部分精度、走样和漏光都可以解决,通过淡化阴影,效果不错。
2. 3S(subsurface scattering),次表面散射是指光线照射到物体后,进入物体内部,经过在物体内的散射从物体表面的其他顶点/像素离开物体的现象。在透明/半透明的材质上,这种效果比较明显,比如说是皮肤,玉等等。怎么理解?请把手张开,挡住太阳,然后观察这只手。可以说这种效果是比较难以模拟的,在没有复杂的预计算前提下,很难达到接近物理真实的。这里通过在ps中拿到已经projection后的z,即可以简单的理解为散射的一个参数,通过一些非物理的计算,控制住其散射的比例,以达到柔和的效果。
3. rim lighting,皮肤边缘上的汗毛和毛孔能捕捉光线,当光源正对着摄像机时,你可以观察到这种效果。这里可以通过1 - VdotN来达到这个目的,为了得到更好的边缘,最好将oneMinusVdotN再乘以自己一次。是的,因为是VdotN,这种边缘模拟实现只在高镶嵌的模型上效果最好,对于低模,相对效果要差一点。
不过,真正让我惊艳的,还是bio5。日本人对于各种高端图形技术已经运用得相当成熟,整部游戏,完全的实时渲染,让人感受到一部大片的视觉享受。其对技术的熟练程度,当吾辈还在摸索shadowmap精度问题,为到底是psm还是vsm或是csm好争执的时候,他们早已可以将这些技术整合完成,并已经用于艺术表现。
传统的局部光照diffuse + specular, 效果比较单一,不受周围环境影响,给人的感受就是,单个物体看着还行,复杂的场景渲染就会觉得有点假。真实世界中的全局光照,是不会出现LdotN的背面那么黑的情况。因为大量的光线在散射后,基本上不会出现“绝对黑”,仅仅一个ambient是无法模拟出来的,这也是为什么各种GI渲染的效果如此逼真的原因。
大致地总结了一下,为了表现更生动,需要重点关注的是人物头部,以及光照渲染,其他的可参照现有技术:
角色头部相关技术
-------------------------
1. 丰富的面部表情,通过morph网格变形实现,需要做一个编辑器,供美术调整面部顶点,并记录下来,供后期VS混合时使用。
2. 活动的头部,通过控制颈部的骨骼,限制一定的活动范围,达到“注视”目标的效果。(国外的游戏很早就开始关注的到这个细节,特别是一些恐怖和解谜的游戏,可怜我国的单机游戏,血狮做完就直接大跃进到MMO)
3. 活动的眼球, 眨动的眼皮。WOW的实现是,眼眶是固定的模型,眼睛是一个片,可以左中右三方向随机固定运动,至于眨眼,只是随机时间内短暂出现一个皮肤色的片,暂时挡住眼球部位,实现瞬间的眨眼效果。这样的细节程度,可以满足WOW这种近境渲染不多的游戏;对于生化五这种注重人物表现的游戏,通常的实现应该是,眼眶的顶点可活动,随时时间播放“合拢”动画,达到眨眼效果,也可以实现各种“瞪眼”和“眯眼”的效果。而眼球,一个半圆的球面,通过一根骨骼控制,同头部实现。
光照相关技术
-------------------------
1. self shadow,众多shadow map,我选择的是vsm,它在实现self shadow的效果中表现良好,一定程度模拟出soft shadow的效果,部分精度、走样和漏光都可以解决,通过淡化阴影,效果不错。
2. 3S(subsurface scattering),次表面散射是指光线照射到物体后,进入物体内部,经过在物体内的散射从物体表面的其他顶点/像素离开物体的现象。在透明/半透明的材质上,这种效果比较明显,比如说是皮肤,玉等等。怎么理解?请把手张开,挡住太阳,然后观察这只手。可以说这种效果是比较难以模拟的,在没有复杂的预计算前提下,很难达到接近物理真实的。这里通过在ps中拿到已经projection后的z,即可以简单的理解为散射的一个参数,通过一些非物理的计算,控制住其散射的比例,以达到柔和的效果。
3. rim lighting,皮肤边缘上的汗毛和毛孔能捕捉光线,当光源正对着摄像机时,你可以观察到这种效果。这里可以通过1 - VdotN来达到这个目的,为了得到更好的边缘,最好将oneMinusVdotN再乘以自己一次。是的,因为是VdotN,这种边缘模拟实现只在高镶嵌的模型上效果最好,对于低模,相对效果要差一点。
相关文章推荐
- 如何加强角色渲染的真实感(self shadow + subsurface scattering + rim lighting)
- [置顶] Unity3d 屏幕空间人体皮肤知觉渲染&次表面散射Screen-Space Perceptual Rendering & Subsurface Scattering of Human Skin
- Unity3d 屏幕空间人体皮肤知觉渲染&次表面散射Screen-Space Perceptual Rendering & Subsurface Scattering of Human Skin
- 次表面散射(SubSurface Scattering) Shader 【转】
- 实现Subsurface Scattering效果(Subsurface Scattering shader by InvalidPointer : Half-Lambert + Fresnel Term)
- Fast Realtime Subsurface Scattering Skin Rendering
- 次表面散射(SubSurface Scattering) Shader
- Practise Skin Sub Surface Scattering (SSS) Effect In RenderMan Production
- Unity3d shader之次表面散射(Subsurface Scattering)
- Subsurface Scattering in mental ray
- 次表面散射Subsurface Scattering(SSS)
- Realtime Subsurface Scattering Skin Rendering On the GPU 视频
- Unity3d shader之次表面散射(Subsurface Scattering)
- Fast Subsurface Scattering
- Fast Realtime Subsurface Scattering Skin Rendering
- 卡通渲染进阶 = toonlighting + outline + rimlighting + hair specular
- Realtime Subsurface Scattering Skin Rendering On the GPU 演示视频
- Subsurface Scattering(SSS,次表面散射)介绍
- Q134:PBRT-V3,次表面散射(Subsurface Scattering)(15.5章节)
- 如何将基于角色的安全性用于企业服务