k•KINDNICK김광진 · 포트폴리오
← 전체 작업
3D·인터랙션 / Blender 배경 제작

고딕 판타지 정원

Unity 적용·수정
제작 결과

고딕 정원의 건축·포장·식생과 밤 분위기를 제작하고 Unity에 적용했습니다. 대량 식생의 부하, 변환 중 재질 오류와 실시간 간접광 입력의 GPU 크래시를 다뤘습니다.

내가 한 일

Blender 환경 제작·식생과 메시 가공·UV·재질 전환·Unity 렌더링 도구·GPU 크래시 원인 분리

  • Blender 환경과 Unity 씬·재질·조명을 구성했습니다.
  • 식생의 공유 메시·거리별 표시와 고정 메시 병합을 개발했습니다.
  • 재질 변환 오류를 복구하고 GPU 크래시를 입력 경로별로 분리해 대응했습니다.
2026.10 · V15 Blender 정면 렌더 · Unity 전환 준비 단계. 외부 나무·텍스처와 생성 하늘 이미지는 별도 출처를 사용했습니다.
작업 사진

고딕 정원의 공간과 식생 제작

건축·바닥·식생과 밤 분위기를 구성한 Blender 정면 렌더입니다.

내가 한 일

환경과 메시·식생·재질을 제작·가공하고 이후 Unity 전환과 렌더링 문제를 수정했습니다.

자료 범위

이 이미지는 초기 V15 Blender 렌더입니다. 이후 Unity 검수 결과는 기술 설명에서 구분합니다.

기술과 문제 해결 과정구현 방법 · 문제 해결 사례 3개 · 시험 조건

작업 배경

상세한 Blender 원본을 Unity로 옮기면서 화면을 유지해야 했습니다. 수많은 개별 Renderer와 그림자 제출 비용이 컸고, 메시·아틀라스 변환 오류와 실시간 GI의 불안정성도 따로 해결해야 했습니다.

구현한 내용

  1. 01

    석재 원호·원형 포장·철책·성·식생을 구성하고 지지·접합·표면을 보완했습니다. 외부 나무와 스캔 텍스처는 직접 만든 형상·프로시저 재질과 출처를 구분했습니다.

  2. 02

    편집 원본을 보존하면서 라이트맵 UV·텍스처 전달본과 나무 LOD를 준비한 뒤 실제 Unity 씬·프리팹으로 반입했습니다.

  3. 03

    나무 960그루를 공유 메시·변환 행렬로 그리도록 구성하고 카메라별 컬링·LOD와 그림자 전용 공간 버킷을 적용했습니다. 고정 메시도 재질·설정·공간 셀을 기준으로 병합했습니다.

  4. 04

    재질 슬롯 초기화로 틀어진 면별 재질을 원본과 대조해 복구했습니다. 노멀 렌더 뒤 컬러 재질이 복원되지 않던 아틀라스 캡처 과정도 수정했습니다.

  5. 05

    DX12 첫 재생 프레임 GPU 크래시는 SCGI 입력을 끈 대조 실험으로 원인을 좁혔습니다. 카메라마다 메시가 바뀌는 식생을 GI 입력에서 제외하고 고정 불투명 구조물만 기여하도록 분리했습니다.

  6. 06

    후속 미술 작업에서는 원본 재질과 다른 배경을 보존한 채 달빛·꽃·안개·실내외 실용광을 수정했습니다.

BlenderUnity환경 제작GPU 인스턴싱LOD재질 복구프로파일링SCGI
문제 해결

어떤 문제를 다뤘는지

01

식생 수를 유지하면서 렌더 제출 구조 변경

