Skin Rendering

전체 글

(1)

Skin Rendering

Wanho Choi

(wanochoi.com)

(2)
(3)

Skin

Very

complicated structure

https://wtamu.edu/~cbaird/sq/2015/11/23/how-does-the-outer-layer-of-skin-cells-on-my-finger-detect-when-i-am-touching-an-object/ http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.226.4533&rep=rep1&type=pdf

(4)

Most Materials

They have

two main components.

Reflection =

specular reflection + diffuse reflection

https://blog.selfshadow.com/publications/s2015-shading-course/hoffman/s2015_pbs_physics_math_slides.pdf

view dependent

(5)

Subsurface Scattering (SSS)

Light goes beneath the skin surface,

scatters and gets partially absorbed, and then exits somewhere else.

Beneath the skin surface, the incoming light quickly becomes

diffuse as it scatters.

https://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf

incident light

surface reflection

(specular)

subsurface scattering

(=diffuse)

(6)

General Diffuse vis-a-vis SSS

https://eo-college.org/courses/echoes-in-space/lessons/geometry/topic/the-scattering-mechanisms/

(7)

BRDF

Bidirectional Reflectance Distribution Function

http://www.codinglabs.net/article_physically_based_rendering_cook_torrance.aspx

(8)

BSSRDF

Bidirectional Surface Scattering Reflectance Distribution Function

BRDF is a

special case of BSSRDF

(BRDF assumes light enters and exits at the

same point.)

(9)

Subsurface Scattering (SSS)

(10)

Comparison

https://slideplayer.com/slide/4491049/

(11)

Single vs Multiple Scattering

Single-layer scattering: dipole model (milk, marble, or ketchup, etc.)

Multi-layer scattering: multipole model (skin)

(12)

Multi-layer Skin Model

(13)

Skin Surface Reflectance

Direct reflection: about 6%

Fresnel reflection with the topmost oily layer

Reflects directly without being colored (

white specular color)

Not a perfect mirror-like reflection duet to the fine-scale roughness (

BRDF)

Kelemen/Szirmay-Kalos model > Blinn-Phong model

(14)

Kelemen/Szirmay-Katos Model

Specular surface reflectance model

Analytic BRDF

Approximation of Torrance/Sparrow model

The

Phong model fails to capture increased specularity at grazing angles.

(15)

Varying Specular Parameters

Difference is subtle but apparent

Two-channel map that specifies and .

m

ρ

s

(16)

Skin Subsurface Reflectance

The input light

exits the surface in a 3D neighborhood surrounding the point of entry.

Scattering: partially absorbed & acquiring color

Two or

three-layer model is enough

The

narrow scattering of the epidermis on top of the broad scattering dermis

Sometimes light travels completely through

thin regions such as ears.

(17)

SSS as Diffusion

For highly scattering media, the distribution of light loses tends to

isotropy.

It means that the entered light is randomly likely to end up coming out in

any direction.

This effectively makes the scattering sort of a "

blurring" function.

Therefore, the

subsurface scattering can be approximated as a diffusion phenomenon.

(18)

Simple Laser Pointer Experiment

Consider a flat and very thin surface in a dark room with a white

laser beam illuminating it.

We will see a glow

around the center point where the laser beam is striking the surface.

Light

disappears smoothly in proportion to the distance from the laser center.

It is same in all directions, so it can be described as

1D diffusion profile curve.

The profile is

color dependent: red light scatters much farther than green and blue.

(19)

Expansion to Skin

A very narrow patch of incoming light creates a larger, colored patch of outgoing light.

Every region on the surface needs to do this and all the overlapping,

colored patches sum to give a

translucent appearance.

https://tryingtobeananimator.wordpress.com/2017/03/20/subsurface-scattering/

=

(20)

BSSRDF Approximation

L(x

o

, ω

o

) = ∫

Ω

S(x

i

, ω

i

; x

o

, ω

o

) L(x

i

, ω

i

) (n

i

⋅ ω

i

) dω

i

L(x

o

, ω

o

) = ∫

Ω

R(∥x

diffusion profile

i

, − x

o

∥) L(x

i

, ω

i

) (n

i

⋅ ω

i

) dω

i

BRDF

(21)

How to Use Diffusion Profile

Collect all incoming light for each location.

-

Sum all incident lights ignoring the directions,

except for an N・L term for each light and Fresnel transmittance terms.)

- Only the

total amount of incoming light is important

Spread it around into neighboring locations based on the profile.

: equally in all directions

(22)

Analytic Formula for Diffusion Profile

Dipole model [Jensen et al. 2001]

Multipole model [Donner and Jensen 2005]

(23)

Analytic Formula for Diffusion Profile

Dipole model [Jensen et al. 2001]

Multipole model [Donner and Jensen 2005]

http://graphics.snu.ac.kr/class/graphics2011/materials/paper02_fast_skin.pdf

layer 1

layer 2

to satisfy the boundary condition,

we have to mirror that dipole!

(24)

Sum-of-Gaussians

Skin’s

diffusion profile as a sum of several Gaussians.

