유니티/유니티 기타

[유니티 기타] 레거시 셰이더(Legacy Shaders)

코더 제로 2022. 7. 27. 18:21
728x90
반응형

1. 레거시 셰이더

1. 1 노멀 셰이더군(Normal Shader Family)

 

이 셰이더는 Unity 기본 셰이더입니다.

어디에도 특화되어 있지 않으므로, 대부분의 불투명한 오브젝트에 적합합니다.

오브젝트가 투명하거나, 발광하기 원하는 경우에는 적합하지 않습니다.

 

 

1.1.1 버텍스 릿(Vertex-Lit)

 

 

 

1.1.1.1 버텍스 릿 프로퍼티


셰이더는 가장 간단한 셰이더 중 하나인 Vertex-Lit 입니다. 

이 셰이더에 비추는 모든 광원은 싱글 패스에 렌더링되고 버텍스에서만 계산됩니다.

셰이더는 버텍스 릿이므로 광원 쿠키, 노멀 매핑 또는 섀도우 등의 픽셀 기반 렌더링 효과를 표시하지 않습니다. 

또한 모델의 테셀레이션에도 훨씬 더 민감합니다. 

이 셰이더를 사용하여 점 광원을 큐브에 매우 가까이 두면 광원이 코너에서만 계산됩니다. 

픽셀 릿 셰이더는 테셀레이션에 관계 없이 멋진 둥근 하이라이트를 생성하는 데 훨씬 더 효과적입니다. 

이 효과를 원하는 경우 픽셀 릿 셰이더를 사용하거나 오브젝트의 테셀레이션을 증가시키는 방법을 고려해볼 수 있습니다.

 

 

1.1.2 디퓨즈(Diffuse)

 

 

 

1.1.2.1 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.1.3 스페큘러(Specular)

 

 

 

1.1.3.1 스페큘러 프로퍼티

 

스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.1.4 범프 디퓨즈(Bumped Diffuse)

 

 

 

1.1.4.1 노멀 맵 프로퍼티

 

이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 


노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 


기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.1.4.1 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.1.5 범프 스페큘러(Bumped Specular)

 

 

 

1.1.5.1 노멀 맵 프로퍼티

 

이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 

범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.1.5.2 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.1.6 패럴랙스 디퓨즈(Parallax Diffuse)

 

 

 

1.1.6.1 패럴랙스 노멀 맵 프로퍼티

 

패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 

높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 

알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

1.1.6.2 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.1.7 패럴랙스 범프 스페큘러(Parallax Bumped Specular)

 

 

 

1.1.7.1 패럴랙스 노멀 맵 프로퍼티

 

패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 

높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 

알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

 

1.1.7.2 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.1.8 데칼(Decal)

 

 

 

1.1.8.1 데칼(Decal) 프로퍼티


이 셰이더는 버텍스 릿 셰이더의 변형입니다. 

빛나는 모든 광원이 이 셰이더에 의해 버텍스 광원으로 렌더링됩니다. 

이 셰이더는 메인 텍스처 이외에 보조 텍스처를 사용하여 추가적인 디테일을 더합니다. 

두 번째 “데칼” 텍스처는 알파 채널을 사용하여 메인 텍스처에서 보여지는 영역을 결정합니다. 

데칼 텍스처는 메인 텍스처의 보조여야 합니다. 

예를 들어, 벽돌로 된 벽의 경우, 메인 텍스처로 벽돌 텍스처를 사용하고 벽의 다른 곳에 그래피티를 그리는 데에 알파 채널을 포함하는 데칼 텍스처를 사용합니다.

 

 

1.1.9 디퓨즈 디테일(Diffuse Detail)

 

 

 

1.1.9.1 디퓨즈 디테일(Diffuse Detail) 프로퍼티


이 셰이더는 일반 디퓨즈 셰이더에 추가 정보를 더한 버전입니다. 

카메라가 가까이 가면 점점 나타나는 두 번째 “Detail” 텍스처를 정의할 수 있게 합니다. 

예를 들어, 터레인에 이 셰이더를 사용할 수 있습니다. 

베이스 저해상도 텍스처를 전체 터레인에 확장시킨 경우, 카메라가 저해상도 텍스처에 가까이 가면 흐릿하게 보입니다. 

