Понимание того, как создавать /использовать текстуры для игр, если они ограничены мощностью двух размеров

У меня есть некоторые вопросы о создании графики для игры.

В качестве примера. Я хочу создать мотоцикл. (1 пиксель = 1 см) Так что мой мотоцикл будет иметь ширину 200 и 150 высоты. (200x150) Но libgdx позволяет только загружать размеры с мощностью 2 ?! (2,4,8,16, ...)

Сначала я подумал об этом. Я создам свой велосипед размером (200x150) и сохраню его как png. Чем я его снова открою (например, с помощью gimp), измените размер изображения на размер, который использует значения с мощностью 2 (128x128). Я загружу это как текстуру в программу и задаю ширину 200 и высоту 150.

Но разве это не проблема? Потому что я потеряю некоторые пиксельные данные, когда я сделаю первый разговор.?! Не правда ли?

8 голосов | спросил Matthias Reisner 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 20:33:16 +0400 2012, 20:33:16

3 ответа


11

Причина, по которой вы ограничены размерами в два раза, связана с тем, как работает видеорамка. Обратите внимание, что то, что вам нужно сделать, как правило, делает изображение следующей максимальной мощностью двух (.e. 512x256), а затем просто используйте часть этого изображения для вашей графики. Вы должны настроить UV-координаты только для использования подраздела изображения на любые треугольники, которые вы показываете.

Если вы беспокоитесь об использовании памяти, вы также можете использовать некоторые из оставшихся пробелов на разных объектах и ​​УФ-карту этих объектов в эту часть текстуры. Создание такой текстуры также называется «атласом».

ответил Tetrad 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 20:58:28 +0400 2012, 20:58:28
3

Вы должны использовать координаты текстуры вместо изменения размера, например, рисовать только часть всей текстуры. Я не знаю, как это работает в libgdx, но обычно используется этот подход. Другой подход заключается в использовании текстурного атласа, который имеется в памяти, например 1024x1024, а затем при загрузке изображения вы загружаете его в прямоугольник атласа.

ответил bobenko 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 20:59:29 +0400 2012, 20:59:29
0

Вы можете преобразовать размер вашего изображения немного больше или меньше в соответствии с соответствующим размером. Я использовал эту ссылку - http://www.garyshood.com/imageconvert/ Вы можете использовать размер которого будет полностью разделен на 2. Например, если размер вашего изображения равен 200, то 200/2 = 100; 100/2 = 50; 50/2 = 25, поэтому здесь 25 не делится на 2. Следовательно, 200 не соответствует размеру. Вы можете использовать 1024, 512, 256, 128 и т. Д. И тогда вы можете использовать части этого изображения в своей графике. Другой альтернативой было бы объединение всех ваших текстур в атлас текстуры с помощью графического интерфейса Package Packer libgdx, а затем использование текстуры из этого атласа.

ответил alex 3 +04002012-10-03T11:27:01+04:00312012bEurope/MoscowWed, 03 Oct 2012 11:27:01 +0400 2012, 11:27:01

Похожие вопросы

0
Если актеры в игре несут ответственность за рисование себя? Разница между ортогональной картой и изометрическим mapLearning для создания лучшего искусства (2D-игры) Почему радианы предпочитают более чем в градусах развития игры? Обнаружение столкновений шестиугольников для быстро движущихся объектов? ? В движке Entity-Component-System, как я могу работать с группами зависимых объектов? Должен ли я использовать текстуры, не имеющие размера 2? Почему этот код обнаружения биений не позволяет правильно зарегистрировать некоторые удары? он подходит к наградам и статистике? Как сделать прыжок персонажа? Что мне нужно для законного использования музыки, защищенной авторским правом, в моей игре? Какие-нибудь советы по созданию кросс-платформенных игр? [closed] Максимальная звуковая задержка до того, как игрок заметит? Как создать частицы, которые реагируют на игрока и врагов? Как именно работает Xrit SpriteBatch? Можно ли вычислить или математически доказать, сбалансирована ли игра? FPSHow я могу сделать «случайный» генератор, который предвзято предшествует событиям? Дизайн MMORPG для ограниченных по времени игроков. В эти дни нужны установки для установки? Каков наилучший способ устранения размола в играх? [закрыто] Моделирование и физика воды /океанаИзготовление игрового процесса для программиста «все-все»

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132