방문자

오늘
—
어제
—
누적
—

불러오는 중

게임 개발 · 기술 동향 · 팀 블로그MIRO
헤드라인

Pixora

외곽선에도 표면색이 필요할 때

표면색을 따르는 외곽선 변경 전
표면색을 따르는 외곽선 변경 전

모든 경계를 같은 갈색으로 그리던 상태

Pixora의 시장 장면에서 나무와 지붕, 차양의 경계가 공통 갈색으로 표시되고 있었습니다. 물체마다 다른 표면색을 사용해도 외곽선이 같은 색이면 경계에서 재질의 차이가 약해집니다. 이번에는 경계를 만든 표면의 색을 선에도 반영했습니다.

표면색을 따르는 외곽선 변경 전

변경 전에는 서로 다른 표면의 경계에 공통 갈색을 사용했습니다.

경계를 찾는 정보와 선을 칠하는 정보를 나눴습니다

기존 옵션인 objectColorOutline을 켜고, 선색 계산에 사용할 표면 샘플을 경계 쪽에 고정했습니다. 보고서의 계산 기준은 현재 표면 RGB에 0.6을 곱하는 방식입니다. 배경이나 더 밝은 이웃 면의 색으로 바뀌지 않도록 한 것이 핵심입니다.

법선은 경계를 찾는 데 사용하고, 선의 색은 표면색에서 가져옵니다. 어떤 픽셀이 경계인지 결정하는 과정과 그 경계를 무슨 색으로 표시할지 결정하는 과정을 구분했습니다.

표면색을 따르는 외곽선 변경 후

변경 후 실제 Unity 렌더입니다. 표면에 따라 외곽선 색이 달라집니다.

같은 물체 안에서도 색이 달라지는지 확인했습니다

시장 장면만 보면 서로 다른 물체에 다른 색을 준 결과와 구분하기 어렵습니다. 그래서 빨강과 초록이 함께 들어 있는 텍스처를 실제 Quad에 적용해, 양쪽 경계가 각각 해당 위치의 색을 따르는지 확인했습니다.

기존 카메라와 배치, 메시 오브젝트 450개는 유지했습니다. Unity 6000.0.83f1 Built-in에서 저장 후 다시 연 출력이 동일했고, 팔레트 밖 픽셀과 3×3 격자 불일치가 없으며 출력 색 32개도 유지됐습니다.

확인한 렌더 환경을 넘어 일반화하지 않았습니다

이번 작업은 표면색을 사용하는 선 표현과 실제 Built-in 렌더를 확인한 결과입니다. URP 렌더나 에디터의 언어별 UI 배치, 실제 입력 조작까지 확인한 것은 아닙니다. 법선 기반 경계 검출에 있던 한계도 그대로 남아 있습니다. 외곽선의 색이 좋아졌다는 결과와 경계 검출 전체가 개선됐다는 평가는 구분합니다.

검출과 색 선택을 나눠 읽는 방법

아래 도표는 원본 보고서에 나온 역할을 정리한 설명입니다. 실제 셰이더 함수의 호출 순서를 복원한 코드는 아닙니다.

flowchart TD
    A["법선 기반 경계 검출"] --> C["표시할 경계 픽셀"]
    B["해당 표면의 색 샘플"] --> D["표면 RGB에 0.6 적용"]
    C --> E["표면색을 따른 외곽선"]
    D --> E

경계 위치가 틀렸다면 색을 조정하기 전에 검출 조건부터 봐야 합니다. 반대로 위치는 맞는데 이웃 면의 색이 묻어나면 색 샘플을 어디서 읽는지 확인해야 합니다. 서로 다른 문제를 하나의 외곽선 옵션으로만 보면 원인을 좁히기 어렵습니다.

빨강과 초록을 한 Quad에 넣은 검사도 이 구분을 위한 것이었습니다. 물체 단위로 색을 한 번만 고르면 두 끝에 같은 선색이 나올 수 있지만, 텍스처 위치를 제대로 읽으면 경계가 놓인 쪽의 색이 반영됩니다. 다만 이 간단한 검사만으로 복잡한 표면의 모든 모서리와 화면 가장자리까지 확인한 것으로 보지는 않습니다. 실제 장면과 단순 검사를 함께 남겨야 무엇을 증명했는지 설명하기 쉽습니다.

작업 근거

댓글

이 글에 대한 생각을 남겨 주세요.

댓글 삭제

헤드라인

같은 카테고리의 글

프로젝트 개발일지 전체 보기 ↗