래스터 기반 그래픽 컨텐츠에서 해상도 독립성에 어떻게 접근합니까?


32

핸드 헬드와 같이 잠긴 플랫폼 사양에서 실행하기에 충분히 운이 좋지 않은 게임은 다양한 해상도 형식과 종횡비로 실행해야합니다.

3D 게임에서는 래스터 그래픽을 기반으로 한 HUD 또는 메뉴 GUI가있을 수 있으며 2D 게임에서는 스프라이트 용 선박 인 쿼드가있을 수 있습니다.

제 질문은 다양한 해상도와 종횡비에서 콘텐츠를 디자인하고 운영하는 방법에 어떻게 접근합니까? 300x400 픽셀의 스프라이트이고 타일로 만든 레벨로 둘러싸인 스프라이트 문자가 있다고 가정 해 봅시다. 다른 해상도 / 종횡비에서 서로 다른 FOV를 볼 수 있습니다. 또는 HUD 또는 GUI 메뉴가있는 경우 화면과 관련하여 동일한 위치에 같은 크기로 물건을 보관하고 싶을 것입니다. 그러나 그래픽 소스는 벡터가 아닌 래스터 비트 맵입니다.

분명히, 문제는 여러 번 해결되었습니다. 나는 지금까지 당신에게 효과가 있었던 다양한 접근법을 듣고 싶습니다. 해상도와 종횡비 또는 기타 접근 방식을 기반으로 수식을 통해 필요한 치수로 마술처럼 변하는 임의의 크기에 관계없이 '픽셀'단위를 유지합니까?

편집하다:

결론은 종횡비를 열거하는 것입니다. 화면비의 최저 조합 : 해상도는 중요한 것을 디자인하는 것입니다. 당신이 원한다면 안전한 지역. 종횡비는 동일하지만 해상도가 높을수록 스케일링 문제가 간단합니다. 아트 컨텐츠는 최고의 해상도를 위해 설계되었습니다. 더 큰 종횡비는 단순히 안전 영역에있는 것만 큼 중요하지 않은 정보를 제공하여 더 많은 레벨 / FOV를 보여줍니다. 내가 만든이 이미지와 같은 것 . 대체 텍스트


1
이 질문에 대한 답변에서 " 수정 : " 이후에 한 결론에 어떻게 도달했는지 알 수 없습니다 . IMO, 이러한 답변이 부적절하며 답변을받지 않아야합니다. EG : 수락 된 답변은 전체 문제가 아니라 질문에 대해서만 이야기합니다 (스프라이트 스케일링). " edit : " 다음에 말한 내용은 IMO의 답변보다 유용합니다. 그러나 나는 그것을 구현하기에 충분하지 않다. 불행히도, 새로운 질문에 정교함을 요청하면 중복으로 표시됩니다.
Daniel Kaplan

답변:


7

해상도가 서로 비슷한 경우 모든 화면에서 동일한 화면을 사용하여 런타임에 작은 화면을 위해 약간의 다운 스케일을 적용 할 수 있습니다. 두 배 이상 차이가 나면 다른 해상도를 위해 별도의 자산을 작성해야합니다 (또는 최소한 아티스트를 조정해야 함).

2D에서 해상도는 이미지 디자인 방식에 큰 영향을 미칩니다. 고해상도로 상세하고 사실적으로 보이는 스프라이트는 흐릿하고 해독 할 수없는 축소됩니다. 마찬가지로, 저해상도를 깨끗하고 선명하게 보는 스프라이트는 고해상도에서 저렴하고 지나치게 단순 해 보입니다.


가로 세로 비율은 저를 걱정합니다. 예를 들어 종횡비가 동일하기 때문에 1080p에서 720p로 크게 도약하지는 않습니다. 우리는 간단한 스케일링을 다루고 있습니다. 1080p 대 1680x1050이라고 말하면 어떻게됩니까? 더 큰 화면에서 일종의 여백, 더 넓은 FOV를 더 많이 표시합니까? 마찬가지로, 좁은 화면에서 화면이 잘리지 않도록 중요한 모든 내용이 포함 된 안전한 영역으로 넓은 화면을 디자인하십시오.
키 프레임

이 솔루션의 시각적 표현으로 질문을 업데이트하겠습니다. 다른 방법은없는 것 같습니다.
키 프레임