이러한 현상을 피하려면 터레인에 타일링될 일반 Detail 텍스처를 생성해야 합니다. 

이렇게 하면 카메라가 가까이 가게 되면, 추가 디테일이 나타나 흐릿해지는 효과가 사라집니다.

Detail 텍스처는 베이스 텍스처 “위”에 배치됩니다. 

Detail 텍스처가 어두운 컬러를 띠면 메인 텍스처가 어두워질 것이며, 밝은 컬러를 띠면 밝게 변합니다. 

보통 Detail 텍스처는 회색빛을 띕니다.

 

 

1.2 투명 셰이더군(Transparent Shader Family)

 

투명 셰이더는 완전히 투명하거나 반투명한 오브젝트에 사용됩니다. 

베이스 텍스처 알파 채널을 사용하여, 오브젝트의 일부 영역의 투명도를 다른 영역과 다르게 할 수 있습니다. 

유리, HUD 인터페이스, 공상 과학 효과 등을 멋지게 구현할 수 있습니다.

 

 

1.2.1 투명 버텍스 릿(Transparent Vertex-Lit)

 

 

 

1.2.1.1 투명 프로퍼티


이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다. 

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다. 메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 

 

1.2.1.2 버텍스 릿 프로퍼티


셰이더는 가장 간단한 셰이더 중 하나인 Vertex-Lit 입니다. 

이 셰이더에 비추는 모든 광원은 싱글 패스에 렌더링되고 버텍스에서만 계산됩니다.

셰이더는 버텍스 릿이므로 광원 쿠키, 노멀 매핑 또는 섀도우 등의 픽셀 기반 렌더링 효과를 표시하지 않습니다. 

또한 모델의 테셀레이션에도 훨씬 더 민감합니다. 

이 셰이더를 사용하여 점 광원을 큐브에 매우 가까이 두면 광원이 코너에서만 계산됩니다. 

픽셀 릿 셰이더는 테셀레이션에 관계 없이 멋진 둥근 하이라이트를 생성하는 데 훨씬 더 효과적입니다. 

이 효과를 원하는 경우 픽셀 릿 셰이더를 사용하거나 오브젝트의 테셀레이션을 증가시키는 방법을 고려해볼 수 있습니다.

 

 

1.2.2 투명 디퓨즈(Transparent Diffuse)

 

 

 

1.2.2.1 투명 프로퍼티


이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다. 

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다. 

메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 

 

1.2.2.1디퓨즈 프로퍼티

 

디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.2.3 투명 스페큘러(Transparent Specular)

 

 

 

1.2.3.1 투명 프로퍼티


이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다. 

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다. 

메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 

1.2.3.1 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.2.4 투명 범프 디퓨즈(Transparent Bumped Diffuse)

 

 

 

1.2.4.1 투명 프로퍼티


이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다. 

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다. 

메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 


1.2.4.2 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.2.4.3 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.2.5 투명 범프 스페큘러(Transparent Bumped Specular)

 

 

 

1.2.5.1 투명 프로퍼티


이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다. 

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다. 

메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 

1.2.5.2 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 

범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.2.5.1스페큘러 프로퍼티

 

스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.2.6 투명 패럴랙스 디퓨즈(Transparent Parallax Diffuse)

 

 

 

1.2.6.1 투명 프로퍼티

 

이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다.

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다.

메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 

1.2.6.2 패럴랙스 노멀 맵 프로퍼티


패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 

높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 

알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

1.2.6.3 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.2.7 투명 패럴랙스 스페큘러(Transparent Parallax Specular)

 

 

 

1.2.7.1 투명 프로퍼티

 

이 셰이더는 메인 텍스처의 알파 채널을 읽어서 메시 지오메트리를 부분적으로, 또는 완전히 투명하게 만들 수 있습니다.

알파에서 0(검정)은 완전히 투명하고, 255(흰색)는 완전히 불투명합니다.

메인 텍스처에 알파 채널이 없는 경우 오브젝트가 완전히 불투명하게 표시됩니다.

