SlideShare a Scribd company logo
1 of 27
Download to read offline
Hair Animation by
Vertex Shader
Gregory Dongseok Kim
2016-04-25
2
Overview
■ Good shading models for hair
■ Structure of hair
■ Approach
■ Shader
3
Good Shading models for Hair
■ Using Scheuermann's hair shading model1
4
Yes, it was a joke. But,
■ It is cheap and very effective solution to describe hair specular
in real-time.
■ Furthermore, one of speculars can be used to simulate front
scattering.
■ It means that you just need to add rim light and trnasmission
effects to improve quality.
5
Honestly,
just use Hair Shader in Unreal Engine 4
6
Structure of Hair
■ Hair can be devided into 4 parts
– Front parts
– Middle parts
– Back parts
– Additional parts
■ Each parts have its own flow
– You can presume movement of hair by flow.
○
Most important thing is the root of hairs
7
Wait, is that Front? Not Side?
8
Yes, in terms of movement perspective...
■ Obviously, it can be treated as side parts or additional parts.
■ But those parts are on the body, so they move forward rather
than sideway.
– In real world, they also can move sideway, but when they move like
that, their whole shapes are spread along the body.
– Unfortunately, my approach cannot simulate it.
– So, I treat the movement of those parts to constrain to move
forward. Because...
9
Concept of My approach
■ Incoding movement data of each vertices to each vertex color
channels
– R: Amount of movement
– G: Left / Right collision
– B: Clumping group
– A: Front / Back collision
■ It means that I divided hairs to like this...
10
11
How to set values for amount of movement
■ I premised that the tip of each hairs
move more than root.
■ So, I set value of each vertices like
this
– Root part: 0.0
– Tip part: 1.0
– Rest of them
○
Gradually changed their value by its
relative position on UV coordinate
– Based on V position
12
How to set values for classifying each sides (1)
■ Classifying of Left/Right
– Insert crietrion plane
– If the X position of the vertex is
more left side than Plane's X
position, than
○
Value is 1.0
○ Else are 0.0
13
How to set values for classifying each sides (2)
■ Classifying of Front / Back
– Using same way as the method
to divide Left/Right
– Insert criterion Plane
– If the Y position of the vertex is
more forward than Plane's Y
position, than
○
Value is 0.0
○
Else are 1.0
14
■ Of course, I didn't use that kind of simple way
– Rays cast to criterion Plane's each sides normal directions
– Check whether rays intersect with vertices or not
– Classify which vertices are located in which side
■ But main idea can be simplified above statements.
■ Anyway, thease values will be combined with collision data
15
How to set values for collision
■ Check hair vertices are collided with collision mesh
– If the vertex is collided, meassure the distance between the vertex
and the face of collision mesh.
– Store that value as collision value.
■ Combine this value with side classifying value
– If collision value does not exist: set value to 0.5
– If collsion value exists: add {0.5 * (Distance Value/Average
Distance)}
16
Result of collision data (1)
■ Final collision meshes
– Yellow: Collision mesh
– Planes: Classifying sides
17
Result of collision data (2)
18
How to use collision data (1)
■ Collision data means
– Adding amount for normalized acceleration vector of each vertices
19
How to use collision data (2)
■ Decode collision data from (0.0 ~ 1.0) to (-1.0 ~ 1.0)
■ Every calculation were done under Local space of hair
■ Transform World space Acceleration vector to Local space
– Acceleration = Wind + Head movement
– Use acceleration vector after normalization
■ Add collision value with Acceleration vector of each axis
– Add Left/Right value with X axis
– Add Front/Back value with Y axis
■ Clamp result value to (-1.0 ~ 1.0)
■ Multiply strength of Acceleration vector
20
Shader
21
Shader – detail (1)
Decoding Collision data
22
Shader – detail (2)
Adding Acceleration vector
23
Shader – detail (3)
Multiplying Acceleration strength
24
Shader – detail (4)
Multiplying
Movement amount
with the result
25
Limitation
■ Move only Left/Right and Forward/Backward
– It cannot move Up/Down
○
There is no more vertex color channel
■ Not for long hair style such as pony tail
– For waving movements which preserves initial hair style
■ Cannot move far from initial skining pose
– Gives some offset values by vertex color value
26
Conclusion
■ Save movement data to Vertex color
– R: Amount of movement
– G: Left / Right collision
– B: Clumping group
– A: Front / Back collision
■ Combine collision value with Acceleration Vector
– Normalized Acceleration Vector
– In Local space
– Multiply strength of Acceleration Vector
– Filter final movement by Movement amount
27
Bibliography
■ Page 3
– Citation 1: Scheuermann, Thorsten. "Practical real-time hair
rendering and shading." ACM SIGGRAPH 2004 Sketches. ACM,
2004.