R(r) ≈ =

k

i=1

w

i

1

2πv

e

−r

2

/(2v)

https://developer.nvidia.com/gpugems/gpugems3/part-iii-rendering/chapter-14-advanced-techniques-realistic-real-time-skin

(25)

Six Gaussians for Skin

Using

six Gaussians allows accurate rendering with the three-layer skin model.

(26)

Texture Space Diffusion

Texture-space diffusion (several

blurred irradiance textures)

One texture is computed for each Gaussian function used in the diffusion profiles.

Therefore,

six off-screen blur textures

Convolution operation (=blur) to the texture

(27)

Texture Space Diffusion

(28)
(29)
(30)

UV Distortion Correction

Generally, skin surface is

not flat.

On curved surfaces,

distances in texture distances on the mesh

We compute a

stretch-correction texture that modulates the spacing of convolution.

Horizontal and vertical stretching usually differ significantly.

(31)

Comparison

(32)

Pre-Scatter Texturing

First perform all scattering computations

without any coloring.

Then diffuse color texture is

multiplied after scattering.

All

high-frequency texture detail is maintained

No color bleeding

However, the diffuse map

already has natural color bleeding

because it came from photographs of real skin

(33)

Comparison

pre-scattering

post-scattering

(34)

Modified Translucent Shadow Maps

For the

transmission through thin surface regions such as ears

Translucent shadow maps to compute depth through the surface

It

connects shadowed regions to locations on the light-facing surface

Multiple convolutions of irradiance are available by accessing the same textures computed

for local scattering.

(35)

Comparison

(36)

Reference

https://developer.nvidia.com/gpugems/gpugems3/part-iii-rendering/chapter-14-advanced-techniques-realistic-real-time-skin

https://therealmjp.github.io/posts/sss-intro/

https://computergraphics.stackexchange.com/questions/81/what-is-the-dipole-approximation-for-subsurface-scattering

https://www.ci.i.u-tokyo.ac.jp/~hachisuka/dirpole_tr_slides.pdf

https://slideplayer.com/slide/4491049/http://graphics.snu.ac.kr/class/graphics2011/materials/

paper02_fast_skin.pdf

http://graphics.snu.ac.kr/class/graphics2011/materials/paper02_fast_skin.pdf

https://www.evl.uic.edu/sjames/cs525/project3.html

수치

Updating...

참조

  1. https://wtamu.edu/~cbaird/sq/2015/11/23/how-does-the-outer-layer-of-skin-cells-on-my-finger-detect-when-i-am-touching-an-object/
  2. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.226.4533&rep=rep1&type=pdf
  3. https://blog.selfshadow.com/publications/s2015-shading-course/hoffman/s2015_pbs_physics_math_slides.pdf
  4. https://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf
  5. https://eo-college.org/courses/echoes-in-space/lessons/geometry/topic/the-scattering-mechanisms/
  6. http://www.codinglabs.net/article_physically_based_rendering_cook_torrance.aspx
  7. https://www.semanticscholar.org/paper/Diplomarbeit-Approximative-Real-time-Soft-Shadows-Jeschke/d0b94914a7399441f86264ca56f73d7541515b49/figure/3
  8. https://www.wikiwand.com/en/Bidirectional_scattering_distribution_function
  9. https://ko.m.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Skin_Subsurface_Scattering.jpg
  10. https://www.youtube.com/watch?v=1K9kQi9UZM0
  11. https://slideplayer.com/slide/4491049/
  12. https://link.springer.com/article/10.1186/s41074-018-0049-4
  13. http://courses.washington.edu/arch481/1.Tapestry%20Reader/4.Rendering/b.Scattering/0.default.html
  14. https://developer.nvidia.com/gpugems/gpugems3/part-iii-rendering/chapter-14-advanced-techniques-realistic-real-time-skin
  15. https://www.evl.uic.edu/sjames/cs525/project3.html
  16. https://marmoset.co/posts/basic-theory-of-physically-based-rendering/
  17. https://tryingtobeananimator.wordpress.com/2017/03/20/subsurface-scattering/
  18. http://graphics.snu.ac.kr/class/graphics2011/materials/paper02_fast_skin.pdf
  19. https://www.researchgate.net/figure/Dipole-in-an-electric-field-a-Sketch-of-an-electric-dipole-p-s-composed-of-two_fig2_313656479
  20. https://blog.selfshadow.com/publications/s2013-shading-course/martinez/s2013_pbs_osl_slides.pdf
  21. https://therealmjp.github.io/posts/sss-intro/
  22. https://www.pluralsight.com/blog/film-games/understanding-subsurface-scattering-capturing-appearance-translucent-materials
  23. https://developer.nvidia.com/gpugems/gpugems3/part-iii-rendering/chapter-14-advanced-techniques-realistic-real-time-skin
  24. https://computergraphics.stackexchange.com/questions/81/what-is-the-dipole-approximation-for-subsurface-scattering
  25. https://www.ci.i.u-tokyo.ac.jp/~hachisuka/dirpole_tr_slides.pdf
관련 주제 :