Transparent Parallax Specular

이 쉐이더를 위한 하나의 고려 사항은 기본 텍스쳐의 알파 채널이Specular Map 뿐만 아니라 투명한 영역을 정의한다는 것입니다.

이 셰이더는 메쉬 기하구조(mesh geometry)을 주 텍스처(main texture)의 알파 채널을 읽음으로써 부분적으로 혹은 완전히 투명하게 만들 수 있습니다. 알파에서는, 0(검정색)은 완전히 투명한 것이고 255(흰색)은 완전히 불투명한 것입니다. 만일 사용자의 주 텍스처에 알파 채널에 없다면, 그 오브젝트는 완전히 불투명하게 보일 것 입니다.

사용자의 게임에서 투명한 오브젝트를 사용하는 일은 일견 까다로울 수 있는데, 그 이유는 사용자 게임에서 순서정렬의 문제가 나타날 수 있는 전통적인 그래픽 프로그래밍의 문제가 존재하기 때문입니다. 예를 들면, 두 개의 창을 한꺼번에 볼 때 이상한 결과가 보인다면, 그것은 투명성을 사용하는 데 있어 발생하는 클래식 한 문제입니다. 일반적인 규칙은, 어떤 경우에 따라 하나의 투명한 오브젝트가 다른 것 위에 비정상적인 방법으로 그려질 수 있다는 사실을 인지하는 것입니다. 특히 오브젝트가 교차되거나, 서로를 둘러싸거나 혹은 매우 다른 크기일 경우입니다. 이러한 이유로, 사용자는 필요한 경우에만 투명한 오브젝트를 사용하고, 과도하게 사용하지 않으려 노력해야 합니다. 또한 기획자에게 그러한 정렬문제가 발생할 수 있다는 것을 알려서, 이러한 문제를 우회해 할 수 있는 준비를 하도록 해 주어야 합니다.

Parallax Normal mapped은 일반 Normal mapped과 같으나, "depth"에 있어 시뮬레이션이 우월합니다. Height Map을 통하여 추가적이 깊이 효과를 주고 있습니다. 높이 맵(Height Map)은 노멀 맵(Normal map)의 알파 채널이 포함되어 있습니다. 알파에서는, 검은색은 깊이 0이고 흰색은 전체 깊이를 말합니다. 이는 별돌/돌에서 그 들 사이의 갈라진 틈을 더 잘 표현하기 위해 자주 쓰입니다.

시차 매핑의 기술은 단순하지만, 아티팩트(artifacts)와 비정상적인 효과가 있을 수 있습니다. 특히, 높이 맵에는 아주 가파른 높이 변화은 피해야 합니다. Inspector 에서 Height 값을 조정하는 것은 오브젝트를 이상하고 비현실적인 방식으로 변형하게 할 수 있습니다. 이러한 이유로, 점차적은 높이 맵 변환 이행이나 Height 슬라이드를 얕은 끝 쪽으로 유지할 것을 권장합니다.

스페큘러(Specular)는 Diffuse와 같은 단순한 (Lambertian)조명에, 사용자에 따라 다른 스페큘라 하이라이트을 계산합니다. 이는 Blinn-Phong 조명 모델이라 불립니다. 이는 표면의 각도, 조명의 각도, 그리고 시야의 각도에 따라 다른 스페큘러 하이라이트를 가지고 있습니다. 그 하이라이트는 실제로 조명 원천의 흐린 반사를 시뮬레이트 하기 실시간에-적합한 방식입니다. 해당 하이라이트에 대한 흐림의 레벨은 Inspector에서 Shininess 슬라이더에 의해 제어됩니다.

추가적으로, 주 텍스처의 알파 채널은 스페큘러 맵(때로는 "gloss map"이라 불리움) 역할을 하며, 오브젝트의 어떤 부분이 다른 부분보다 더 반사적인지를 정의합니다. 해당 알파의 검은 영역은 0 스페큘러 반사가 되는 반면, 흰색 영역은 완전 스페큘러 반사가 될 것입니다. 이것은 사용자가 자신의 오브젝트의 여러 부분이 다른 레벨의 스페큘러 성질(specularity)을 반사하고자 할 때 매우 유용합니다. 예를 들어, 녹슨 금속은 낮은 스페큘러를 가지는 반면 잘 닦은 금속은 높은 스페큘러를 가질 것 입니다. 립스틱은 피부보다 높은 스페큘러 성질을 가지고, 피부는 면으로 된 천보다 높은 스페큘러 성질을 가집니다. 잘 만든 스페큘러 맵은 플레이어를 표현하는 데 엄청난 차이를 가져 올 것 입니다.

Performance

일반적으로 이 쉐이더는 표현하기에 비용히 많이 듭니다. 더 자세한 정보를 위해서는 Shader Peformance page를 살펴보시기 바랍니다.

역링크