1. Unreal Material : Nanite + Height Lerp vertex painting

박재원·2025년 2월 9일
0

언리얼 엔진

목록 보기
1/1

나나이트와 하이트 리니어 인터폴레이션을 적용한 버텍스 페인팅 메테리얼을 작성해보았다.
나나이트를 사용해서 디스플레이스먼트를 사용해도 성능에 큰 무리없이 엔진이 잘 돌아간다.

나나이트를 사용하기 위해 메테리얼 설정 값중 <나나이트와 함께 사용됨> 항목을 체크 해주자.

1. 준비된 텍스쳐를 Set Material Attributes 에 연결

여러 텍스쳐를 사용할때 위해 노드가 복잡하게 구성되지 않도록 어트리뷰트 모드를 사용한다.

  • < Set material attributes > 에 사용할 속성을 추가하고 알맞게 텍스쳐를 연결한다.

  • 명명된 경유 선언 노드(name)로 결과물 값을 캡쳐하여 해당 결과물을 재 사용할 때 경유 선언노드 하나만 추가해서 복잡하게 노드가 구성되지 않도록 한다.

  • Height는 강도값을 조절하기 위한 노드 / 이후 하이트 블렌드 설정을 위한 값을 따로 뺀 노드 두 가지를 추가한다.

사용 가능한 경유 노드는 노드 추가 메뉴에 '이름을 가진 경유노드' 탭에서 확인 가능하다.

2. 하이트 블렌드 노드 작성

  • 이전 단계에서 별도로 빼둔 height값의 강도를 조절 하기위해 height값과 상수 파라미터 노드 를 곱해준다.

  • < Height Lerp with Two Height maps > 노드를 사용해서 하이트 값을 블렌드 해준다.

    1. transistion phase 에는 버텍스 페인팅을 진행할 때 조절하고 싶은 채널 값을 넣어준다.
    2. height texture 에는 각각 텍스쳐의 height 값을 넣어준다.
    3. contrast 에는 각 Height텍스쳐 간의 대비를 조절하기위해 contrast(상수값)을 abs(절대값)으로 변환시켜 넣어준다.
  • 버텍스 페인팅을 진행할때 < Vertex Color > 노드를 통해 각 채널에 할당된 하이트 블렌딩된 결과물의 영역을 마스킹 하기 위해 따로 Alpha값을 빼준다.

  • 버텍스 페인팅의 결과물에서 칠해진 가장자리 부분을 자연스럽게 보이게 하기위해
    Height 값에 노이즈 텍스쳐를 Lerp 를 통해 섞어준다.

3. 각 설정된 결과값을 Blend Material Attributes 에 연결

  • 작성한 각 노드값 경유노드를 불러와서 하나로 blend 시킨다.
  • 블랜드를 한 값의 알파는 하이트 블랜드 노드를 작성했을때 따로 빼둔 alpha 값을 사용한다.

4. 모델링 모드에서 vertex painting 진행

나나이트를 사용한 하이트 블렌드 버텍스 페인팅은 모델링 모드를 통해 페인팅 해야만 작동이된다.

  • 페인트 컬러는 검정(0,0,0) 컬러 지우기는 (1,1,1) 로 설정해서 페인팅 한다.
  • 채널 필터를 바꿔가며 설정한 원하는 텍스쳐를 칠해준다.

    메테리얼 인스턴스를 생성해서 아까 만든 파라미터 값을 조절 해주면 Height 강도나 대비값 텍스쳐의 크기 등을 조절 할 수 있다.

profile
배경모델링 열심히 공부하는 모델러

0개의 댓글