Unity 내장 라이팅 구조


지금까지 학습하였던 Standard Shader는 PBS(Physically Based Shader)인 물리 기반 쉐이더 라이트이기 때문에 모바일과 같은 저 사양 기기에서 구동하기에는 다소 무겁다.

따라서 PBS보다 상대적으로 품질은 떨어질 수 있지만 가벼운 다른 라이팅 구조들을 함께 살펴보겠다.

 

Standard ( 스탠다드 )

  • PBS
  • diffuse와 specular가 에너지 보존 법칙에 의해 보완관계를 지님
  • SurfaceOuputStandard / SurfaceOutputStandardSpecular 구조체
  • Specular의 칼라가 메탈릭 속성에 따라 자동적으로 결정됨

 

Lambert ( 램버트 )

  • Specular 공식 X
  • 빛에 의한 밝고 어두움만이 구현된 가벼운 라이트 구조
  • StandardOutput 구조체

 

Blinn Phong ( 블린 퐁 )

  • Lambert 공식에 가벼운 Specular 공식인 Blinn Phong 공식이 더해진 라이트 구조
  • SurfaceOutput 구조체 사용

 

  • SurfaceOutput 구조체
    • Specular : Specular의 넓이. 얼마나 많은 하이라이트가 나오는가. 수치가 높을수록 하이라이트가 작아짐.
    • Gloss : Specular의 강도
  • SurfaceOutputStandard / SurfaceOutputStandard

 

 

Lambert 라이팅

 

라이팅 함수 이름 / 구조체 변경

Specular는 구현할 수 없기 때문에 Specular와 Gloss는 사용할 수 없음.

 

 

 

Blinn Phong 라이팅

라이팅 함수 이름 / 구조체 변경

주의할 점은, _SpecColor는 코드 내에서 받으면 안되는 예약어라는 것이다.
Gloss는 0~1 사이의 값을 넣어야 하며 0에 가까울 수록 둔탁하고 1에 가까울 수록 매끄러운 재질을 나타낸다.

+ Recent posts