More Related Content

What's hot

Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...JP Lee
 
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR MaterialsAbalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR MaterialsPhuong Hoang Vu
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic Arts / DICE
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John HableNaughty Dog
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14AMD Developer Central
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Ki Hyunwoo
 
Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현kyuil choi
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기Madumpa Park
 
Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"
Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"
Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"Lviv Startup Club
 
【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019
【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019
【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019UnityTechnologiesJapan002
 
Hdr Meets Black And White 2
Hdr Meets Black And White 2 Hdr Meets Black And White 2
Hdr Meets Black And White 2 Francesco Carucci
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Takahiro Harada
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationGuerrilla
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lightingozlael ozlael
 

What's hot (20)

Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
 
Relic's FX System
Relic's FX SystemRelic's FX System
Relic's FX System
 
Real-time lightmap baking
Real-time lightmap bakingReal-time lightmap baking
Real-time lightmap baking
 
Ssao
SsaoSsao
Ssao
 
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR MaterialsAbalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현Ue4 에서의 환경변화 구현
Ue4 에서의 환경변화 구현
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
 
Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"
Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"
Mikhail Kyyashko "PBR (physically based rendering) for artists and programmers"
 
【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019
【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019
【Unite Tokyo 2019】Unityプログレッシブライトマッパー2019
 
Hdr Meets Black And White 2
Hdr Meets Black And White 2 Hdr Meets Black And White 2
Hdr Meets Black And White 2
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 

Viewers also liked

Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더동석 김
 
버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션동석 김
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기동석 김
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용JP Jung
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
Design patterns
Design patternsDesign patterns
Design patternsdf
 
Gdc2003 Will Wright
Gdc2003 Will WrightGdc2003 Will Wright
Gdc2003 Will Wrightgeoffhom
 
Los principios y valores
Los principios y valoresLos principios y valores
Los principios y valoresmhauro.anzola
 
Schedule stcm55 q_5
Schedule stcm55 q_5Schedule stcm55 q_5
Schedule stcm55 q_5Ouyauy Obt
 
Actionpay FINANCE: Innovations in online advertising for banks
Actionpay FINANCE: Innovations in online advertising for banksActionpay FINANCE: Innovations in online advertising for banks
Actionpay FINANCE: Innovations in online advertising for banksKamilla Kerimova
 
Informática Básica
Informática BásicaInformática Básica
Informática Básicajmatiaselim
 

Viewers also liked (18)

Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
Hair in Tomb Raider
Hair in Tomb RaiderHair in Tomb Raider
Hair in Tomb Raider
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Gdc2003 Will Wright
Gdc2003 Will WrightGdc2003 Will Wright
Gdc2003 Will Wright
 
Sopa de letras
Sopa de letrasSopa de letras
Sopa de letras
 
Los principios y valores
Los principios y valoresLos principios y valores
Los principios y valores
 
Schedule stcm55 q_5
Schedule stcm55 q_5Schedule stcm55 q_5
Schedule stcm55 q_5
 
1 ok
1 ok1 ok
1 ok
 
6ok
6ok6ok
6ok
 
Actionpay FINANCE: Innovations in online advertising for banks
Actionpay FINANCE: Innovations in online advertising for banksActionpay FINANCE: Innovations in online advertising for banks
Actionpay FINANCE: Innovations in online advertising for banks
 
6ok
6ok6ok
6ok
 
Informática Básica
Informática BásicaInformática Básica
Informática Básica
 

Similar to Hair animation by vertex shader

Unit 1 - Measurements & Vectors.pdf
Unit 1 - Measurements & Vectors.pdfUnit 1 - Measurements & Vectors.pdf
Unit 1 - Measurements & Vectors.pdfAlbert Martí
 
Trigonometry functions of general angles reference angles
Trigonometry functions of general angles reference anglesTrigonometry functions of general angles reference angles
Trigonometry functions of general angles reference anglesJessica Garcia
 
Surface modelling
Surface modellingSurface modelling
Surface modellingjntuhcej
 
