최적의 텍스처 크기는 무엇입니까?


12

최근에 다음과 같이 일정량의 텍스처를 단일 텍스처로 묶을 텍스처 패키지를 프로젝트에 추가했습니다.

포장 된 질감

예를 들어이 크기는 582x1023 픽셀입니다. 이 패킹 된 텍스처를 추가하는 목적은 성능을 향상시키는 것이 었으므로 OpenGL (LWJGL 사용) 텍스처에 대한 최적의 텍스처 크기를 찾고 싶었습니다. 내가 찾은 일들은 널리 지원되는 최대 텍스처 크기에 따라, 1024 × 1024을 것 같다 있었다 예를 들어. 분명히 많은 텍스처만이 그것보다 클 것이기 때문에 나에게 이상합니다. 그러면 어떻게됩니까? 나는 대부분의 그래픽 카드가 그보다 큰 텍스처를 지원한다고 확신합니다. 대부분의 그래픽 카드가 예를 들어 4096x4096 텍스처 (또는 그보다 더 큰)를 처리 할 것으로 합리적으로 기대할 수 있습니까?

두 번째 요점으로 오려면 (이것이 여전히 하나의 질문으로 계산되기를 희망하지만 본질적으로 동일한 문제로 귀결됩니다) : 텍스처의 크기가 2의 제곱 (256x256, 512x512, 1024x1024, 2048x2048, ..)이어야하며 나는 그보다 작은 2 개의 힘으로 패킹 된 텍스처를 채운다? 에 따르면 이 질문에 2011 년은 요구 사항이 아니라 성능과 회피 사소한 버그를 개선 할 수 있으며, 이 한 2012 년은 당신 확실히해야 패드의 질감을 말한다. 따라서이 질문은 이전에 요청되었지만 답변이 변경 될 수 있도록 합리적으로 작성되었으며 더 나아가 내 질문에 부분적으로 만 답변합니다. 다른 프로젝트는 어떻게 처리합니까?

TL; DR : 대부분의 그래픽 카드가 처리 할 수있는 텍스처 크기는 무엇입니까? 최적의 텍스처 크기는 무엇입니까? 텍스처 너비를 다음 2의 거듭 제곱으로 채워야합니까?


4
GPU는 2의 거듭 제곱 만 다룹니다. 텍스처를 수동으로 패딩하지 않으면 GPU (또는 선택한 게임 엔진)가이를 대신하여 런타임에 텍스처 당 약간의 지연이 발생하여 합쳐질 수 있습니다. 그래도 최대 / 최적의 텍스처 크기에 대한 도움말을 제공 할 수 없습니다.
ketura

@ketura 아, 감사합니다. 513x10의 이미지가 있다고 가정 해보십시오. 1024x1024로 채우고 빈 픽셀을 모두 전송하거나 GPU가 그렇게하도록하는 것이 더 빠릅니까?
flotothemoon

4
당신은 그렇게 높이 갈 필요가 없습니다. 1024 x 16이 작동합니다. 각 방향으로 2의 거듭 제곱 인 SQUARE 일 필요는 없습니다. 이 경우 픽셀을 절약하고 512x16으로 줄이면 LOL을 진지하게 고려할 것입니다.
ketura

답변:


6

나는 YMMV를 통해 이것에 대답하는 것을 찌를 것입니다. Steam Hardware Survey ( http://store.steampowered.com/hwsurvey?platform=pc )를 사용하여 대부분의 컴퓨터에서 사용 가능한 비디오 RAM (VRAM)이 무엇인지 확인합니다. 2015-10-13 (현재)의 결과를 보면 거의 85 %의 사람들이 1024MB VRAM을 가지고 있습니다.

귀하의 질문은 대상 하드웨어 (콘솔, PC, 핸드 헬드, 모바일 장치)를 언급하지 않기 때문에 매우 광범위합니다. PC에 대해 이야기 할 것이며 하드웨어 사양에 따라 다른 플랫폼을 외삽 할 수 있습니다.

픽셀 당 32 비트의 컬러 + 알파, 즉 픽셀 당 4 개의 바이스를 가정하면 1GB VRAM은 최대 2 억 7,600 만 픽셀을 유지할 수 있습니다. 이는 256 1K x 1K 텍스처와 같습니다. 이것은 (잘못된) VRAM에만 텍스처를 유지하고 싶다고 가정하지만 공간을 남겨 두어야하는 다른 많은 것들 (예 : 3D로 작업하는 경우 메쉬 데이터)이있을 것입니다. 텍스처의 밉 매핑을위한 공간을 더 확보 할 수도 있습니다. 텍스처가 2의 거듭 제곱 인 경우에 가장 효과적입니다.

최신 콘솔 (XBOX One 및 PS4)에는 4-8GB의 통합 RAM이 있으며 대부분의 핸드 헬드 및 모바일 장치에는 1-2GB의 통합 RAM이 있으며 VRAM으로 할당 할 수있는 양에 제한이 있습니다.

나는 일반적으로 대부분의 PC에서 작동하도록 2K 텍스처를 생성하여 저가형 장치를 위해 축소 할 수있는 옵션을 허용합니다. 2D 게임을 작성하고 더 높은 해상도의 디스플레이 (4K, 레티 나 iPad 등)를 대상으로하려는 경우 배경에 4K 텍스처를 사용할 수 있지만 대부분의 다른 부분에서는 과도 할 수 있습니다.

이것이 도움이되었고 바닷물을 흐릿하게하지 않기를 바랍니다.


답변 주셔서 감사합니다, 확실히 도움이됩니다. 광범함에 관해서는 미안하지만 몇 가지 세부 사항을 포함하는 것을 잊었습니다. 2D PC를 개발 중입니다. 지원되는 최대 텍스처 크기보다 큰 텍스처를 사용하면 어떻게됩니까? 전혀 작동하지 않거나 속도가 느려 집니까?
flotothemoon

1
내 대답이 자리 잡은 것 같습니다. 다른 사이트 포럼 게시물 확인 2k 텍스처는 대부분의 장치에서 게임이 작동하도록 지원해야합니다. 텍스처 크기 제한은 특정 하드웨어 및 특정 OpenGL-ES 버전에 따라 다릅니다. 특정 오류 메시지가 무엇인지 잘 모르겠지만 텍스처를로드하려고 할 때 OpenGL-ES에서 나옵니다. 유용한 링크 : answers.unity3d.com/questions/563094/… , forum.unity3d.com/threads/texture-sizes-and-videocards.281422feedback.wildfiregames.com/report/opengl/feature/…
Vijay Varadan

텍스처를로드하거나 바인딩하려고 할 때? 아니면 여기에 같은 것입니까?
flotothemoon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.