나나이트와 하이트 리니어 인터폴레이션을 적용한 버텍스 페인팅 메테리얼을 작성해보았다.
나나이트를 사용해서 디스플레이스먼트를 사용해도 성능에 큰 무리없이 엔진이 잘 돌아간다.
나나이트를 사용하기 위해 메테리얼 설정 값중 <나나이트와 함께 사용됨> 항목을 체크 해주자.
여러 텍스쳐를 사용할때 위해 노드가 복잡하게 구성되지 않도록 어트리뷰트 모드를 사용한다.
< Set material attributes > 에 사용할 속성을 추가하고 알맞게 텍스쳐를 연결한다.
명명된 경유 선언 노드(name)로 결과물 값을 캡쳐하여 해당 결과물을 재 사용할 때 경유 선언노드 하나만 추가해서 복잡하게 노드가 구성되지 않도록 한다.
Height는 강도값을 조절하기 위한 노드 / 이후 하이트 블렌드 설정을 위한 값을 따로 뺀 노드 두 가지를 추가한다.
사용 가능한 경유 노드는 노드 추가 메뉴에 '이름을 가진 경유노드' 탭에서 확인 가능하다.
이전 단계에서 별도로 빼둔 height값의 강도를 조절 하기위해 height값과 상수 파라미터 노드 를 곱해준다.
< Height Lerp with Two Height maps > 노드를 사용해서 하이트 값을 블렌드 해준다.
- transistion phase 에는 버텍스 페인팅을 진행할 때 조절하고 싶은 채널 값을 넣어준다.
- height texture 에는 각각 텍스쳐의 height 값을 넣어준다.
- contrast 에는 각 Height텍스쳐 간의 대비를 조절하기위해 contrast(상수값)을 abs(절대값)으로 변환시켜 넣어준다.
버텍스 페인팅을 진행할때 < Vertex Color > 노드를 통해 각 채널에 할당된 하이트 블렌딩된 결과물의 영역을 마스킹 하기 위해 따로 Alpha값을 빼준다.
버텍스 페인팅의 결과물에서 칠해진 가장자리 부분을 자연스럽게 보이게 하기위해
Height 값에 노이즈 텍스쳐를 Lerp 를 통해 섞어준다.
나나이트를 사용한 하이트 블렌드 버텍스 페인팅은 모델링 모드를 통해 페인팅 해야만 작동이된다.
메테리얼 인스턴스를 생성해서 아까 만든 파라미터 값을 조절 해주면 Height 강도나 대비값 텍스쳐의 크기 등을 조절 할 수 있다.