게임에서 정렬 문제를 유발할 수 있는 고질적인 그래픽 프로그래밍 문제가 있으므로 게임에 투명한 오브젝트를 사용하기가 까다로울 수 있습니다. 

예를 들어, 동시에 두 개의 창을 통해서 볼 때 이상하게 보이는 결과가 나타나는 경우 투명도 사용에 따르는 클래식한 문제가 발생합니다. 

일반적으로 특히 오브젝트가 교차하거나, 서로를 둘러싸거나, 크기가 매우 다른 경우 하나의 투명 오브젝트가 이상한 방법으로 다른 오브젝트 앞에 그려질 수 있는 경우가 있습니다. 

그렇기 때문에 필요한 경우 투명 오브젝트를 사용하되 너무 많이 사용하지 않도록 해야 합니다. 

디자이너에게 이러한 정렬 문제가 발생할 수 있음을 알리고 디자이너가 이 문제를 우회하기 위해 일부 설계를 변경할 수 있게 준비하도록 해야 합니다.

 

1.2.7.2 패럴랙스 노멀 맵 프로퍼티


패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 

높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

1.2.7.3 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1. 3 투명 컷아웃 셰이더군(Transparent Cutout Shader Family)

 

투명 컷아웃 셰이더는 완전히 불투명하거나 투명한 부분이 없는 오브젝트(즉, 반투명 부분이 없는 오브젝트)에 사용됩니다. 

사슬 울타리, 나무, 풀 등을 예로 들 수 있습니다.

 

 

1.3.1 투명 컷아웃 버텍스 릿(Transparent Cutout Vertex-Lit)

 

 

 

1.3.1.1 투명 컷아웃 프로퍼티

 

컷아웃 셰이더는 투명 오브젝트를 표시하는 다른 방법입니다.

컷아웃 및 일반 투명 셰이더의 차이점은 다음과 같습니다.

이 셰이더에는 반투명한 영역이 있을 수 없습니다. 

모든 것이 완전히 불투명하거나 완전히 투명해집니다.
이 셰이더를 사용하는 오브젝트는 섀도우를 캐스트하고 가려질 수 있습니다!
이 셰이더를 사용하면 투명 셰이더와 일반적으로 관련이 있는 그래픽 정렬 문제가 발생하지 않습니다.
셰이더는 베이스 텍스처에 포함된 알파 채널을 사용하여 투명 영역을 결정합니다. 

알파에 투명 영역과 불투명 영역이 섞여서 포함된 경우 표시할 영역의 컷오프 포인트를 수동으로 결정할 수 있습니다. 

이 컷오프는 Alpha Cutoff 슬라이더를 조정하여 변경해야 합니다.

 


1.3.1.2  버텍스 릿 프로퍼티


셰이더는 가장 간단한 셰이더 중 하나인 Vertex-Lit 입니다. 

이 셰이더에 비추는 모든 광원은 싱글 패스에 렌더링되고 버텍스에서만 계산됩니다.

셰이더는 버텍스 릿이므로 광원 쿠키, 노멀 매핑 또는 섀도우 등의 픽셀 기반 렌더링 효과를 표시하지 않습니다. 

또한 모델의 테셀레이션에도 훨씬 더 민감합니다. 

이 셰이더를 사용하여 점 광원을 큐브에 매우 가까이 두면 광원이 코너에서만 계산됩니다. 

픽셀 릿 셰이더는 테셀레이션에 관계 없이 멋진 둥근 하이라이트를 생성하는 데 훨씬 더 효과적입니다. 

이 효과를 원하는 경우 픽셀 릿 셰이더를 사용하거나 오브젝트의 테셀레이션을 증가시키는 방법을 고려해볼 수 있습니다.

 

 

1.3.2 투명 컷아웃 디퓨즈(Transparent Cutout Diffuse)

 

 

 

1.3.2.1 투명 컷아웃 프로퍼티

 

컷아웃 셰이더는 투명 오브젝트를 표시하는 다른 방법입니다.

컷아웃 및 일반 투명 셰이더의 차이점은 다음과 같습니다.

