게임 개발 · 기술 동향미로의 개발노트
카테고리

MonoGame

MonoGame 3.8.6.1, 화면을 지운 뒤 남는 잘라내기 상태 수정

모아보기 · 소식 기준일 · 블로그 공개

DesktopGL에서 Clear 이후 이전 scissor 상태가 남는 문제를 손봤습니다.

Khronos glTF BoxVertexColors 렌더 샘플
Khronos glTF BoxVertexColors 그래픽 참고 샘플입니다. 2023, Public. · 이미지 출처 · 이용 조건

발표 내용

DesktopGL에서 화면을 지운 뒤에도 이전 잘라내기 상태가 남는 문제를 3.8.6.1에서 수정했습니다. Mac 호스트에서 실패하던 Vulkan 테스트도 보완했습니다.

확인할 부분

게임 장면의 일부만 그리는 UI나 분할 화면을 쓰는 프로젝트라면, 영역을 설정한 뒤 화면을 지우고 다시 그리는 흐름에서 차이를 확인할 수 있어요.

화면을 지울 때에도 이전 상태가 남을 수 있어요

화면의 일부만 그리는 기능은 목록이나 작은 지도처럼 정해진 영역 밖에 픽셀이 보이면 안 될 때 필요합니다. 그리기 단계가 끝난 뒤에도 이전 영역이 남으면, 다음 장면에서 화면을 비울 때 예상과 다른 부분만 바뀌거나 이전 프레임의 일부가 남을 수 있어요. 이 문제는 잘라내기를 전혀 쓰지 않는 빈 장면에서는 재현하기 어렵습니다.

작은 재현 장면에는 먼저 배경 전체를 한 색으로 칠하고 가운데 좁은 영역만 그리도록 지정합니다. 그 상태를 거친 뒤 다음 프레임에 다른 색으로 화면을 지웁니다. 화면의 모서리와 가운데가 모두 새 색인지 비교하면 이전 영역이 남는 경우를 쉽게 구분할 수 있어요. 같은 장면에서 다시 UI를 그려 잘라내기가 필요한 곳에서는 여전히 제대로 동작하는지 확인합니다.

장면마다 상태를 명시적으로 다시 지정하는 프로젝트에서는 엔진 수정의 영향이 눈에 잘 띄지 않을 수도 있어요. 반대로 여러 그리기 단계에서 상태를 공유한다면 메뉴를 열었다 닫는 동작과 화면 크기 변경을 함께 시험할 만합니다. Mac의 Vulkan 테스트 수정은 공식 릴리스에 함께 포함됐지만, DesktopGL 화면에서 보던 재현과 동일한 검증은 아닙니다. 사용 중인 백엔드를 명시하면 어떤 변경이 해당 프로젝트의 결과에 영향을 주었는지 판단하기 쉽습니다.

출처

같은 카테고리의 글

최신 게임 개발 동향 전체 보기 ↗