4

한 가지 방법은 이미지 자산을 벡터 형식 (SVG, Illustrator 등)으로 만들어 다른 버전의 게임에서 필요에 따라 래스터 이미지로 변환하는 것입니다.


물론, 나는 그것이 옵션이 아니라는 것을 잊어 버렸습니다. 주요 문제는 래스터 및 벡터 컨텐츠 생성이 완전히 다르다는 것입니다 (래스터는 아티스트에게 훨씬 우수함). 하나의 옵션은 여러 래스터 자산을 만드는 것이지만 더 나은 솔루션이 있어야한다고 생각합니다. 예를 들어, 지원되는 최대 해상도 / 종횡비에 대한 자산을 생성하고 저해상도 런타임 버전에서 축소 또는 축소 할 수 있습니다. 그래도 포지셔닝은 여전히 ​​문제입니다.
키 프레임

예. 품질 손실 및 성능 문제를 해결할 수있는 경우에도 옵션입니다.
Matias Valdenegro

8
"예술가에게 래스터가 더 좋다"는 것이 옳지 않다. 저의 그래픽 아티스트는 바로 이런 이유로 Illustrator를 사용합니다. iPhone 4의 2X 해상도로 업데이트해야 할 때 모든 것을 다시 내보내는 것은 간단한 일이었습니다. 래스터는 자신을 벡터 아티스트로 재교육하고 싶지 않은 Photoshop 아티스트에게는 더 나을 수 있지만 장기적으로는 벡터 기반 그래픽의 전문가가되는 것이 좋습니다. 물리적 플랫폼은 픽셀 단위로 생각하기에는 너무 빠르게 변화하고 있습니다.
크리스 개럿

4

( "작가가 그것을 생산으로"즉)는 픽셀 완벽을 원하는 경우 때이 서로 다른 해상도를 통해 전체 화면 유지 한 다음 문제는 있다는 것입니다 완전히 '규모가 아래로 스프라이트 또는 자동화 된 방법은 아무튼 것을 (또는 그들을 회전하기) 사람의 승인이 필요하지 않습니다. 궁극적으로 픽셀 배치는 주관적인 것이기 때문입니다. 렌더링 알고리즘은 스케일링 또는 회전을 수행하며이를 위해 근사 기법을 사용해야합니다. 이중 선형 필터링. 당신은 여전히 (즉, AA 또는 BF를 사용하지 않는)이 "픽셀 완벽"가하기 위해 픽셀에 하드 가장자리를 원하는 경우에, 당신은 일부 비 전력의-2도에 의한 스케일링을 받아 들여야가는 에 바람직하지 않은 아티팩트를 생성합니다.

비슷한 문제에 대한 흥미로운 접근 방식 은 스프라이트의 "자동"회전을 수행하도록 설계된 응용 프로그램 / 알고리즘 인 RotSprite 에서 찾을 수 있습니다. 즉, 집중적 인 처리 후 작업자가 선택할 수있는 여러 가지 바람직한 최종 결과가 나옵니다. 손으로 고른 스프라이트는 결국 게임에 들어가게됩니다. 즉 이것은 런타임이 아닌 콘텐츠 제작 단계입니다.

"임의의 마법 차원 불가지론 적 픽셀"질문에 대한 한 가지 가능한 대답 : OpenGL (크로스 플랫폼을 사용하는 경우에도 사용하려고 할 수도 있음)은 소프트웨어 래스터 렌더러와 완전히 다른 방식으로 작동합니다. 부동 소수점 범위 0.0-> 1.0의 디스플레이 너비와 높이를 고려하여 GPU에 따라 픽셀을 매핑합니다. 물론 이것은 예를 들어서가 아니라면 인공물을 초래할 수 있습니다. 텍스처에 대해 BF가 설정되어 있습니다 (스파이 라이트가 OpenGL에있는 것임).


이것은 평평하지 않습니다. 어떤 종횡비에서도 픽셀을 완벽하게 유지하기 위해 스케일링 대신 컴포지션 및 반복 가능한 요소 (타일 생각)를 사용할 수 있습니다. 물론 요소가 더 높은 해상도에서 작 으면 점점 작아집니다. 따라서 2X 스케일링 또는 다른 해상도 자산이 필요합니다.
adrix89
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.