이 셰이더에는 반투명한 영역이 있을 수 없습니다. 모든 것이 완전히 불투명하거나 완전히 투명해집니다.
이 셰이더를 사용하는 오브젝트는 섀도우를 캐스트하고 가려질 수 있습니다!
이 셰이더를 사용하면 투명 셰이더와 일반적으로 관련이 있는 그래픽 정렬 문제가 발생하지 않습니다.
셰이더는 베이스 텍스처에 포함된 알파 채널을 사용하여 투명 영역을 결정합니다. 

알파에 투명 영역과 불투명 영역이 섞여서 포함된 경우 표시할 영역의 컷오프 포인트를 수동으로 결정할 수 있습니다. 이 컷오프는 Alpha Cutoff 슬라이더를 조정하여 변경해야 합니다.

 

1.3.2.2  디퓨즈 프로퍼티

 

디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.3.3 투명 컷아웃 스페큘러(Transparent Cutout Specular)

 

 

 

1.3.3.1 투명 컷아웃 프로퍼티

 

컷아웃 셰이더는 투명 오브젝트를 표시하는 다른 방법입니다.

컷아웃 및 일반 투명 셰이더의 차이점은 다음과 같습니다.

이 셰이더에는 반투명한 영역이 있을 수 없습니다. 모든 것이 완전히 불투명하거나 완전히 투명해집니다.
이 셰이더를 사용하는 오브젝트는 섀도우를 캐스트하고 가려질 수 있습니다!
이 셰이더를 사용하면 투명 셰이더와 일반적으로 관련이 있는 그래픽 정렬 문제가 발생하지 않습니다.
셰이더는 베이스 텍스처에 포함된 알파 채널을 사용하여 투명 영역을 결정합니다. 

알파에 투명 영역과 불투명 영역이 섞여서 포함된 경우 표시할 영역의 컷오프 포인트를 수동으로 결정할 수 있습니다. 이 컷오프는 Alpha Cutoff 슬라이더를 조정하여 변경해야 합니다.

 

1.3.3.2 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.3.4 투명 컷아웃 범프 디퓨즈(Transparent Cutout Bumped Diffuse)

 

 

 

1.3.4.1 투명 컷아웃 프로퍼티


컷아웃 셰이더는 투명 오브젝트를 표시하는 다른 방법입니다. 

컷아웃 및 일반 투명 셰이더의 차이점은 다음과 같습니다.

이 셰이더에는 반투명한 영역이 있을 수 없습니다. 

모든 것이 완전히 불투명하거나 완전히 투명해집니다.
이 셰이더를 사용하는 오브젝트는 섀도우를 캐스트하고 가려질 수 있습니다!
이 셰이더를 사용하면 투명 셰이더와 일반적으로 관련이 있는 그래픽 정렬 문제가 발생하지 않습니다.
셰이더는 베이스 텍스처에 포함된 알파 채널을 사용하여 투명 영역을 결정합니다. 

알파에 투명 영역과 불투명 영역이 섞여서 포함된 경우 표시할 영역의 컷오프 포인트를 수동으로 결정할 수 있습니다. 

이 컷오프는 Alpha Cutoff 슬라이더를 조정하여 변경해야 합니다.

 

1.3.4.2 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 

범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.3.4.3 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.3.5 투명 컷아웃 범프 스페큘러(Transparent Cutout Bumped Specular)

 

 

 

1.3.5.1 투명 컷아웃 프로퍼티


컷아웃 셰이더는 투명 오브젝트를 표시하는 다른 방법입니다. 

컷아웃 및 일반 투명 셰이더의 차이점은 다음과 같습니다.

이 셰이더에는 반투명한 영역이 있을 수 없습니다. 

모든 것이 완전히 불투명하거나 완전히 투명해집니다.
이 셰이더를 사용하는 오브젝트는 섀도우를 캐스트하고 가려질 수 있습니다!
이 셰이더를 사용하면 투명 셰이더와 일반적으로 관련이 있는 그래픽 정렬 문제가 발생하지 않습니다.
셰이더는 베이스 텍스처에 포함된 알파 채널을 사용하여 투명 영역을 결정합니다. 

알파에 투명 영역과 불투명 영역이 섞여서 포함된 경우 표시할 영역의 컷오프 포인트를 수동으로 결정할 수 있습니다. 

이 컷오프는 Alpha Cutoff 슬라이더를 조정하여 변경해야 합니다.

 

