본문 바로가기
언리얼/Shader Study

06. 재질의 기본 이해와 쉐이더 제작

by witn331ss 2023. 5. 30.

 

언리얼에서 제공하는 라이트 방식이 두가지다 (4기준 / skylight 기준)

 

하나는 상황을 캡쳐를 해서 (카메라 기준) 보여주는 방식이 있고

내가 지정한 큐브맵을 따로 넣어주는 방법이 있다.

 

Skylight 가 무버블일때랑 스테이블일때랑 AO가 적용받는 방식이 좀 다르다.

 

 

 

----

 

 

또 리플렉션 캡쳐라는게 있는데 이게 뭐냐면

 

특정 이미지나 특정 라이트 값을 캡쳐를 해서 모델에 전사를 한다.

스태틱 레이트레이싱과 비슷한가? 싶다

 

 

얘도 비슷하게 특정 상황을 캡쳐를 해서 전사를 하거나

혹은 내가 HDRI를 끌어와서 이거 기준으로 해달라고 할 수 있다.

 

무작정 넣어보면 리플렉션 캡처를 다시 빌드해야 한다고 나온다.

 

이 씬 같은 경우는 라이트캡스가 구워져있는 scene 이기 때문에

기본적으로 라이트맵이 들어가있고, 라이트 매스랑 전혀 상관없이

리플렉션 캡쳐의 영역이 있는데 이 영역을 지정을 해서 이 영역에 들어오면 내가 지정한 리플렉션을 적용한다라고 생각하면 된다.

 

빌드에서 리플렉션 캡쳐 부분만 누르면 적용이 된다.

 

가령 게임같은 곳에서 리플렉션 캡쳐를 여러개 배치를 한다고 했을 때

빌드를 해주지 않으면 캐시로 저장이 되지 않아서 적용이 되지 않으니 꼭 해주도록 하자.

 

-

 

 

Matellic 

텍스쳐 베이스로 생각하자면 흰색에 가까울 수록 메탈 / 어두울수록 메탈이 아니다.

 

텍스쳐 베이스는 일정 부분만 수정할때는 조금 난항이 생긴다 (또 마스크를 만들어서 바꾼다던가, 섭스로 다시 가져와서 한다던가 등)

 

메탈릭이 들어가면 난반사의 색이 어두워진다

diffuse는 반사지만 mateliic은 빛을 머금고 뱉는거라서 계산식이 좀 다르다.

 

메탈이 아닌이상 메탈릭을 쓰는걸 조심하라는 얘기

 

메탈이 어두운게 신경쓰인다면 간접광 세팅을 바꿔보거나

albedo에서 메탈 영역을 조금 더 밝게 해보는 것도 방법이다.

 

아니면 AO에서 보는 방법도 있겠다.

 

메탈 재질과 비메탈 재질의 굴절률은 일반적으로 많이 차이가 난다.

 

 

Specular

 

비금속 표면에 광택을 조절한다고 생각하면 된다.

정반사의 범위가 늘어나고 강도가 쌔진다

 

물리를 뒤틀어서 나와야 할 때 가끔 사용한다.

 

난반사를 죽이면서 강해지니 그걸 생각해둬야한다.

(빛의 총량이나 에너지 보존 법칙이랑 좀 부딫히고 그런다.)

 

 

Anisotropy

 

비동방성에 따라서 스페큘러가 생성되게 만들어준다.

탄젠트에 원드노말을 집어넣어서 만들 수 있다.

 

 

Tangent

표면공간도

 

거의 사용할 일이 없을 것이다.

 

 

World position offset

 

보통 효과같은거 낼때나 머리카락이 흔들리는 정도 낼때 사용할 수 있는것

폴리곤이 월드 스페이스 공간에서 월드기준으로 각 버텍스에 오프셋을 줄 수 있다.

 

전체에 오프셋 값을 올려주면 커질것이고, 줄여주면 작아질 것이다.

 

기본적으로 매쉬 단위라고 생각하면 될 것이다.

 

방향이 아니라 사이즈를 키울 것이면 vertex normal으로 조절해줄 수 있겠다

 

 

해석하자면 각 버텍스가 자기가 보고있는 방향으로 곱해진다라는 뜻인데

 

이런식으로 효과를 주는건 싸게 먹히기에 적절히 사용해주면 좋을 것이다.

(맞았을때나 디버프 걸렸을때 등으로 잠깐 사용하는 애니메틱 말이다)

 

 

 

Pixel depth offset

 

Pixel Depth Offset은 렌더링된 픽셀의 깊이 값을 조정하여 픽셀을 카메라로부터 앞이나 뒤로 이동시킵니다. 이를 통해 픽셀의 높이를 조정하고, 객체 간의 깊이 관계를 변경하여 시각적인 효과를 부여할 수 있습니다.

Pixel Depth Offset은 주로 다음과 같은 상황에서 사용됩니다:

  • 셰도우 맵(Shadow Map) 렌더링: 셰도우 맵을 사용하여 그림자를 투영할 때, 객체의 표면을 약간 카메라로부터 멀리 이동시켜 그림자 표현을 개선할 수 있습니다.
  • 특수한 효과 구현: 렌더링 중에 객체의 표면을 카메라 방향으로 미세하게 이동시킴으로써, 특수한 효과를 구현할 수 있습니다. 예를 들어, 물 표면의 파동 효과나 구름의 움직임 등을 시뮬레이션할 수 있습니다.

Pixel Depth Offset은 머티리얼(Material) 설정이나 쉐이더(Shader) 그래프에서 사용될 수 있습니다. 사용자는 해당 픽셀에 대한 깊이 오프셋 값을 계산하고 적용하는 방식을 정의하여 픽셀의 위치를 조정할 수 있습니다.

 

마이너스 한다고 해도 매쉬가 나오진 않는다.

연산이 가볍진 않음

 

 

Opacity / Opacity Mask

 

투명도 / 1비트 알파로 아예 보이는거랑 안보이는걸 따서 사용할때 쓰는 것

 

 

Tessellation Multiplier

 

매쉬를 쪼개주는 기능

보통 터레인같은 것을 디테일하게 만들어줄때 사용하는 것

 

고사양 환경에서 사용된다

 

 

Shading Model

 

쉐이딩 모델을 바꿀 수 있게끔 만들어주는 것