Unity/그래픽스프로그래밍

0504 _ 라이트에 따른 쉐이더 // 노멀 및 여러맵 넣었을 때 차이점

minquu 2021. 5. 4. 16:36
반응형

라이트!

스탠다드 셰이더
예전부터 지원하던 스탠다드 셰이더, 기본적인 물리기반 셰이더이고
자동으로 계산을 해준다. 정도만 알고있으면 된다.

라이트에 따른 쉐이더

Lambert
스펙큘러가 없음, 구조체 SurfaceOutput 구조체 사용

BlinnPhong
스펙큘러 공식이 들어가 있음, 조금 더 스펙큘러 공식을 단순화 시킨것
스펙큘러 공식은 보는 각도에 따라 계산된 특정 색의 라이트 동그라미로 표시
구조체 SurfaceOutput 구조체 사용

Standard
물리기반 쉐이더, 주변환경을 반사해서 스펙큘러 구현
SurfaceOutputStandard / SurfaceOutputStandardSpecular 구조체로 사용



 

 

----

 

1. 램버트 사용 

 

 

 

램버트 일 경우 , 스펙큘러, 글로스니스를 지원하지 않는다.

 

 

2. 블린퐁 사용

 

 

블린퐁 경우에는 스펙큘러, 글로시니스 사용가능하다. 반사가 있으니깐 ! 

 

스펙큘러 추가해보기 

 

프로퍼티 뚫기, 컬러이기 때문에 컬러 (1,1,1,1) 로 받는다.

 

        _SpecColor ("Specular Color", Color) = (1,1,1,1)

 

 

 

★ 변수로 받으면 안된다.

 

 

3. Standard

기존했던거라 똑같음

 

 

---------------

 

StandardOutput

 

 

 

SurfaceOutputStandard

 

-----

 

노멀맵을 적용 했을 때

 

 

 

blinnPhong은 스펙큘러의 강도 ! 

Standard 는 러프니스의 값 ! 

(Lambert는 제외 // 빛 반사가 없으므로)

 

최대 일 때 

BlinnPhong // Gloss는 스펙큘러의 강도 

Standard // 러프니스의 값이 최대 일때 (매끈)

 

 

0일때 (최대 매트하게)

 

 

 

반응형