1.3.5.2 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 

범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.3.5.3 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.4 자체 조명 셰이더군(Self-Illuminated Shader Family)

 

__자체 조명 __ 셰이더는 연결된 알파 채널에 기반하여 자체적으로 광원을 발산합니다. 

광원을 발산하기 위해 다른 광원이 그 위에 투영될 필요가 없습니다. 

버텍스나 픽셀 광원이 있는 경우, 자체 조명 셰이더 위에 추가 광원이 더해집니다.

이 셰이더는 발광 오브젝트에 주로 사용됩니다. 

예를 들어, 조명이나 화면을 시뮬레이션하기 위해 벽 텍스처 일부에서 광원이 발산되도록 할 수 있습니다. 

또한, 광원 투영 여부와 무관하게 게임 내내 밝게 보여야 하는 파워업 오브젝트를 빛나게 하는 데 사용할 수도 있습니다.

 

 

1.4.1 자체 조명 버텍스 릿(Self-Illuminated Vertex-Lit)

 

 

 

1.4.1.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 

씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

1.4.1.2 버텍스 릿 프로퍼티


셰이더는 가장 간단한 셰이더 중 하나인 Vertex-Lit 입니다. 

이 셰이더에 비추는 모든 광원은 싱글 패스에 렌더링되고 버텍스에서만 계산됩니다.

셰이더는 버텍스 릿이므로 광원 쿠키, 노멀 매핑 또는 섀도우 등의 픽셀 기반 렌더링 효과를 표시하지 않습니다. 

또한 모델의 테셀레이션에도 훨씬 더 민감합니다. 

이 셰이더를 사용하여 점 광원을 큐브에 매우 가까이 두면 광원이 코너에서만 계산됩니다. 

픽셀 릿 셰이더는 테셀레이션에 관계 없이 멋진 둥근 하이라이트를 생성하는 데 훨씬 더 효과적입니다. 

이 효과를 원하는 경우 픽셀 릿 셰이더를 사용하거나 오브젝트의 테셀레이션을 증가시키는 방법을 고려해볼 수 있습니다.

 

 

1.4.2 자체 조명 디퓨즈(Self-Illuminated Diffuse)

 

 

 

1.4.2.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 

씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

1.4.2.2 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.4.3 자체 조명 스페큘러(Self-Illuminated Specular)

 

 

 

1.4.3.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

1.4.3.2 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.4.4 자체 조명 노멀 맵 디퓨즈(Self-Illuminated Normal mapped Diffuse)

 

 

 

1.4.4.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 

씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

1.4.4.2 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.4.5 자체 조명 노멀 맵 스페큘러(Self-Illuminated Normal mapped Specular)

 

 

1.4.5.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 

씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

1.4.5.1 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.4.5.3 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.4.6 자체 조명 패럴랙스 디퓨즈(Self-Illuminated Parallax Diffuse)

 

 

1.4.6.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 

씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

1.4.6.2 노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.4.6.3 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.4.7 자체 조명 패럴랙스 스페큘러(Self-Illuminated Parallax Specular)

 

 

 

1.4.7.1 자체 발광 프로퍼티


이 셰이더를 사용하면 오브젝트의 밝은 부분과 어두운 부분을 정의할 수 있습니다. 

보조 텍스처의 알파 채널은 텍스처에 빛을 비추는 광원이 없는 경우에도 자체적으로 빛을 “방출”하는 오브젝트의 영역을 정의합니다. 

알파 채널에서 검정색은 빛이 영(0)이고 흰색은 오브젝트가 방출하는 최대 빛입니다. 

씬의 광원은 셰이더 조명에 조명을 더합니다. 

따라서 오브젝트가 자체적으로 빛을 방출하지 않는 경우에도 씬의 광원으로 계속 밝혀집니다.

 

1.4.7.1 패럴랙스 노멀 맵 프로퍼티


패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 

높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 

알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

1.4.7.1 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.5 반사 셰이더군(Reflective Shader Family)

 

Reflective 셰이더는 메시에 반사되는 큐브맵을 사용할 수 있도록 합니다. _

