请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 6628|回复: 20

随便撸了个皮肤 [复制链接]

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2007-6-11
积分
30101
发表于 2013-10-10 20:15:09 |显示全部楼层
目前的所有能摸到的开源渲染器的代码,包括PBRTV2,Mitsuba,还是blender Cycles,SSS部分都还是沿用的2001年文章的Dipole办法,都是把散射的材质当作无限厚的均质材质来近似,之后最多用一下Grosjean基来保留高频的细节,事实上对于人类皮肤来说还是需要基于光谱的数据,最起码分两层(表皮层0.25mm,真皮层当作无限厚)散射,再用Kubelka–Munk实现多层迭代合成,结果才能真正的PBR。
RPS18倒是实现了“Photon Beam Diffusion: A Hybrid Monte Carlo Method for Subsurface Scattering”,还没拿到测试的版本。目前所有看到的电影片子,SSS都只是简单的加和乘,靠后期来撸结果,以Shader Writer的观点看实在是蛋疼。

在RSL代码中实现了"A Spectral BSSRDF for Shading Human Skin"一文中的光谱级别的散射计算,只计算12个位置(382 418 454 490 526 562 598 634 670 706 742 778nm),这样把渲染器当作一个散射器来用,这个时候sigma_a和\sigma_s'就不再是RGB了,而是一组Band,这样散射4次,然后和CIE 1931 CMF函数卷积成XYZ,再弄成RGB,效率实在觉得太低。抽空得在Mitsuba中实现Multipole,真实度应该可以再上一个台阶了。






OpenGPU主力站点
http://www.opengpu.org/

个人博客
http://jedimaster.cnblogs.com/

个人微博
http://weibo.com/u/2348269374

友情提示

Rank: 21Rank: 21Rank: 21Rank: 21Rank: 21Rank: 21

注册时间
2013-4-13
积分
8102
发表于 2013-10-10 23:25:05 |显示全部楼层
看起来很给力

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2013-6-3
积分
216
发表于 2013-10-11 01:27:57 |显示全部楼层
好逼真的白人皮肤,给力

使用道具 举报

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

注册时间
2011-2-18
积分
13414
发表于 2013-10-11 09:31:21 |显示全部楼层
感觉对sss已经有些理解了,看了LZ的文章,又要跪了,要好好学习了。

使用道具 举报

Rank: 13Rank: 13Rank: 13Rank: 13

注册时间
2011-5-7
积分
1816
发表于 2013-10-11 10:28:08 |显示全部楼层

使用道具 举报

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

注册时间
2011-2-18
积分
13414
发表于 2013-10-11 11:56:13 |显示全部楼层
敢问撸主mental ray C/C++ shader有什么教程没?

使用道具 举报

Rank: 12Rank: 12Rank: 12

注册时间
2013-7-23
积分
535
发表于 2013-10-11 14:13:53 |显示全部楼层
楼主,能不能分享一下这方面的资料呢,我现在也在弄这方面的东西,谢谢

使用道具 举报

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2007-6-11
积分
30101
发表于 2013-10-11 17:16:55 |显示全部楼层
zhhispig 发表于 2013-10-11 11:56
敢问撸主mental ray C/C++ shader有什么教程没?

附带的文档就是全套的教程,哪怕翻译的书也都是从文档翻译过去的,所以直接看文档和看范例就行了。

使用道具 举报

版主

RenderGuy

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

注册时间
2010-11-4
积分
5916
发表于 2013-10-11 17:58:39 |显示全部楼层
不明觉厉

使用道具 举报

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2009-3-31
积分
14467
发表于 2013-10-11 18:42:48 |显示全部楼层
我正打算做个realtime的近似

使用道具 举报

Rank: 13Rank: 13Rank: 13Rank: 13

注册时间
2011-11-29
积分
1011
发表于 2013-10-13 23:13:09 |显示全部楼层
楼主用的是3dlight的自定义shader吗?

使用道具 举报

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

注册时间
2010-3-27
积分
6146
发表于 2013-10-14 20:34:40 |显示全部楼层
学习下!学习下!

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2013-7-25
积分
350
发表于 2013-10-18 14:01:29 |显示全部楼层
yuanxiaoyan 发表于 2013-10-11 14:13
楼主,能不能分享一下这方面的资料呢,我现在也在弄这方面的东西,谢谢

你的项目还没结束么?

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2013-7-25
积分
350
发表于 2013-10-18 14:05:52 |显示全部楼层
楼主,你说的这种方法有什么相关的paper分享么?我现在看到的paper确实跟你说的一样,SSS就是用不同权重高斯函数加和来近似,看了好几篇paper,基本方法都是这样,后面就是使用的BRDF不一样

使用道具 举报

Rank: 12Rank: 12Rank: 12

注册时间
2013-7-23
积分
535
发表于 2013-10-18 14:48:05 |显示全部楼层
leemo 发表于 2013-10-18 14:01
你的项目还没结束么?

我做了,可是效果不是很好,呵呵

使用道具 举报

Rank: 5Rank: 5

注册时间
2013-10-12
积分
61
发表于 2013-10-18 15:08:11 |显示全部楼层
学习学习

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2013-7-25
积分
350
发表于 2013-10-18 15:44:59 |显示全部楼层
yuanxiaoyan 发表于 2013-10-18 14:48
我做了,可是效果不是很好,呵呵

你现在都实现了哪些算法了?

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2015-6-30
积分
250
发表于 2016-7-18 18:24:18 |显示全部楼层
楼主厉害,我就是上次在知乎上私信打扰你的人,潜水了至少一年了,我来露露头。

使用道具 举报

Rank: 4

注册时间
2016-7-14
积分
27
发表于 2016-7-18 21:19:01 |显示全部楼层
厉害啊楼主!

使用道具 举报

Rank: 13Rank: 13Rank: 13Rank: 13

注册时间
2014-3-17
积分
1102
发表于 2016-8-18 15:10:44 |显示全部楼层
楼主腻害!之前也做过皮肤,效果比较粗糙,实现效果和论文结果不一样。

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2011-5-24
积分
265
发表于 2018-1-13 01:08:57 |显示全部楼层
有附件文档?

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2018-1-22 14:30 , Processed in 0.202132 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部