UDN
Search public documentation:
MaterialExamplesKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
머티리얼 예제
문서 변경내역: Chris Sturgill (Demiurge Studios) 작성. Dave Burke, Scott Brown, Kedhrin Gonzalez?, Jeff Wilson 업데이트. 홍성진 번역.
개요
개념 및 기술
반사성
Specularity(반사성)란 빛의 반사를 통해 표면에 나타나는 하이라이트를 말합니다. 일반적으로 표면이 더 빛날수록 반사성도 작고 밝아지게 됩니다. 머티리얼 노드의 Specular(반사) 입력 채널이 반사 하이라이트의 밝기와 색을, SpecularPower(반사력) 입력 채널은 하이라이트의 감쇠나 빡빡함을 조절하는 데 사용됩니다.환경 맵
Environment mapping(환경 매핑), 또는 reflection mapping(반영 매핑)은 미리-렌더링된 큐브맵의 사용을 통해 쉽게 구현할 수 있는데, 실시간 반영의 적용이나 사물에 주변 환경이 반영되는 모습을 내기 위해 사용됩니다. Transform(변형) 표현식에 통과(탄젠트->월드)시킨 ReflectionVector(반영 벡터) 표현식이 환경 맵이 할당된 TextureSample(텍스처 샘플) 표현식에 대한 UV 텍스처 좌표로 사용됩니다. 이는 (RenderToTextureCube (렌더 투 텍스처 큐브) 또는 정적) 큐브맵을 메시의 표면에 매핑시켜 (주변 사물을) 반영하는 것처럼 보이게 합니다. SceneCaptureCubeMapActor (씬 캡처 큐브맵 액터) 의 실시간 셋업이나 정적 캡처 저장하기에 대해서는 [[RenderToTextureKR][렌더 투 텍스처] 페이지를 참고해 보시기 바랍니다. 새 큐브맵을 수동으로 만들려면 콘텐츠 브라우저 에서 우클릭 > 새 TextureCube 를 선택하면 됩니다. 다른 방법으로는 콘텐츠 브라우저 좌하단의 새로 버튼을 클릭하고, 팩토리 콤보박스에서 TextureCube 를 선택해도 됩니다. 그리고서 환경 이미지를 여섯 가져온 다음, 새로 생긴 TextureCube (텍스처 큐브)의 Face Neg/Pos X/Y/Z 속성에 비어있는 슬롯에다 할당해 줍니다. CubeTexture (큐브 텍스처)의 각 면에 대해 이미지 위쪽이 텍스처 위쪽에 맞춰지며, 윗면과 밑면 둘 다 아래 그림에 나타난 대로 동일한 위쪽 방향을 공유합니다: 텍스처를 텍스처 큐브에 할당할 때는, 다음과 같은 슬롯에 둡니다: 텍스처 큐브 셋업을 완료하고나면 이걸 머티리얼 에디터에서 새로운 텍스처 샘플에다 할당해 줍니다. 이쯤에서 TextureSample(텍스처 샘플) 의 RGB 출력을 머티리얼의 Diffuse (확산) 채널에 연결할 수는 있지만, 에러가 납니다. 이 에러를 해결하려면 ReflectionVector(반영 벡터) 및 Transform(변형) 표현식을 새로 추가해 줘야 합니다. 반영 벡터의 출력을 변형의 입력에다 연결한 다음, 변형의 출력을 텍스처 샘플의 UV 입력에다 연결하는 겁니다.마스크
Mask(마스크)란 머티리얼 내에서 효과의 범위를 제한하는 데 사용되는 그레이스케일 텍스처, 또는 텍스처의 채널 하나(R, G, B, A)를 말합니다. 꽤나 자주 마스크는 디퓨즈나 노멀맵의 알파채널처럼, 다른 텍스처의 채널 하나에 얹혀있게 됩니다. 미사용 채널을 활용하여 머티리얼에 샘플링되는 텍스처의 수를 최소화시키는 데 좋은 방법이죠. 기술적으로는, 어느 텍스처의 어느 채널이건 간에 마스크로 간주하여 사용할 수 있습니다. 예제 마스크는 아래 이미지와 같습니다: 보통 텍스처 마스크에는 Multiply(곱) 표현식이 같이 쓰이는데, 마스크의 값에다 어떤 값을 곱해 주면 마스크의 값이 0.0보다 큰 데만 머티리얼 값을 남겨두는 겁니다. 이를 통해 마스크 값에 따라 효과의 농도를 다양히 줄 수 있습니다. 빛나는 부분이 있는 머티리얼에 흔히 쓰이는 기술입니다. Emissive (방출) 마스크는 빛나는 부분을 하양(이나 다양한 회색)으로, 나머지는 검정으로 하여 만듭니다. 이 방법의 장점은 빛나는 부분을 제한시킬 수 있을 뿐만 아니라, 머티리얼 안에서 빛나는 색 제어를 완벽히 할 수 있어서 텍스처 아티스트가 수정 작업을 한 다음 텍스처를 다시 가져오거나 하지 않아도 되는 것입니다. 마스크가 자주 쓰이는 곳이 또 있는데, LinearInterpolate(선형 보간) 표현식의 알파 입력을 마스크로 사용하여 두 효과를 혼합할 때입니다. 마스크가 하양인 부분과 검정인 부분에는 각기 다른 효과나 값을 적용하여 둘을 혼합하는 겁니다.범프 매핑
언리얼 엔진 3에는 범프 맵 머티리얼을 만드는 데 주로 쓰이는 기술이 둘 있습니다. 간단히 설명하면:- 노멀 매핑 -- 단순 범프맵의 높이 정보만 사용하는 대신 XYZ 벡터 정보를 사용합니다.
- 오프셋 범프 매핑 -- 노멀 매핑에 추가로 텍스처 좌표 변경을 통한 범프의 가상 높이 변위입니다.
노멀 매핑
노멀 맵 머티리얼은, 텍스처의 RGB 요소로 저장되었다가 텍스처의 표면각으로 전환되는 XYZ 정보를 사용합니다. 이는 빛이 노멀 방향에 따라 각기 다르게 반사되어 나타나는 심도 환영을 만들어 냅니다. 언리얼 엔진 3에서 노멀 매핑을 사용하는 머티리얼 제작하기란 식은 죽 먹기입니다. 일단은 노멀 맵이 필요하겠죠. 노멀 맵을 가져온 다음 사용할 준비가 되면, TextureSample (텍스처 샘플)에 할당한 다음 그 RGB 출력을 베이스 머티리얼 노드의 Normal (법선) 입력에 연결하면 됩니다. 노멀 매핑된 표면과 라이팅이 상호작용하며 디테일이 훨씬 풍부해진 것을 확연히 볼 수 있습니다. Specular (반사) 입력 채널에 디퓨즈 텍스처를 추가로 연결해 주니 이 효과가 더욱 두드러집니다.노멀 맵 텍스처용 여러 세팅
노멀 맵에서 알파 채널이 사라지거나 노멀 맵이 디테일을 제대로 살려내지 못하는 문제를 겪게 되는 경우, 노멀 맵을 수정하면 됩니다. 오프셋 셰이더를 사용하려는데 하이트맵이 노멀맵의 알파 채널에 있는 경우라면, 텍스처 압축 방법을 TC_NormalMap 이외의 것으로 해야 합니다. 노멀 맵을 TC_NormalMapAlpha 으로 설정해 줘야 알파 채널을 유지합니다. 이런 식으로 위와 같은 관측시차 범프 매핑 셰이더를 사용할 수 있습니다. 노멀 맵에 라이팅 정보가 제대로 반영되지 않는 경우, 노멀 맵 자체의 세팅을 바꿔줘야 할 수도 있습니다. 손대지 않은 흔한 노멀 맵 텍스처를 막 가져온 모습은 이렇습니다: 텍스처 자체에는 심도가 별로 없는 것을 볼 수 있습니다. 다이내믹 라이트가 있는 씬에 적용하면, 브러시 표면에 걸쳐 오차가 많이 생기게 됩니다. (콘텐츠 브라우저 에서 노멀 맵 텍스처를 더블클릭하면 세팅창) 브라우저에서 텍스처 트윅 작업을 해 주고 나면 좀 나을 겁니다. 노멀 맵 작업에 사용된 세팅은 이렇습니다. SRGB 박스는 껐습니다. UnpackMin 의 처음 세 채널은 -1 로 설정했습니다. LODGroup 은 TEXTUREGROUP_WorldNormalMap 입니다. 이런 세팅을 통해 노멀 맵에 심도를 더해 줬습니다. 오프셋 셰이더가 사용되는 것도 볼 수 있습니다. 노멀 맵의 압축 세팅은 TC_NormalMapAlpha 로 설정했습니다. 하이트 맵은 노멀 맵의 알파 채널에 있고요. 이 정도면 바람직한 설정입니다. UnpackMin 세팅을 더 낮추면 디테일을 추가할 수 있습니다. 노멀 맵에 디테일이 좀 부족하다 싶으면 이 값을 만져 보시기 바랍니다. 단, 왜곡될 수가 있으니 주의하십시오.오프셋 범프 매핑
오프셋 범프 매핑은 노멀 맵의 심도 환영을, 표면의 픽셀을 실제로 변위시켜 한 단계 발전시킨 겁니다. 위의 화면은 이렇게 심한 각도에서 봐도 벽돌이 표면에서 튀어나와 보이고 있지만, 실은 완전한 평면입니다. 노멀 맵과 오프셋 범프 맵의 차이는 아래와 같습니다. 오른쪽 이미지의 벽돌 엣지를 보십시오. 왼쪽의 벽돌은 울퉁불퉁하나 본질적으로는 평평한 반면, 오른쪽의 벽돌은 실제 높아 보입니다.하이트맵
머티리얼에 흔히 사용할 텍스처 구색(디퓨즈, 스페큘러, 노멀 등)에 추가로, 오프셋 범프 매핑을 사용하는 머티리얼을 만들 때는 heightmap (높이, 하이트맵)이라는 게 필요합니다. 하이트맵은 회색 음영 부분으로 높이를 나타내는 그레이스케일 텍스처입니다. 여기 예제에서는 단지 좀 더 잘 보여드리고자 별도 텍스처의 알파 채널에 이 정보를 집어넣어 놨습니다. 대부분의 경우에 하이트맵 은 노멀맵 텍스처의 알파 채널에 포함됩니다.투과
Transmission(투과)란 반대편으로부터의 빛을 통과시키는 표면의 성질을 가리킵니다. 물론 그 복잡도에서는 비할 바가 못되지만, sub-surface scattering(SSS, 하위표면 산란)으로 알려진 효과와 비슷한 효과입니다. 머티리얼의 투과를 제어하는 입력 채널은 둘 있습니다: TransmissionMask(투과 마스크), TransmissionColor(투과 색) 투과 마스크 입력 채널은 자체적으로도 투과 색과 함께도 쓰일 수 있는 반면, 투과 색 입력 채널은 투과 마스크에 값을 입력해 줘야 작동합니다. 투과 마스크 입력 채널에만 값을 전달하면, 투과의 농도와 색을 조절합니다. 투과 색 입력 채널과 함께 쓰면, 투과 마스크는 총 투과량 계산에 투과 색을 곱해주게 됩니다. 즉 투과 색에 Constant3Vector(3상수 벡터) 의 형태로 색을 전달하고, 투과 마스크에 Constant(상수) 의 형태로 농도를 전달할 수 있습니다.엣지 라이팅
엣지 라이팅, 또는 림 라이팅(역주: edge, rim 모두 가장자리, 테두리라는 뜻)은 필름이나 시네마틱에서 흔히 사용되는 기술로, 캐릭터의 실루엣을 비춰 씬에서 떨어뜨리거나 초점을 맞추는 데 사용됩니다. 보통의 라이트로 가능하긴 하지만, 캐릭터를 따라가게 하려면 부가적인 셋업 및 애니메이션이 필요합니다. 똑같은 기본 효과를 머티리얼 내에서 수행하여 효과를 더욱 세밀하게 조절한다든지, 캐릭터에 에테르성질을 준다든가 성능상의 이점을 위해 라이팅되지 않은 표면상의 실제 라이팅 흉내를 낸다든가 등의 기타 용도로 쓸 수도 있습니다.파라미터화
파라미터화는 머티리얼 내의 파라미터 표현식을 사용하는 것을 가리킵니다. 파라미터는 머티리얼의 인스턴스나 코드를 통해 변경할 수 있습니다. 파라미터화의 주요 이점이라면, 바라는 대로 머티리얼 콜렉션을 구성한 다음 그 기능성을 전부 포함하는 마스터 머티리얼을 만들 수 있다는 점입니다. 이러한 마스터 머티리얼에서 TextureSample (텍스처 샘플) 과 핵심 Constant(상수) 및 Constant3Vectors(3상수 벡터) 등의 일정 부분은 TextureSampleParameter2D (텍스처 샘플 파라미터 2D), ScalarParameter(스케일러 파라미터), VectorParameter (벡터 파라미터) 표현식 등으로 대체할 수 있습니다. 그리고서 마스터 머티리얼의 인스턴스를 만들 때 머티리얼의 해당 부분만 변경해 주면 새로운 머티리얼을 처음부터 새로 만드느라 시간과 노력을 들이지 않고도 시각적으로 완전히 다른 머티리얼을 만들어 낼 수 있는 것입니다. 상세 정보는 인스턴스된 머티리얼, 머티리얼 인스턴스 불변 등을 참고하시기 바랍니다.예제
반짝이
이 부분의 예제는 Specularity (반사성)? 및 Environment Map (환경 맵)의 사용을 통한 다양한 종류의 광택 표면 제작에 관련된 것입니다.무광
이 표면은 약간의 반사 하이라이트가 있긴 하지만 무광 외형입니다. 일종의 플라스틱이나 무광 페인트 표면처럼 광택이 별로 또는 전혀 없는 표면을 만들 때 좋습니다. 예제에서의 Diffuse(확산)색은 밝은 빨강의 Constant3Vector(3상수 벡터) 값 (1.0, 0.0, 0.0)입니다만, 아무 색이나 TextureSample(텍스처 샘플) 을 사용해도 됩니다. SpecularPower(반사력)에는 Constant(상수) 값 5.0이 들어가 하이라이트를 매우 흩뜨리고 있는 반면, Specular (반사)색에는 Diffuse(확산)의 희미한 버전 Constant3Vector(3상수 벡터) 값 (0.67, 0.22, 0.22)이 들어가 하이라이트를 흐리게 하고 있습니다.광택
이 표면은 매우 윤이 나는 모습으로, 반사 하이라이트도 빡빡하고 밝습니다. 유리나 연마된 플라스틱, 차 도색 등의 광택 표면 종류에 좋습니다. 예제에서 Diffuse(확산)색은 밝은 빨강의 Constant3Vector(3상수 벡터) 값 (1.0, 0.0, 0.0)입니다만, 아무 색이나 TextureSample(텍스처 샘플) 을 사용해도 됩니다. SpecularPower(반사력)에는 Constant(상수) 값 75.0이 들어가 하이라이트가 매우 집중된 반면, Specular(반사)색에는 Diffuse(확산)의 과장된 버전 Constant3Vector(3상수 벡터) 값 (3.0, 1.0, 1.0)이 들어가 하이라이트를 밝고 돋보이게 하고 있습니다.메탈
일단은 매끈한 외형에 확산색은 약간 어둡고, 반사 하이라이트는 약간 퍼지긴 했어도 꽤나 밝습니다. 메탈 표면이나 비단결 같은 매끈한 느낌에 좋습니다. 예제에서 Diffuse(확산)색은 어두운 빨강의 Constant3Vector(3상수 벡터) 값 (0.2, 0.0, 0.0)입니다. Specular(반사)색이 표면의 근본적인 실제 색이기에, 어두운 색일수록 이 효과의 본질에 가까워 집니다. TextureSample(텍스처 샘플) 사용시에도 Constant(상수) 표현식으로 곱해서 어둡게 하면 비슷한 효과를 낼 수 있습니다. SpecularPower(반사력)에는 Constant(상수) 값 2.0이 물려 하이라이트를 퍼지게 하고 있는 반면, Specular(반사)색에는 Diffuse(확산)보다 밝은 버전의 Constant3Vector(3상수 벡터) 값 (1.0, 0.0, 0.0)이 사용되어 하이라이트를 밝게 하고 있습니다.반영
연마된 표면 외형을 내기 위해 반영(reflection), 또는 환경(environment) 맵을 사용하는 머티리얼입니다. 유리, 물, 크롬 등의 반영 표면을 만드는 데 좋습니다. Diffuse(확산)색은 UV에다 (탄젠트 -> 월드) Transform(변형) 에 통과시킨 ReflectionVector(반영 벡터) 를 사용하는 환경 맵에 의에 제어됩니다. 반영 성질을 줄이기 위해 환경 맵에다 Constant(상수) 값 0.375를 곱해줍니다. SpecularPower(반사력) 값 2.0으로 하이라이트를 매우 흩뜨리면서, Specular(반사) 밝기 값 0.125로 희미하게까지 합니다. 약간의 대비를 줍니다만 하이라이트는 매우 어둡게 유지되며, 나머지는 반영이 알아서 합니다.범프 오프셋
하이트맵 에 접근하려면, 하이트맵 이 할당된 텍스처로 텍스처 샘플을 새로 만들어야 합니다. 노멀 맵의 알파 채널을 사용중이라면, 노멀 맵이 할당된 텍스처 샘플의 복제본이 필요할 겁니다. 대충의 머티리얼 네트워크는 이렇습니다. 이제 빈 공간에 BumpOffset(범프 오프셋) 표현식을 (B키를 누르고 좌클릭하여) 추가하고, 하이트맵 TextureSample(텍스처 샘플) 과 머티리얼의 다른 TextureSample(텍스처 샘플) 사이에 둡니다. 하이트맵 텍스처 샘플(아래)의 알파 채널 출력을 BumpOffset(범프 오프셋) 의 "Height" 입력에 연결합니다. BumpOffset(범프 오프셋) 표현식을 선택하면 속성이 표시됩니다. 효과에 알맞은 모양새를 얻기 위해 조절을 좀 해 줘야 합니다.- HeightRatio (높이 비율) - 범프의 가장 높이와 텍스처의 폭 사이의 실제 비율입니다. 디폴트는 .05, 즉 머티리얼의 한 타일이 10 평방미터라면, 범프의 심도는 대략 10*.05=.5 미터가 됩니다. 머티리얼에 적합한 값을 찾아 보시기 바랍니다.
- ReferencePlane (참조 평면) - 범프 높이를 나타내는 0과 1 사이의 값으로, 1이면 텍스처 좌표 오프셋이 없습니다. 디폴트 .5 값으로 대부분 괜찮을 겁니다만, 원하는 대로 만져 보십시오.
발광
표면의 일부에 발광, 즉 영향을 끼치는 빛이 없어도 완전 라이팅된 것처럼 보이는 효과를 내기 위해 Emissive(방출) 입력 채널을 사용하는 머티리얼입니다. 이 효과는 (월드에 라이트의 시각적 표현물로 사용된 피지컬 메시 등) 라이트나 파티클 이펙트 또는 빛을 뿜을만한 표면 제작에 좋습니다. 라이트매스와 함께 사용하면 빛을 내뿜는 데 Emissive(방출) 채널을 사용하여 표면 자체를 실제 라이팅으로 사용할 수도 있습니다. (크게 보려면 클릭) 머티리얼의 Diffuse(확산)색은 TextureSample(텍스처 샘플) 의 알파 채널에서 옵니다. TextureSample(텍스처 샘플) 의 R, G, B 채널은 모두 각각의 빨강, 초록, 파랑에 해당하는 Constant3Vectors(3상수 벡터) 로 곱해준 개별 마스크로 사용됩니다. 세 가지 색을 번갈아 쓰기 위해 Sine(사인) 표현식의 출력과 Constant(상수) 값을 비교하는 If 표현식 시리즈에 통과시킵니다. 최종 If 표현식의 출력이 Emissive(방출) 출력에 연결되어 발광 글자 효과를 냅니다.투명
투명 머티리얼을 만들기 위해 Opacity(불투명)과 OpacityMask(불투명 마스크) 입력 채널을 사용하는 예제입니다.마스킹된 투명
마스킹된 투명을 사용하는 머티리얼로, 완전 불투명하거나 완전 투명한 표면을 뜻합니다. 표면의 일부를 감춰 내재된 지오메트리보다 표면이 복잡해 보이게 만드는데 사용할 수 있습니다. 예를 들어 나무나 식물의 잎 또는 풀과 같은 기타 잎사귀에 보통 단순한 평면과 이 기술을 사용하여 잎의 윤곽선 밖의 메시 부분을 감춥니다. Diffuse(확산)색에는 디퓨즈 텍스처를 물립니다. Specular(반사)색은 디퓨즈 텍스처의 녹색 채널에서 따오고, 상수 값 4.0을 곱해줘서 농도를 증폭시켰습니다. 디퓨즈 텍스처의 알파 채널에는 불투명 마스크가 포함되어 있으며, 이를 OpacityMask(불투명 마스크) 입력 채널에 연결해 줬습니다. 머티리얼의 속성에서 블렌드 모드를 BLEND_Masked로 설정해 주어 불투명 마스크가 하얀(, 정확히는 Opacity Mask Clip Value(불투명 마스크 클립 값)보다 큰) 머티리얼 부분만 보이게 했습니다. 라이팅의 디테일을 높이기 위해 노멀 맵을 Normal(법선) 입력 채널에 연결했습니다. SoftMasked 블렌드 모드도 이와 매우 비슷한 효과가 나며, 셋업도 동일합니다.반투명
완전히 투명하거나 불투명하지도 않고, 투명도가 다양한 표면을 만들기 위해 반투명을 사용하는 머티리얼입니다. (크게 보려면 클릭) Diffuse(확산)색은 견고한 부분에는 디퓨즈 텍스처와 스페큘러 텍스처의 조합인데, 스페큘러 텍스처에는 Multiply(곱) 및 Constant3Vector(3상수 벡터) 표현식으로 증폭시키고 색조를 입혀 창을 표현하고 있습니다. 이 둘을 분리해 내기 위해 Mask(마스크)? 를 사용하여 이 둘을 분리해 내고 Add(합) 표현식으로 조합한 다음에 Diffuse(확산) 입력 채널에 연결해 주고 있습니다. Specular(반사)색 및 농도는 스페큘러 텍스처로 주고 있습니다. Diffuse(확산)색에 사용된 것과 같은 Mask(마스크)? 를 OneMinus(1에서 빼기) 표현식을 사용하여 반전시킨 다음에 Opacity(불투명)에다 물려주고 있습니다. 노멀 맵이 Normal(법선) 입력 채널에 연결되어 라이팅 디테일을 높여주고 있습니다.심도-기반 투명
한 표면과 그 뒤 표면간 거리에 따라 표면의 투명도를 달리하기 위해 심도 계산을 사용하는 데모 머티리얼입니다. 이는 DepthBiasAlpha(심도 편향 알파) 표현식이 완전 조절 가능하기만 하다면 그와 비슷하다 하겠습니다. 해변 근처 바닷물의 자연스런 모습을 흉내내는 물 느낌을 내는 데 매우 좋겠습니다. (크게 보려면 클릭) Diffuse(확산)색에는 대비값을 낮추고 엄청 어둡게 해 놓은 Environment Map(환경 맵)이 물려 있습니다. Opacity(불투명)은 딱 커스텀 심도 계산으로만 제어됩니다. 현재 픽셀의 심도는 PixelDepth(픽셀 심도) 표현식으로 나타내는데, 이것을 DestDepth(거리 심도) 표현식으로 나타내는 그 뒤 픽셀 심도에서 빼 줍니다. 그 결과값을 Constant(상수) 값 192.0으로 지정된 참조 심도로 나눠줍니다. 이 값이 표면이 완전 불투명해지는 심도차가 되겠습니다. 그리고서 결과값을 바라는 범위 내로 제한시켜 줍니다. 이 예제에서 그 범위는 디폴트값 [0, 1]로 놔뒀으나, 표면이 완전 불투명해 지거나 투명해 지지 않게 하려면 다른 값을 줘도 되겠습니다. 표면의 Normal(법선)은 물결 모양을 내기 위해 패닝하는 노멀 맵을 꽤나 복잡하게 꼬아놓은 네트워크의 결과물입니다.굴절
빛이 표면을 지나면서 굴절되는 것을 흉내내기 위해 투명과 Distortion(왜곡) 입력 채널을 사용하는 머티리얼입니다. 이 효과는 유리나 물 표면은 물론 증기나 지열같은 파티클 이펙트에도 좋습니다. (크게 보려면 클릭) Diffuse(확산)색에는 Environment Map(환경 맵)에 Exponent (지수)가 0.5인 Fresnel(프레넬) 표현식을 곱해주어 표면이 카메라에서 멀어질 수록 반영이 점점 확연해 지게 하고 있습니다. SpecularPower(반사력)에는 Constant(상수) 값 150.0을 물려 하이라이트를 매우 집중시키면서, Specular(반사)색에는 상수값 1.0을 물려 하이라이트를 꽤나 밝게 만들고 있습니다. Opacity(불투명)에는 똑같은 Fresnel(프레넬) 표현식을 Constant(상수) 값 0.75로 곱한 다음 연결해 주고 있습니다. Distortion(왜곡) 입력 채널은 Constant3Vector (3상수 벡터) 값 (5.0, 5.0, 0.0)을 Exponent (지수)가 1.0인 Fresnel(프레넬) 로 곱해주어 계산하고 있습니다.하부표면 분산
sub-surface scattering(하부표면 분산) 효과를 흉내내기 위해 Transmission(투과) 입력 채널을 사용하는 머티리얼입니다. 이 기술은 피부, 밀랍 등 투명하지는 않지만 반대편의 빛이 투과되어 보이는 느낌을 낼 때 좋습니다. Diffuse(확산)색에는 Constant3vector(3상수 벡터) 가 물려 있는데, 만들려는 머티리얼에 따라 TextureSample(텍스처 샘플) 을 쓸 수도 있습니다. SpecularPower(반사력)에는 Constant(상수) 값 25.0을 물려 하이라이트를 꽤 집중시킨 반면, Specular(반사)색에는 상수 값 0.5를 물려 하이라이트를 좀 희미하게 해 놨습니다. 예제의 TransmissionMask(투과 마스크)에는 Diffuse(확산)색의 어두운 버전 3상수 벡터가 물려 있습니다. Diffuse(확산)색에서와 마찬가지로 텍스처 샘플이 될 수도 있습니다.디테일
어떤 것은 원거리에서 큰 디테일, 어떤 것은 근거리에서 작은 디테일을 표시하기 위해 디퓨즈와 노멀 맵 여럿을 혼합시킨 머티리얼입니다. 흔히 돌, 바위, 콘크리트 느낌에 사용됩니다. TextureCoordinate(텍스처 좌표) 표현식 하나를 두 개의 Constant(상수), 하나는 0.5 또하나는 4.0 값으로 곱해준 다음 디퓨즈와 노멀 맵의 UV 입력에 연결해 주고 있습니다. 0.5를 곱해준 텍스처 좌표는 큰 쪽, 원거리 디테일용 디퓨즈와 노멀 맵 TextureSample(텍스처 샘플) 의 UV 입력에 연결됩니다. 4.0을 곱해준 텍스처 좌표는 작은 쪽, 원거리 디테일용 디퓨즈와 노멀 맵 텍스처 샘플의 UV 입력에 연결됩니다. 디퓨즈 텍스처 샘플 둘은 Add(합) 표현식을 사용해서 혼합시킨 다음 Diffuse(확산) 입력 채널에, 노멀 맵 텍스처 샘플 둘 역시 합 표현식을 사용해서 혼합시킨 다음 Normal(법선) 입력 채널에 연결해 주고 있습니다. 이 예제는 스페큘러 하이라이트를 희미하고 퍼뜨려 놓은 콘크리트 머티리얼입니다.UV 좌표 움직이기
Panner(패너) 및 Rotator(회전기) 표현식의 사용을 통해 텍스처의 UV 좌표를 움직이는 다양한 방법에 대한 데모 예제입니다.회전하기
(커서를 올리면 움직입니다.)패닝 및 왜곡
(커서를 올리면 움직입니다.)
|
|