_ 베이스__ 텍스처의 알파 채널을 통해 오브젝트의 반사도를 영역별로 정의할 수도 있습니다. 

광택이 나는 표면, 기름, 크롬 등에는 높은 반사도가 유용하며, 금속, 액체 표면, 비디오 모니터의 경우 낮은 반사도를 사용하여 효과를 더할 수 있습니다.

 

 

1.5.1 반사 버텍스 릿(Reflective Vertex-Lit)

 

 

 

1.5.1.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.1.2 버텍스 릿 프로퍼티


셰이더는 가장 간단한 셰이더 중 하나인 Vertex-Lit 입니다. 

이 셰이더에 비추는 모든 광원은 싱글 패스에 렌더링되고 버텍스에서만 계산됩니다.

셰이더는 버텍스 릿이므로 광원 쿠키, 노멀 매핑 또는 섀도우 등의 픽셀 기반 렌더링 효과를 표시하지 않습니다. 

또한 모델의 테셀레이션에도 훨씬 더 민감합니다. 

이 셰이더를 사용하여 점 광원을 큐브에 매우 가까이 두면 광원이 코너에서만 계산됩니다. 

픽셀 릿 셰이더는 테셀레이션에 관계 없이 멋진 둥근 하이라이트를 생성하는 데 훨씬 더 효과적입니다. 

이 효과를 원하는 경우 픽셀 릿 셰이더를 사용하거나 오브젝트의 테셀레이션을 증가시키는 방법을 고려해볼 수 있습니다.

 

 

1.5.2 반사 디퓨즈(Reflective Diffuse)

 

 

 

1.5.2.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.2.2 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.5.3 반사 스페큘러(Reflective Specular)

 

 

이 셰이더를 사용하는 경우, 베이스 텍스처의 알파 채널이 반사 맵과 스페큘러 맵으로 인해 두 배가 된다는 점을 고려해야 합니다.

 

 

1.5.3.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.3.1 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.5.4 리플렉티브 범프 디퓨즈(Reflective Bumped Diffuse)

 

 

 

1.5.4.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.4.2 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.5.4.3 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.5.5 반사 범프 스페큘러(Reflective Bumped Specular)

 

 

 

이 셰이더를 사용하는 경우, 베이스 텍스처의 알파 채널이 반사 맵과 스페큘러 맵으로 인해 두 배가 된다는 점을 고려해야 합니다.

 

 

1.5.5.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.5.2 노멀 맵 프로퍼티


이 프로퍼티는 Diffuse 셰이더처럼 단순(램버트) 조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 감소할수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

Normal mapping 은 실제로 디테일을 생성하기 위해 더 많은 폴리곤을 사용하는 대신 텍스처를 사용하여 작은 표면 디테일을 시뮬레이션합니다. 

이 매핑은 오브젝트의 모양을 실제로 변경하지 않지만, 이 효과를 얻기 위해 Normal Map 이라는 특수한 텍스처를 사용합니다. 

노멀 맵에서는 각 픽셀의 컬러 값이 표면 노멀의 각도를 나타냅니다. 

그런 다음 지오메트리에서 얻은 값 대신 이 값을 사용하여 조명을 계산합니다. 

노멀 맵은 오브젝트 조명을 계산할 때 메시의 지오메트리를 사실상 오버라이드합니다.

 

노멀 맵 생성


Unity 외부에서 생성된 노멀 맵을 임포트거나 일반 그레이스케일 이미지를 임포트하여 Unity에서 노멀 맵으로 변환할 수 있습니다. 

이 페이지에서는 스탠다드 셰이더로 대체된 레거시 셰이더를 사용하여 설명하지만, 스탠다드 셰이더의 노멀 맵을 사용하는 방법에 대해 자세히 알아볼 수 있습니다.

 

기술적 세부 정보


노멀 맵은 노멀 맵의 탄젠트 공간 타입입니다. 

탄젠트 공간은 모델 지오메트리의 “표면을 따르는” 공간입니다. 

이 공간에서 Z는 항상 표면에서 먼 쪽을 가리킵니다. 

탄젠트 공간 노멀 맵은 다른 “오브젝트 공간” 타입 노멀 맵보다 연산을 조금 더 사용하지만, 몇 가지 장점이 있습니다.

