[gpu pro2]pre integrated skin shading

原创 2012年03月25日 12:30:49

一个讲皮肤渲染的paper,在gpu pro2和siggraph11的advance course会议上有提到。

先看个效果:TSD(texture space diffuse)是达到标杆效果的做法,但是效率比较低,右边是pre integrated做法,我们可以看出基本是同一级别的质量。

link:http://url.cn/VnHMEI



texture space diffuse


第一个把皮肤渲染的非常好的是《matrix》这个电影,比如smith哥,这里使用的就是在texture space做的blur来模拟scatering,效果很逼真。

顺着这个思路,随着时间的推移,开始有简单的gaussin blur/wrap lighting来模拟的(左数第三个)。

以及经典的nvidia的皮肤demo。

nv的这个可以说一直是标杆,但是就是需要做太多的blur,性能不够好。

但是这个过程一些积累成为本文的基石:

  • diffusion profile:这个描述光如何在skin这样的材质中扩散的,下面这个数据是从实际皮肤中扫描出来的:

  • texture space diffusion:把入射光存在texture space,然后做一些blur来模拟扩散
  • FastSubsurfaceScattering:就是用在uncharted2以及后来的皮肤技术,使用jittered kernel,对rgb用不同的weight
  • sssss(screen space subsurface scattering)是上面fast subsurface scattering的screenspace化
PreIntegratedSkinShading:
那么到本文,PreIntegratedSkin的优势就在于使用更高效的方法达到TextureSpaceDiffuse的效果。

这个算法主要分成3个部分:
  • 处理眉骨这种大的表面弯曲的情况(surface curvature)
  • 处理皮肤表面细节纹路的情况(small surface bump)
  • 阴影
处理surface curvature
处理surface curvature这里使用了类似BRDF的积分,然后得出(或者近似出)一个简化的function。

这个结果目前作者还没抽象出一个简化公式,所以就存到一个look up texture,计算时候通过sample这个texture来获得预计算的结果。



上面的公式和书中的差一项,分子的2sin(x/2)应该是2r*sin(x/x),同时D(theta)变成D(theta,r),这里r是曲率的意思。
这里曲率的计算:


处理bump normal:
这里由于diffusion profile在rgb上的不同,同样的normal分布在rgb下呈现不同的结果,图出来是这样:


这里需要这样理解,实际中是同样的皮肤表面的bump,在光照下,rgb三个颜色呈现上图中rendering这一column的结果,那么实际计算中我们为了简化和提升效率,就把用于rgb计算diffuse lighting的normal map做一个filter,然后用统一的计算公式来计算,这样也能达到同样的结果。
这里pre filter normal就是使用的diffuse profile,但是可以看到计算diffuse&specular lighting需要4张normal map这个就太费了,但是我们可以看到上图中red的normal map是最糊的,specular是最清晰的,那么我们可以做一个优化就是使用specular和red的normal map,然后插值出另外2个。

shadow。。。不太感兴趣,这部分不太具备通用性,略过



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Unity3d 屏幕空间人体皮肤知觉渲染&次表面散射Screen-Space Perceptual Rendering & Subsurface Scattering of Human Skin

想要人皮肤更加真实,人皮肤上的细节成了一个关键问题,包括褶皱、毛孔、毛囊,甚至是伤疤,这既可以造成我们的障碍,也可以帮助我们使皮肤看起来更真实。如果只是用普通的Lambert,甚至是PBR得到的效果也...
  • wolf96
  • wolf96
  • 2015-11-06 07:49
  • 4912

游戏中的角色渲染技术之皮肤篇

前言:游戏中的角色渲染技术随着近几年来硬件机能的增长已经被大范围地应用在了各类AAA大作中,本文会取一些游戏为例,分类概述游戏中的角色渲染技术。由于整个角色渲染的话题会比较长,这个主题会用两篇来阐述,...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

某些零食的作用

春节即将到来,如何用美味而又健康的零食招待来访的亲朋好友呢?以下是专家建议的1 5种健康的零食。    1、葵花子,养颜。    葵花子含有蛋白质、脂肪、多种维生素和矿物质,其中亚油酸的含量尤为丰富。...

毛发及眼球的渲染技术

前言 这是关于角色渲染技术的第二篇,前一篇关于皮肤的渲染方法可见这里。 实际上为了逼真地还原一个角色,除了渲染技术外,在很多游戏中还使用了动画、物理仿真等其他方面的技术...

最近用unity5弄的一些渲染

9月末。。。要找工作了,,压力山大。。。顺便求职(实习,明年五月左右)。。 邮箱:wolf_crixus@sina.cn              ...
  • wolf96
  • wolf96
  • 2015-09-23 12:52
  • 6186

[gpu pro2]pre integrated skin shading

一个讲皮肤渲染的paper,在gpu pro2和siggraph11的advance course会议上有提到。先看个效果:TSD(texture space diffuse)是达到标杆效果的做法,但...
  • ccanan
  • ccanan
  • 2012-03-25 12:30
  • 4678

VS2010使用Skin++

转载自http://blog.sina.com.cn/s/blog_5d23890b0100icjj.html。Skin++的使用一.使用皮肤将SkinPPWTL.lib 、skinppwtl.dll...

Gouraud Shading and Phong Shading

具体实验内容及源码请参考:[我的github](https://github.com/ruange/Gouraud-Shading-and-Phong-Shading)Introduction:In ...

PRO2-Day2

实训项目 //---------------------------------------               第2天 今日任务: 1.stm32处理器工程模板建立. 2.stm32处理器第...

Deferred Shading

Deferred Shading     Deferred Shading是现在比较流行实时渲染方式,这种渲染方式能把Geometry和Lighting之间的耦合解开,把Forward Shadin...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)