이 예에서는 두 개의 텍스처 노드를 만들고 혼합하는 방법에 대해 설명합니다.
다음 방법을 보여줍니다.
- 부동 노드를 사용하여 텍스처 혼합
- 정점을 페인팅하여 텍스처 혼합
- 자체적으로 반복하고 서로 다른 효과를 생성하도록 텍스처 곱하기
예: ShaderFX 셰이더 만들기 및 ShaderFX 편집기 열기
- 투시 뷰포트에서 평면 오브젝트를 만듭니다.
- 재질 편집기를 열고 DirectX 셰이더 재질을 평면에 적용합니다.
슬레이트 재질 편집기를 사용하는 경우 해당 매개변수를 표시하려면 DirectX 셰이더 노드를 두 번 클릭합니다.
- DirectX 셰이더 롤아웃의 드롭다운 리스트에서 ShaderFX를 선택한 다음 ShaderFX 열기를 클릭합니다.
3ds Max에 ShaderFX 편집기가 열립니다.
예(계속): 두 개의 텍스처를 만들고 부동 노드를 사용하여 혼합
- ShaderFX 작업 영역을 마우스 오른쪽 버튼으로 클릭합니다. 마우스 오른쪽 버튼 클릭 메뉴에서 하드웨어 셰이더 노드 텍스처 텍스처 맵을 선택합니다.
ShaderFX가 TextureMap 노드를 그래프에 추가합니다.
- TextureMap 노드를 클릭하여 특성 패널의 설정을 작업 영역의 오른쪽에 표시합니다.
- 특성 패널에서 MyTexture/경로 옆에 있는 찾아보기 버튼을 클릭합니다.
파일 대화상자가 열리면 텍스처 파일을 선택합니다. 이 예에서는 콘크리트 텍스처를 사용합니다.
- 두 번째 텍스처를 위해 1단계와 2단계를 반복합니다. 이 예에서는 잔디 텍스처를 사용합니다.
텍스처 제공: www.cgtextures.com
- 작업 영역을 마우스 오른쪽 버튼으로 클릭하고 하드웨어 셰이더 노드 수학 선형 보간 혼합을 선택하여 두 텍스처를 결합하기 위한 LerpOp 노드를 만듭니다.
- 마우스 오른쪽 버튼을 클릭하고 하드웨어 셰이더 노드 값 부동을 선택하여 부동 값이 포함된 Val 노드를 만듭니다.
- 첫 번째 텍스처 맵의 색상 속성을 LerpOp의 첫 번째 값 속성에 연결합니다.
- 두 번째 텍스처 맵의 색상 속성을 LerpOp의 두 번째 값 속성에 연결합니다.
- Val 노드의 부동 속성을 LerpOp의 혼합 속성에 연결합니다.
부동 값은 각 텍스처가 혼합된 결과에 적용되는 정도를 제어합니다. 예를 들어 0.2로 설정되면 결과 텍스처에서 콘크리트 텍스처의 비중이 더 큽니다. 0.8로 설정되면 결과 텍스처에서 잔디 텍스처의 비중이 더 큽니다. 0.5로 설정되면 두 가지가 균등하게 혼합됩니다.
- 결과의 견본을 보려면 큰 미리 보기가 표시될 때까지 선형 보간 노드의 상단에서 렌더 견본 아이콘 을 클릭합니다.
부동이 0.2로 설정된 경우
.
선형 보간 혼합 미리 보기 견본에서 콘크리트 텍스처의 비중이 더 큽니다.
부동이 0.5로 설정된 경우
.
콘크리트와 잔디 텍스처가 균등하게 혼합됩니다.
부동이 0.8로 설정된 경우
.
잔디 텍스처의 비중이 더 큽니다.
- LerpOp의 결과 속성을 TraditionalGameSurfaceShader 노드의 분산 색상 속성에 연결합니다.
이제 사실적 뷰포트 또는 음영 처리 뷰포트에서 셰이더를 시각화할 수 있습니다.
예(계속): 정점 색상 노드를 사용하여 텍스처 혼합
- 마우스 오른쪽 버튼을 클릭하고 하드웨어 셰이더 노드 입력 공통 정점 색상을 선택합니다.
부동 노드를 사용하지 않고 정점 색상을 사용하여 텍스처를 혼합합니다.
- 선형 보간에서 부동 노드를 연결하는 연결하는 와이어를 클릭하여 강조 표시한 다음 Delete 키를 누릅니다.
- VertexColor의 빨간색 속성을 LerpOp의 혼합 속성에 연결합니다. 이렇게 하면 빨간색 채널을 사용하여 텍스처를 혼합합니다.
- 뷰포트에서 평면 오브젝트가 선택되어 있는지 확인합니다. 수정 패널에서 길이 세그먼트 및 폭 세그먼트 값을 20으로 늘립니다. 이렇게 하면 더 많은 정점이 평면에 추가되어 정점 페인팅의 정의가 증가합니다.
- 또한 수정 패널에서 정점 페인트 수정자를 평면에 적용합니다.
3ds Max에 정점 페인트 Paintbox가 열립니다.
이제 일부 정점을 빨간색으로 페인팅합니다. 빨간색으로 페인팅된 정점에 잔디 텍스처가 표시됩니다.
- Paintbox에서 (정점 색상 표시 사용 안 함)을 클릭하여 활성화합니다.
- 기본 색상 견본이 검은색으로 표시되어야 합니다. 검은색이 아닌 경우 클릭한 다음 색상 선택기를 사용하여 검은색으로 변경합니다. (모두 페인트)를 클릭하여 평면을 검은색으로 만듭니다.
정점에 검은색 채널을 할당하면 평면에 콘크리트 텍스처가 표시됩니다.
- 색상 견본을 클릭하고 색상을 밝은 빨간색으로 변경합니다.
- (페인트)를 클릭하고 평면을 페인팅합니다. 빨간색으로 페인팅한 정점은 잔디 텍스처 값을 사용합니다. 이제 정점을 페인팅하여 텍스처를 혼합했습니다.
예(계속): 타일 패턴에서 텍스처를 반복하여 촘촘한 다른 효과를 만들기 위해 텍스처 곱하기
- 수정자 스택에서 정점 페인트 수정자를 클릭하여 강조 표시한 다음 (스택에서 수정자 제거)를 클릭합니다.
- ShaderFX 편집기에서 해당 와이어를 클릭하고 Delete 키를 눌러 VertexColor 노드의 연결을 끊은 다음 Val 노드의 부동 값을 LerpOp의 혼합 속성에 다시 연결합니다.
- VertexColor 노드를 클릭하여 강조 표시한 다음 Delete 키를 누릅니다.
- 마우스 오른쪽 버튼을 클릭하고 하드웨어 셰이더 노드 입력 공통 UV 세트를 선택하여 UV 세트 노드를 만듭니다.
- 마우스 오른쪽 버튼을 클릭하고 하드웨어 셰이더 노드 수학 곱하기를 선택하여 MulOp 노드를 만듭니다.
- 마우스 오른쪽 버튼을 클릭하고 하드웨어 셰이더 노드 값 부동을 선택하여 또 다른 Val 노드를 만듭니다.
- UV 세트 노드의 UV 속성을 MulOp의 첫 번째 값 속성에 연결합니다.
- 새 Val 노드의 부동 속성을 MulOp의 두 번째 값 속성에 연결합니다.
- MulOp 노드의 결과 속성을 패턴을 타일링하려는 TextureMap의 UV 속성에 연결합니다.
- 새 Val 노드를 클릭하여 선택한 다음 특성 패널에서 해당 부동 값을 변경합니다. 패턴을 더 자주 반복하여 촘촘하게 하려면 부동을 높은 값으로 설정하고 패턴을 자주 반복하지 않으려면 부동을 낮은 값으로 설정합니다. TextureMap 노드의 렌더 견본 아이콘을 클릭하여 결과 패턴을 미리 볼 수 있습니다.
값=0.5
값=2.0