Unity 라이트맵 경계 부분 꿰매기 설명서
이 문서에서는 Unity의 라이트맵 경계 부분 꿰매기 기능과 이의 활용 방법에 대해 설명합니다.
심 스티칭(Seam Stitching) 소개
심 스티칭은 프로그레시브 라이트매퍼에서 생성된 베이크된 라이트맵을 통해 게임 오브젝트에서 원치 않는 하드 에지를 부드럽게 처리하는 기술입니다. 이 과정은 경계 부분의 모양을 개선하여 더욱 자연스러운 조명을 제공합니다.
경계 부분
- 메시의 가장자리를 "경계 부분"이라고 하며, 이는 서로 가까운 메시 면이 하드 에지로 나타나는 문제를 야기합니다.
- 이상적으로는 경계 부분이 보이지 않아야 하지만, GPU는 라이트맵에서 서로 분리된 차트의 텍셀 값을 혼합할 수 없어 문제가 발생합니다.
심 스티칭의 작동 방식
- Unity는 추가적인 연산을 통해 라이트맵을 수정하여 하드 에지를 부드럽게 만듭니다.
- 심 스티칭은 기본적으로 비활성화되어 있으며, 활성화 시에는 경계 부분에 부드러운 조명을 생성합니다.
심 스티칭의 제한 사항
- 심 스티칭은 프로그레시브 라이트매퍼에서만 작동합니다.
- 단일 게임 오브젝트에 대해서만 적용 가능하며, 여러 개의 게임 오브젝트에는 매끄럽게 작용하지 않습니다.
심 스티칭 활성화 방법
- Mesh Renderer 컴포넌트를 사용하여 심 스티칭을 활성화할 수 있습니다.
- Mesh Renderer 인스펙터에서
Lightmapping
섹션의Stitch Seams
옵션으로 이동합니다. - 또는
MeshRenderer.stitchLightmapSeams
API를 이용할 수 있습니다.
사용 예제
아래는 심 스티칭을 활성화하는 간단한 코드 예제입니다:
using UnityEngine;
public class ActivateSeamStitching : MonoBehaviour
{
void Start()
{
MeshRenderer meshRenderer = GetComponent<MeshRenderer>();
if (meshRenderer != null)
{
meshRenderer.stitchLightmapSeams = true; // 심 스티칭 활성화
}
}
}
마무리
Unity의 심 스티칭 기능은 라이트맵의 시각적 품질을 향상시키는 유용한 도구입니다. 이 기능을 적절히 활용하여 게임 그래픽의 품질을 개선할 수 있습니다.