변형 모델에 사용할 수 있습니다. 

범프는 변형 표면에 남아 있고 그대로 작동합니다.
모델의 다른 영역에서 노멀 맵의 일부를 재사용하거나 다른 모델에서 사용할 수 있습니다.

 

 

1.5.5.3 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.5.6 반사 패럴랙스 디퓨즈(Reflective Parallax Diffuse)

 

 

 

1.5.6.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.6.2 패럴랙스 노멀 맵 프로퍼티


패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 

높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 

알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

1.5.6.3 디퓨즈 프로퍼티


디퓨즈(Diffuse)는 단순한 (램버트)조명 모델을 계산합니다. 

표면에 비추는 조명은 표면과 광원의 각도가 작아질수록 점점 감소합니다. 

조명은 각도에 따라서만 달라지고 카메라가 움직이거나 회전할 때 변하지 않습니다.

 

 

1.5.7 반사 패럴랙스 스페큘러(Reflective Parallax Specular)

 

 

이 셰이더를 사용하는 경우, 베이스 텍스처의 알파 채널이 반사 맵과 스페큘러 맵으로 인해 두 배가 된다는 점을 고려해야 합니다.

 

1.5.7.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.7.2 패럴랙스 노멀 맵 프로퍼티


패럴랙스 노멀 맵(Parallax Normal mapped) 은 일반 Normal mapped 와 동일하지만 더 나은 “뎁스” 시뮬레이션을 포함합니다. 

추가적인 뎁스 효과는 Height Map 을 사용하여 실현합니다. 높이 맵은 노멀 맵의 알파 채널에 포함됩니다. 

알파에서 검정색은 0 뎁스고, 흰색은 최대 뎁스입니다. 

벽돌과 돌 사이의 균열을 더 잘 표현하기 위해 가장 많이 사용됩니다.

패럴랙스 매핑은 매우 간단한 기술이므로 결함과 특이한 효과가 있을 수 있습니다. 

특히 하이트 맵에서 매우 가파른 높이 전환은 피해야 합니다. 

Inspector 의 Height 값을 조정하면 오브젝트가 비정상적으로 보이거나 비현실적으로 왜곡될 수도 있습니다. 

그렇기 때문에 점진적인 하이트 맵 전환을 사용하거나 Height 슬라이더를 낮은 쪽으로 유지하는 것이 좋습니다.

 

1.5.7.3 스페큘러 프로퍼티


스페큘러는 디퓨즈와 동일한 단순 (램버트) 조명과 뷰어에 따라 다른 스페큘러 하이라이트를 계산하며, 블린퐁 조명 모델이라고 합니다. 

스페큘러에는 표면 각도, 광원 각도 및 보는 각도에 따라 다른 스페큘러 하이라이트가 있습니다. 

하이라이트는 실제로 광원의 희미한 반사를 시뮬레이션하는 실시간에 적합한 방법입니다. 

하이라이트의 블러 레벨은 Inspector 의 Shininess 슬라이더로 조절합니다.

또한 메인 텍스처의 알파 채널은 스페큘러 맵(때로는 “글로스 맵”이라고 함)으로 동작하여 오브젝트의 다른 영역보다 더 반사가 강한 영역을 정의합니다. 

알파의 검정색 영역은 스페큘러 반사가 영(0)이고, 흰색 영역은 최대 스페큘러 반사입니다. 

오브젝트 영역마다 반사하는 스페큘러 레벨을 다르게 설정하고 싶을 때 매우 유용합니다. 

예를 들어 녹슨 금속 같은 물체는 낮은 스페큘러 레벨을 사용하지만, 광택을 낸 금속은 높은 스페큘러 레벨을 사용합니다. 

립스틱은 피부보다 스페큘러 레벨이 더 높고, 피부는 면 옷감보다 스페큘러 레벨이 더 높습니다. 

잘 만든 스페큘러 맵은 플레이어에게 더욱 현실감 있는 게임 환경을 제공합니다.

 

 

1.5.8 반사 노멀 맵 언릿(Reflective Normal Mapped Unlit)

 

 

1.5.8.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.8.2 노멀 맵(Normal mapped) 프로퍼티


