23 мар 2023 · 12:46    
{"document": [{"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "Что такое текстурный атлас.jpg", "filesize": 2366665, "height": 1080, "pic_id": 487694, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2023/03/23/%D0%A7%D1%82%D0%BE_%D1%82%D0%B0%D0%BA%D0%BE%D0%B5_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%D1%80%D0%BD%D1%8B%D0%B9_%D0%B0%D1%82%D0%BB%D0%B0%D1%81.jpeg", "width": 1920}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Текстурный атлас, это одна UV-развертка, на которой развернуты несколько объектов. Простыми словами одна текстура, которая содержит в себе несколько других. Для каждой модели в игровых движках используется набор текстурных карт. Атлас применяется для оптимизации в игровых проектах, за счет уменьшения их количества. В обычной ситуации это будут: Base Color, Metal, Roughness, Normal и возможно AO (Ambient Occlusion) + Height Map. Для обработки текстуры, игровой движок должен к ней обратиться, это обращение называется DrawCall, и чем больше их количество, тем ниже производительность. Тут стоит понимать, что в современных играх, в локациях используется далеко не 10 и не 20 текстур. Счет идет на многие десятки и сотни. И подобные приемы оптимизации, хорошо поднимают производительность. Кроме уменьшения количества самих текстур, в игровом движке будет применяться меньшее количество материалов, что также даст прирост FPS."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "Больше интересного в Телеграм канале «Записки 3D-шника» "}, {"type": "string", "attributes": {"bold": true, "href": "https://t.me/notes3drus"}, "string": "https: //t. me/notes3drus"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Дополнительно можно сократить количество текстур следующим образом. Карты, не использующие цвет, такие как: Metal, Roughness, AO и Height Map или Displacement можно положить в один из каналов RGB + Alpha. Итого, например, у вас на выходе будет три файла с текстурами: Base Color, Normal и один файл, содержащий 4 текстурных карты, но в разных цветовых каналах: R (Red) – AO, G (Green) – Roughness, B (Blue) – Metal и в Alpha канале – Height map."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Однако с увеличением количества объектов, развернутых в одну UV, будет падать значение текселя (Texel Density - количество точек текстуры на одну квадратную единицу площади (см., м., дюйм) модели в реальных размерах) при том же разрешении текстуры. Поэтому, атласы часто применяют для мелких объектов в сцене или игровой локации: коробки, фрукты, посуда и так далее. Такой атлас собрать несложно. Несколько моделей разворачиваются в одну UV и текстурятся все вместе, а при экспорте вы получаете готовый атлас."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "rodrigo-marques-rodrigo-marques-lonely-fishermans-island-3d-stylized-handpainted-environment-texture-atlas.jpg", "filesize": 761220, "height": 1600, "pic_id": 487695, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2023/03/23/rodrigo-marques-rodrigo-marques-lonely-fishermans-island-3d-st_HBQN4KG.jpeg", "width": 1600}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Но это могут быть не только небольшие пропсы, в атласы можно разворачивать керамическую плитку, камень, кирпич, предметы декора, дерева и прочее. В дальнейшем используя такой атлас, на него можно маппить другие игровые объекты примерно соблюдая заданный в проекте тексель. Кроме того, используя атлас, можно разнообразить внешний вид объекта, например сдвинув UV шелл по части текстуры кирпича. При этом внешне такой объект будет отличаться от другого, но при этом будет использовать тот же атлас. Однако такие атласы создаются по другому принципу. Изначально создаются текстуры на несколько поверхностей, а потом уже на собранный из них атлас разворачиваются сами объекты. То есть, изначально создается текстура, и уже на нее накладывается развертка. Также такие атласы используются в небольших конструкторах уровней. Где нет смысла использовать несколько наборов тайловых текстур."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "bozhidar-nizamov-defuseatlas.jpg", "filesize": 1337765, "height": 1600, "pic_id": 487699, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2023/03/23/bozhidar-nizamov-defuseatlas.jpeg", "width": 1600}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Мобильные игры наиболее требовательны к оптимизации из-за меньшей производительности устройств. Но и проекты в большинстве случаев проще. Под гиперказуальные игры есть смысл собирать атласы с градиентами. При этом одним таким атласом и одним материалом можно затекстурить почти все модели игры используя разные градиенты текстуры, а затемнением или цветовым переходом можно создать имитацию разного освещения модели по высоте."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Но не стоит забывать про ПК и консольные проекты, где масштаб локаций и большое количество моделей также требует оптимизации. Предварительно продумав правильное применение текстурных атласов, даст хороший прирост производительности в проекте. А соблюдение баланса текселя, разрешения атласа и оптимизации сможет поднять FPS, не теряя при этом в качестве картинки."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": ""}, {"type": "string", "attributes": {"bold": true}, "string": "Больше интересного в Телеграм канале «Записки 3D-шника» "}, {"type": "string", "attributes": {"bold": true, "href": "https://t.me/notes3drus"}, "string": "https: //t. me/notes3drus"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": ""}, {"type": "string", "attributes": {"italic": true}, "string": "Пишите своё мнение в комментариях, задавайте вопросы, подписывайтесь на канал и обязательно поддержите лайком. Это важно для развития канала. Спасибо."}], "attributes": []}], "selectedRange": [931, 931]}
Комментарии 0