Trigonometric Function of General Angles Lecture
Trigonometric Function of General Angles LectureTrigonometric Function of General Angles Lecture
Trigonometric Function of General Angles LectureFroyd Wess
 
3D transformation and viewing
3D transformation and viewing3D transformation and viewing
3D transformation and viewingYogita Jain
 
SURFACE MODELLING .pptx
SURFACE MODELLING .pptxSURFACE MODELLING .pptx
SURFACE MODELLING .pptxjntuhcej
 
Trigonometry functions of general angles reference angles
Trigonometry functions of general angles reference anglesTrigonometry functions of general angles reference angles
Trigonometry functions of general angles reference anglesJessica Garcia
 
6.3_AccelerationInclinedPlanes.pdf.com.ph
6.3_AccelerationInclinedPlanes.pdf.com.ph6.3_AccelerationInclinedPlanes.pdf.com.ph
6.3_AccelerationInclinedPlanes.pdf.com.phaabayon2210062
 
study of yaw and pitch control in quad copter
study  of yaw and pitch  control in quad copter study  of yaw and pitch  control in quad copter
study of yaw and pitch control in quad copter PranaliPatil76
 
vectorshonors in Physique Better titles and descriptions lead to more readers
vectorshonors in Physique Better titles and descriptions lead to more readersvectorshonors in Physique Better titles and descriptions lead to more readers
vectorshonors in Physique Better titles and descriptions lead to more readersDianaRosePesimo
 

Similar to Hair animation by vertex shader (17)

Unit 1 - Measurements & Vectors.pdf
Unit 1 - Measurements & Vectors.pdfUnit 1 - Measurements & Vectors.pdf
Unit 1 - Measurements & Vectors.pdf
 
Trigonometry functions of general angles reference angles
Trigonometry functions of general angles reference anglesTrigonometry functions of general angles reference angles
Trigonometry functions of general angles reference angles
 
Surface modelling
Surface modellingSurface modelling
Surface modelling
 
Lesson 2: Vectors
Lesson 2: VectorsLesson 2: Vectors
Lesson 2: Vectors
 
una01
una01una01
una01
 
Trigonometric Function of General Angles Lecture
Trigonometric Function of General Angles LectureTrigonometric Function of General Angles Lecture
Trigonometric Function of General Angles Lecture
 
3D transformation and viewing
3D transformation and viewing3D transformation and viewing
3D transformation and viewing
 
Physics details
Physics detailsPhysics details
Physics details
 
2 change
2 change2 change
2 change
 
SURFACE MODELLING .pptx
SURFACE MODELLING .pptxSURFACE MODELLING .pptx
SURFACE MODELLING .pptx
 
Trigonometry functions of general angles reference angles
Trigonometry functions of general angles reference anglesTrigonometry functions of general angles reference angles
Trigonometry functions of general angles reference angles
 
3.Lensometery.pptx
3.Lensometery.pptx3.Lensometery.pptx
3.Lensometery.pptx
 
6.3_AccelerationInclinedPlanes.pdf.com.ph
6.3_AccelerationInclinedPlanes.pdf.com.ph6.3_AccelerationInclinedPlanes.pdf.com.ph
6.3_AccelerationInclinedPlanes.pdf.com.ph
 
study of yaw and pitch control in quad copter
study  of yaw and pitch  control in quad copter study  of yaw and pitch  control in quad copter
study of yaw and pitch control in quad copter
 
vectorshonors.ppt
vectorshonors.pptvectorshonors.ppt
vectorshonors.ppt
 
vectorshonors in Physique Better titles and descriptions lead to more readers
vectorshonors in Physique Better titles and descriptions lead to more readersvectorshonors in Physique Better titles and descriptions lead to more readers
vectorshonors in Physique Better titles and descriptions lead to more readers
 
Vectors and scalars
Vectors and scalarsVectors and scalars
Vectors and scalars
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

