[Unity]셰이더 및 물리 기반 셰이딩

Inhwan98·2023년 3월 30일
0

Unity끄적

목록 보기
8/8

Unity 셰이더의 개요

셰이더는 렌더링할 때 픽셀의 농담, 색조, 명암을 결정하는 프로그래밍 방식을 말한다.

쉽게 풀어쓴다면 화면에 텍스처를 표현할 때 재질감 또는 효과를 표현하는 기능이다.
셰이더 프로그래밍은 DirectX, OpenGl에 따라 서로 다른 언어로 구현되고 3D 그래픽스의 이론적인 배경을 많이 알아야 할 정도로 깊이 있는 지식을 요구하는 분야이기도 하다.

유니티는 손쉽게 사용할 수 있는 내장 셰이더(Built in Shader)를 제공한다.

특히 유니티 5에서 처음 선보인 물리 기반 셰이딩(PBS, Phyically-Based Shading)은 물체가 가진 고유의 특성에 맞게 재질을 표현하는 것으로, 현실 세계에 존재하는 돌, 나무, 유리, 플라스틱, 금속 등과 같은 재질감을 하나의 셰이더에서 표현할 수 있게설계돼 있다.

유니티 기본 셰이더인 Standard는 물리 기반 셰이더로서 다음 차트는 물리 기반 셰이더의 속성값에 다른 변화 또는 차이점을 표시한 것이다.

유니티의 기본 셰이더인 Standard 셰이더는 물리 기반 셰이딩을 위해 다양한 옵션을 제공한다.
이 가운데 몇가지 중요한 머티리얼 파라미터는 다음과 같다.

렌더링 모드

렌더링 모드는 Qpaque(불투명), Cutout( 그물망 표현), Fade(홀로그램 효과), Transparent(투명)의 네 가지 설정을 통해 다양한 재질감을 표현할 수 있다.

  1. Opaque : 기본값으로 불투명한 텍스처를 표현하는 옵션이다. 투명한 부분이 전혀 없는 Solid 객체에 적합
  2. Cutout : 불투명한 부분과 투명한 부분을 동시에 표현하는 옵션이다. 주로 풀, 그물망 등을 표현할 때 적합하다.
  3. Fade : 투명 속성값을 가진 객체를 페이드 아웃시키는 옵션으로, 페이드 인/아웃을 애니메이션 처리할 수 있다. 불투명한 객체를 부분적으로 페이드 아웃시킬 수 있어 홀로그램(Hologram)효과를 구현할 수 있다.
  4. Transparent : 투명한 플라스틱 또는 유리와 같은 재질을 표현하는 옵션이다.

알베도

알베도(Albedo)는 빛을 반사하는 정도를 말하며, 반사율이라고 한다. 유니티 5부터 도입된 물리 기반 셰이딩을 구현하기 위해 추가된 텍스처다. 즉, 현실 세계에 있는 모든 물체는 각각 다른 빛 반사율을 가진 것에서 착안했다. 일반적으로 가장 기본이 되는 텍스처를 연결하는 속성이다.

메탈릭

메탈릭은 객체 표면에 금속의 재질을 표현하기 위한 텍스처다. 이 텍스처 슬롯 옆에 있는 슬라이드 값이 1에 가까워질수록 금속 재질에 가까워지는 특성이 있다.

노멀 맵

표면의 세밀한 입체감이나 질감을 표현하기 위한 텍스처의 일종으로 3D 모델링으로 많은 폴리곤을 소모하지 않고 같은 효과를 낼 수 있다. 노멀 맵 텍스처 슬롯의 오른쪽에 있는 속성값이 커질수록 거친 음영 효과를 낸다.

하이트 맵

하이트 맵(Height Map)은 텍스처로 높낮이를 표현하는 것으로, 노멀 맵과 비슷한 기능을 하지만, 좀 더 돌출시켜 뒤에 있는 사물을 가리키는(Occlusion) 효과를 낼 수 있다. 텍스처가 연결되면 슬라이더가 표시되고 돌출되는 높이를 설정할 수 있다.

오클루전

오클루전(Occlusion)은 흑백의 텍스처로 간접조명에 의해 생기는 명암을 더욱 뚜렷이 표시해 사물의 입체감과 깊이감을 살리는 데 사용한다. 오클루전 맵에 사용할 텍스처는 일반적으로 3D 모델링 툴 또는 서드파티 툴에서 추출한다.

이미션

이미션(Emission)은 스스로 빛을 방출하는 속성을 말한다. 속성값을 변경하면 객체의 표면에서 방출되는 빛의 강도와 빛의 색상을 설정할 수 있는 항목이 나타난다. 또한 하단에 전역 조명에 반영하기 위한 옵션이 나타난다.

디테일 마스크

디테일 마스크(Detail Mask)는 Secondary Maps에 적용할 마스크를 설정하는 텍스처 슬롯이다. 특정 부분만 좀 더 세부적인 텍스처를 표현할 때 사용한다.

*Standard 셰이더 세부 정보
https://docs.unity3d.com/kr/current/Manual/shader-StandardShader.html


서적 참고 : 절대강좌! 유니티 2021

profile
코딩마스터

0개의 댓글