테스트 HLOD 세팅 값.

  • HLOD Level 0
    • Cluster generation settings
      • Desired Bound Radius : 10000.0
      • Desired Filling Percentage : 50.0
      • Min Number Of Actors to Build : 2
    • Mesh generation settings
      • Transition Screen Size : 0.5
  • HLOD Level 1
    • Cluster generation settings
      • Desired Bound Radius : 25000.0
      • Desired Filling Percentage : 37.5
      • Min Number Of Actors to Build : 2
    • Mesh generation settings
      • Transition Screen Size : 0.3
  • HLOD Level 2
    • Cluster generation settings
      • Desired Bound Radius : 52500.0
      • Desired Filling Percentage : 28.125
      • Min Number Of Actors to Build : 2
    • Mesh generation settings
      • Transition Screen Size : 0.225
  • HLOD Level 3
    • Cluster generation settings
      • Desired Bound Radius : 131250.0
      • Desired Filling Percentage : 21.09375
      • Min Number Of Actors to Build : 2
    • Mesh generation settings
      • Transition Screen Size : 0.16875

[UE4] ImposterBaker + HLOD 적용

Imposter Baker

3D오브젝트를 평면, 반원, 구의 형태로 캡쳐 하여 스프라이트 형식의 텍스쳐를 생성 하여 기존의 단순한 2D 기반의 빌보드의 형태 ( 트레디셔널 방식 ) 에서 부터 3D 처럼 생긴 빌보드 ( 옥타헤드럴 방식 ) 의 기능을 제공.

기존의 빌보드는 단순히 랜더링하는 오브젝트를 바라보는 수준이었지만, 임포스터베이커는 진화한 형태의 빌보드라 할 수 있다.

HLOD  – Hierarchical Level of Detail

HLOD는 월드에 배치 되어있는 오브젝트를 (보통은 카메라의) 거리에 따라 디테일을 틀리게 설정해주는 기법. 멀리있을때는 낮은 디테일의 리소스로 가까이 있어서 자세히 봐야 할때는 높은 디테일의 리소스 ( 메시, 텍스쳐, 그림자, 라이트 등) 로 변경.

거리별 mesh actor 들을 하나로 묶어서 드로우 콜을 줄여주는 등의 기능을 간단한 설정으로 최적화를 할수 있도록 도와주는 기능이다.

장점

이 두가지를 섞어서 사용하면 매우 많은 드로우콜과 메시들의 트라이앵글수를 감소 시킬 수 있으며, 더불어 메시 액터들의 LOD 로우폴리로 설정한 메시들 보다 (훨씬) 더 나은 디테일을 가져 갈 수도 있다.

자세한 내용은 아래의 유튜브 링크를 통해 확인.

프로젝트 테스트하면서 확인 된 이슈들

언리얼엔진 4.19 에서는 임포스터 베이커는 적용이 되지만, 임포스터 베이커를 적용시킨 액터를 HLOD 와 같이 사용 하는것은 안된다.

  • Actor 의 HLOD 항목중에 “Use MaxLOD as Imposter” 항목이 엔진에 적용이 되어 있지 않기 때문에, 임포스터가 적용된 액터들을 HLOD 의 프록시 메시로 생성 시, 임포스터가 적용된 오브젝트가 보이는것이 아니고 떨렁 매시 한조각만 보이게 되는것을 확인 할 수 있다.

언리얼엔진 4.20  사용시 임포스터베이커를 사용시 블루프린트의 노드를 수정해야한다.

  • “BP_Generate_ImposterSprites” 블루프린트를 열어보면, Construction Script 안의 Scene Capture Setup 항목 에서SceneCaptureComponent2D 의 StaticMeshActor 변수를 초기화 부분을 보면, 기전에는 그냥 변수를 끌어와서 거기다가 배열을 생성해서 넣게 되어 있는데, 이 부분이 엔진 버전업이 되면서, Array에서 제공하는 SetElem 함수로 액터를 넣게 변경이 되었다.
  • 특정 조건에서 “Use MaxLOD as Imposter” 항목이 체크 되었을때 0을 나누기 했다는 에러 메세지와 함께 에디터가 종료되는 증상이 있어서 확인 중.