Hair animation by vertex shader

  • 1. Hair Animation by Vertex Shader Gregory Dongseok Kim 2016-04-25
  • 2. 2 Overview ■ Good shading models for hair ■ Structure of hair ■ Approach ■ Shader
  • 3. 3 Good Shading models for Hair ■ Using Scheuermann's hair shading model1
  • 4. 4 Yes, it was a joke. But, ■ It is cheap and very effective solution to describe hair specular in real-time. ■ Furthermore, one of speculars can be used to simulate front scattering. ■ It means that you just need to add rim light and trnasmission effects to improve quality.
  • 5. 5 Honestly, just use Hair Shader in Unreal Engine 4
  • 6. 6 Structure of Hair ■ Hair can be devided into 4 parts – Front parts – Middle parts – Back parts – Additional parts ■ Each parts have its own flow – You can presume movement of hair by flow. ○ Most important thing is the root of hairs
  • 7. 7 Wait, is that Front? Not Side?
  • 8. 8 Yes, in terms of movement perspective... ■ Obviously, it can be treated as side parts or additional parts. ■ But those parts are on the body, so they move forward rather than sideway. – In real world, they also can move sideway, but when they move like that, their whole shapes are spread along the body. – Unfortunately, my approach cannot simulate it. – So, I treat the movement of those parts to constrain to move forward. Because...
  • 9. 9 Concept of My approach ■ Incoding movement data of each vertices to each vertex color channels – R: Amount of movement – G: Left / Right collision – B: Clumping group – A: Front / Back collision ■ It means that I divided hairs to like this...
  • 10. 10
  • 11. 11 How to set values for amount of movement ■ I premised that the tip of each hairs move more than root. ■ So, I set value of each vertices like this – Root part: 0.0 – Tip part: 1.0 – Rest of them ○ Gradually changed their value by its relative position on UV coordinate – Based on V position
  • 12. 12 How to set values for classifying each sides (1) ■ Classifying of Left/Right – Insert crietrion plane – If the X position of the vertex is more left side than Plane's X position, than ○ Value is 1.0 ○ Else are 0.0
  • 13. 13 How to set values for classifying each sides (2) ■ Classifying of Front / Back – Using same way as the method to divide Left/Right – Insert criterion Plane – If the Y position of the vertex is more forward than Plane's Y position, than ○ Value is 0.0 ○ Else are 1.0
  • 14. 14 ■ Of course, I didn't use that kind of simple way – Rays cast to criterion Plane's each sides normal directions – Check whether rays intersect with vertices or not – Classify which vertices are located in which side ■ But main idea can be simplified above statements. ■ Anyway, thease values will be combined with collision data
  • 15. 15 How to set values for collision ■ Check hair vertices are collided with collision mesh – If the vertex is collided, meassure the distance between the vertex and the face of collision mesh. – Store that value as collision value. ■ Combine this value with side classifying value – If collision value does not exist: set value to 0.5 – If collsion value exists: add {0.5 * (Distance Value/Average Distance)}
  • 16. 16 Result of collision data (1) ■ Final collision meshes – Yellow: Collision mesh – Planes: Classifying sides
  • 18. 18 How to use collision data (1) ■ Collision data means – Adding amount for normalized acceleration vector of each vertices
  • 19. 19 How to use collision data (2) ■ Decode collision data from (0.0 ~ 1.0) to (-1.0 ~ 1.0) ■ Every calculation were done under Local space of hair ■ Transform World space Acceleration vector to Local space – Acceleration = Wind + Head movement – Use acceleration vector after normalization ■ Add collision value with Acceleration vector of each axis – Add Left/Right value with X axis – Add Front/Back value with Y axis ■ Clamp result value to (-1.0 ~ 1.0) ■ Multiply strength of Acceleration vector
  • 21. 21 Shader – detail (1) Decoding Collision data
  • 22. 22 Shader – detail (2) Adding Acceleration vector
  • 23. 23 Shader – detail (3) Multiplying Acceleration strength
  • 24. 24 Shader – detail (4) Multiplying Movement amount with the result
  • 25. 25 Limitation ■ Move only Left/Right and Forward/Backward – It cannot move Up/Down ○ There is no more vertex color channel ■ Not for long hair style such as pony tail – For waving movements which preserves initial hair style ■ Cannot move far from initial skining pose – Gives some offset values by vertex color value
  • 26. 26 Conclusion ■ Save movement data to Vertex color – R: Amount of movement – G: Left / Right collision – B: Clumping group – A: Front / Back collision ■ Combine collision value with Acceleration Vector – Normalized Acceleration Vector – In Local space – Multiply strength of Acceleration Vector – Filter final movement by Movement amount
  • 27. 27 Bibliography ■ Page 3 – Citation 1: Scheuermann, Thorsten. "Practical real-time hair rendering and shading." ACM SIGGRAPH 2004 Sketches. ACM, 2004.