광고 영역 320x100
Stable Diffusion

저는 완전히 로컬에서 실행되는 실시간 360 체적 환경 생성기를 구축했습니다. Unity 엔진 내에서 SD.cpp, Depth Anything V2 및 LaMa를 모두 사용합니다.

익명메이커6579·1개월 전·조회 799

저는 VR 내부에서 환경을 생성할 수 있는 "Holodeck" 스타일 경험을 만들고 싶었지만 표준 360 구의 평면 효과를 원하지 않았습니다. 몸을 기울여 장면을 검사할 수 있도록 실제 깊이와 시차가 필요했습니다.

**Unity 구현:**

1. **텍스트를 이미지로:**
* **stable-diffusion.cpp**(C# 바인딩)을 사용하여 등장방형 360 이미지를 생성하고 있습니다.
* 추론 수준에서 **원형 패딩**(타일링)을 활성화했습니다. 이렇게 하면 생성 중에 왼쪽과 오른쪽 가장자리가 완벽하게 연결되므로 이음새를 숨기기 위해 후처리 블렌딩이 필요하지 않습니다.
* 저는 **360° LoRA**와 함께 **Z-Image-Turbo**를 사용하고 있습니다.
2. **깊이 추정:**
* 생성된 이미지는 **Depth Anything V2**에 전달되어 깊이 맵을 생성합니다.
3. **레이어 분할:**
* 저는 히스토그램 기반 접근 방식을 사용하여 장면을 **5개의 서로 다른 심도 레이어**로 분할합니다.
* 이렇게 하면 "2.5D" 형상이 생성되지만 이러한 레이어를 벗겨내면 전경 개체 뒤에 "구멍"이 남게 됩니다.
4. **인페인팅:**
* 배경 레이어의 가려진 부분을 채우기 위해 **LaMa**를 사용합니다. 색상과 깊이를 모두 인페인팅합니다.
5. **렌더링:**
* 최종 결과는 사용자 정의 **Raymarching 셰이더**를 사용하여 렌더링됩니다. 각 레이어에는 자체 깊이 맵이 있습니다. 이는 시차 효과를 생성하여 간단한 변위 맵에서 일반적으로 볼 수 있는 형상이 찢어지거나 늘어나지 않고 머리 움직임(6DOF)을 허용합니다.

DepthAnything과 LaMa는 모두 onnx로 내보내졌으며 Unity의 내장 추론 엔진을 사용합니다.

구현에 관한 모든 질문에 답변해 드리겠습니다.


광고 영역 320x100
0댓글
광고 영역 320x100