테스트 중인 영상과 사용방법에 대한 이슈

배경 어셋들을 임포스터화 시킨다음에 HLOD 로 묶어서 사용 하는 것으로 생각 하고 있었지만, 그게 아니고 HLOD로 만들어진 클러스터의 오브젝트 들에 대한 것들을 임포스터 화 해서 사용하는 것 같다. 현재 아래의 영상은 HLOD로 클러스터로 묶어서 나온 액터들을 임포스터 화 해서 빌드 한후 드로우 콜과 트라이앵글 수를 체크해 보았다. 만약 이런 방식이라면 관리 와 수정등등이 매우 복잡해서 쓰기가 꺼려질것 같은데, 좀더 체크 해 보아야 할 듯 하다.

  • 드로우콜 수
  • 트라이앵글 수

다음목표

    1. 캐릭터와 에니메이션에 관련된 최적화에 대한 고민
    2. 그외의 최적화에 관련된 고민

유튜브링크 : 옥타헤드럴 임포스터 & HLOD 섹션 부터 시작 – 포트나이트 모바일 아트 최적화

임포스터 및 HLOD 설정 가이드

  • 사용엔진버전 : 언리얼 4.20.2 버전
  • 사용플러그인 : 임포스터 베이커

Git 원격저장소에 Push 후 GitLab CI Runner 를 통한 빌드 자동화

“Git 원격 레포지토리 설정 및 SourceTree 를 사용하여 UE4 프로젝트 Push” 포스팅 에서 사용한 샘플 프로젝트 – Example.7z 안 의 .gitlab-ci.yml 은 GitLab CI 의설정 파일이고, 열어보면 설정된 러너태그인 “windowbuildpc” 일 때만 GitLab CI Pipeline의 Job이 실행 되도록 설정이 되어 있다.

다음목표

  1. GitLab 공식 사이트에서 CI 설정 하는 방법 추가.
    1. 공식 사이트의 GitLab CI 샘플 원격 레포지토리 링크
  2. CI 설정을 원하는 테스트 및 자동화된 배포 환경을 구성.
  3. .gitlab-ci.yml 설정법에 대한 깊은 이해.

GitLab Runner 설정 및 CI 설정 법

계속 읽기 “Git 원격저장소에 Push 후 GitLab CI Runner 를 통한 빌드 자동화”

Git 원격 레포지토리 설정 및 SourceTree 를 사용하여 UE4 프로젝트 Push

git을 사용할때 대표적이고 편한 툴로 ‘SourceTree’ 를 꼽을 수 있으니, 깃 클라이언트 툴은 정했고 이걸 이용해서 원격 레포지토리에 연동을 해놓은 뒤 기존에 만들어 놓은 언리얼 프로젝트를 Push 하는 방식으로 진행.

다음목표

  1. Git 원격저장소에 Push 후 GitLab CI pipeline 을 통한 빌드 자동화 – 완료

원격 레포지토리의 설정 및 프로젝트의 Push 가이드

  • 언리얼샘플프로젝트(4.19.2) 파일 링크 : Example.7z

계속 읽기 “Git 원격 레포지토리 설정 및 SourceTree 를 사용하여 UE4 프로젝트 Push”

Synology 에 GitLab 설치 및 프로젝트(UE4)용 원격 레포지토리 생성

시놀로지에서 지원하는 애플리케이션의 설치는 정말 직관적이고 쉽게 되어있어서 좋다. 결국 설치되어 있는것들의 설정에 대한 변경 및 수정은 리눅스와 마찬가지로 터미널에서 해야하지만. 정말 편하게 잘 되어있는것은 너무나 감사한일이다.

다음목표

  1. Git 원격 레포지토리 설정 및 SourceTree 를 사용하여 UE4 프로젝트 Push – 완료

 

GitLab 설치와 원격 레포지토리 생성 및 설정 가이드

계속 읽기 “Synology 에 GitLab 설치 및 프로젝트(UE4)용 원격 레포지토리 생성”