문제
나무와 식생을 개별 Renderer로 제출하면서 draw call과 그림자 처리 비용이 커졌습니다. 전체를 하나의 메시로 합치면 공간 컬링이 어려워지는 문제도 있었습니다.
처리 방법
나무 960그루의 배치를 공유 메시와 행렬 버퍼로 유지하고 카메라별 프러스텀 컬링·수관 화면 크기 기반 LOD를 적용했습니다. 고정 메시 6,203개는 재질·설정과 5m 공간 셀에 따라 840개 묶음으로 나눴고 작은 잎 카드는 화면상 위치 오차를 기준으로 저해상도 메시를 선택했습니다.
결과·범위
V27 정면 기록에서 draw call은 약46,300→10,641, 패스 포함 삼각형은 약120.4M→47.3M으로 줄었습니다. 카메라·조명·재질도 함께 수정한 결과이므로 단일 최적화의 성능 배수로 사용하지 않습니다. 인스턴싱은 CPU 행렬 버킷을 사용하는 방식이며 전체 GPU Compute/Indirect 구현은 아닙니다.
02

전환 중 틀어진 면 재질과 컬러 아틀라스 복구

문제
메시 병합 과정에서 재질 슬롯을 비운 뒤 면별 재질 번호가 초기화됐고, 아틀라스 촬영은 normal pass 뒤 원본 컬러 재질을 복원하지 않아 다음 타일의 색을 잘못 저장했습니다.
처리 방법
원본 삼각형 위치와 면별 재질 정보를 대조해 대응하는 부분만 복구했습니다. 컬러 아틀라스는 원본 재질로 다시 촬영해 기존 UV와 alpha를 유지하고, 석재 roughness는 Unity 셰이더가 요구하는 맵으로 재포장했습니다.
결과·범위
확실히 대응한 면의 재질과 컬러 아틀라스 29장을 복구했습니다. 새 컬러 아틀라스의 alpha 변경 픽셀과 누락 타일은 기록상0이며, 원본 Blender 전체 파일은 보존했습니다. 전체 렌더가 원본과 완전히 동일하다는 의미는 아닙니다.
03

보이는 식생을 유지하며 DX12 GI 입력 크래시 대응

문제
통합 방송·정원 씬에서 DX12 재생 첫 프레임 device-hung이 재현됐습니다. 같은 구성에서 SCGI 입력 마스크만0으로 만들면 재생이 진행돼 지오메트리 입력 경로를 의심했습니다.
처리 방법
SCGI 입력을 고정된 불투명 구조물339개로 제한하고 카메라마다 메시를 교체하는 식생 LOD를 제외했습니다. 별도 rendering layer bit를 추가하면서 기존 렌더링·직접광·그림자 비트는 보존했고, Scene 카메라가 사용한 임시 LOD는 렌더 뒤 복구했습니다.
결과·범위
기록된 동일 Editor 반복 Play/Stop 3회와 완전 재시작 후 재생 시험에서 첫 프레임 크래시가 다시 발생하지 않았습니다. SCGI 입력 삼각형은 약95.1% 줄었지만 화면 전체의 폴리곤 감소율은 아닙니다. Unity·드라이버의 근본 원인이나 장시간 방송 안정성을 확정하지 않았고 세부 식생의 GI 기여는 근사로 남습니다.
구현과 검증 범위

Blender 원본·Unity 메인 씬/프리팹 적용. V27 렌더 최적화, V31 메인 Renderer 통합, V34 SCGI 크래시 대응, V35 달빛 미술 수정까지 기록 확인.

실행·측정 결과는 각 사례에 적힌 당시 기록과 조건을 따릅니다.

시험 조건과 적용 범위

기존 'Unity 전환 준비' 설명보다 진행된 Unity 적용·Play 검수 기록이 확인됐습니다. V27의 전용 Renderer 구성·성능 수치를 이후 V31/V34의 메인 Renderer·SCGI 구성에 그대로 적용하지 않습니다. V27 작업 전후 draw call·삼각형 감소는 카메라·조명·재질도 함께 바뀐 결과입니다. V34의 짧은 측정은 1920×1080·180프레임 약51.15FPS이며 장시간 방송이나 독립 Player 성능 증거가 아닙니다. V35의 후속 색·움직임 조정 전체를 다시 Play 검증한 것은 아닙니다.

활동
Blender 배경 제작
작업 구분
Unity 적용·수정