이 셰이더는 일반적인 방법의 노멀 매핑을 사용하지 않습니다. 

이 셰이더는 광원을 사용하지 않으므로 노멀 맵은 오브젝트에 광원이 투영되는 현상에 영향을 주지 않습니다. 

노멀 맵은 오직 반사 맵만 변조합니다.

 

1.5.8.3 특수 프로퍼티


이 셰이더는 광원에 반응하지 않는다는 점이 특별하며, 따라서 다수 광원을 사용하더라도 퍼포먼스 저하를 고려하지 않아도 됩니다. 

이 셰이더는 모델 위에 반사 큐브 맵을 단순하게 표시합니다. 

반사는 노멀 맵에 의해 변조되므로, 자세한 반사를 얻을 수 있다는 이점이 있습니다. 

광원에 반응하지 않으므로 비용이 적게 듭니다. 

이 셰이더는 몇몇 경우에만 사용할 수 있지만, 원하는 효과를 가장 적은비용으로 얻을 수 있습니다.

 

 

1.5.9 반사 노멀 맵 버텍스 릿(Reflective Normal mapped Vertex-lit)

 

 

1.5.9.1 반사 프로퍼티


이 셰이더는 자동차나 금속 오브젝트 등과 같은 반사 표면을 시뮬레이션합니다. 

이 셰이더에는 정확히 무엇이 반사되는지 정의하는 환경 큐브맵이 필요합니다. 

메인 텍스처의 알파 채널은 오브젝트 표면의 반사 강도를 정의합니다. 

모든 씬 광원은 반사되는 빛에 조명을 더합니다.

 

1.5.9.2 버텍스 릿 프로퍼티


셰이더는 가장 간단한 셰이더 중 하나인 Vertex-Lit 입니다. 

이 셰이더에 비추는 모든 광원은 싱글 패스에 렌더링되고 버텍스에서만 계산됩니다.

셰이더는 버텍스 릿이므로 광원 쿠키, 노멀 매핑 또는 섀도우 등의 픽셀 기반 렌더링 효과를 표시하지 않습니다. 

또한 모델의 테셀레이션에도 훨씬 더 민감합니다. 

이 셰이더를 사용하여 점 광원을 큐브에 매우 가까이 두면 광원이 코너에서만 계산됩니다. 

픽셀 릿 셰이더는 테셀레이션에 관계 없이 멋진 둥근 하이라이트를 생성하는 데 훨씬 더 효과적입니다. 

이 효과를 원하는 경우 픽셀 릿 셰이더를 사용하거나 오브젝트의 테셀레이션을 증가시키는 방법을 고려해볼 수 있습니다.

 

1.5.9.3 특수 프로퍼티


이 셰이더는 반사 노멀 맵의 좋은 대안입니다. 

오브젝트 자체가 픽셀 광원에 영향을 받을 필요가 없으나, 반사가 노멀 맵에 영향을 받기를 원하는 경우, 이 셰이더를 사용합니다. 

셰이더는 버텍스 릿이므로, 반사 노멀 맵보다 빠르게 렌더링됩니다.

 

 

2. 일반 셰이더 성능

빌트인 셰이더의 대략적인 복잡도 순서는 다음과 같습니다.

 

  • 언릿(Unlit) : 광원에 영향을 받지 않는 텍스처입니다.
  • 버텍스 릿(VertexLit)
  • 디퓨즈(Diffuse)
  • 노멀 맵(Normal Map). 디퓨즈보다 부하를 더 요구합니다. 노멀 맵 텍스처 한 개와 셰이더 명령 몇 개가 추가됩니다.
  • 스페큘러(Specular) : 강조 연산이 추가됩니다.
  • 노말 매퍼드 스페큘러(Normal Mapped Specular) : 스페큘러보다 부하를 더 요구합니다.
  • 패럴럭스 노멀 매퍼드(Parallax Normal Mapped) : 패럴럭스 노멀 매핑 연산이 추가됩니다.
  • 패럴럭스 노멀 매퍼드 스페큘러(Parallax Normal Mapped Specular) : 패럴럭스 노멀 매핑과 스페큘러 강조 연산 둘 다 추가됩니다.

 

728x90
반응형