/
Manifest
/
Real_Texture
Обзор
Документация
Войти
/
Manifest
/
Real_Texture
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ToolsPythonForSequenceInUE/Readme_MaxTextureSize.txt
33 строки
3 KB
m.samodurov
init commit for The Invaders
17 фев 2026, 04:57
17 фев 2026, 04:57
4a668d4
Код
Авторство
О чём код?
MaxTextureSize.py Причина: классический mip-maping движка работает для игр, а не для синематиков, нам не подходит Суть идеи: Менять параметр в текстурах Max Texture Size с 0(дефолтное поведение - UE сам рассчитывает) на определённое разрешение в зависимости от расстояния от камеры просмотра до объектов в шоте Инструкция: Открывается любой шот, задаётся просмотр Viewport через камеру в шоте. Запускается скрипт через Unreal Engine Python API (можно через лог путём переключения из Cmd в Python, можно через Tools->Execute Python Script). Ход работы скрипта: Скрипт проходится по всем ассетам в Outliner'e. Проверяет, ассет == StaticMesh? Если объект == StaticMesh, то меняет все текстуры в Material Instance (которые прикреплены к самим StaticMesh'ам в сцене) по разрешению в зависимости от расстояния от объекта до камеры просмотра (поэтому важно смотреть из под камеры шота) и размеров объекта в экранном пространстве (там считается % BoundingBox'а) Чем ближе объект к камере - остаётся оригинальное разрашение; чем дальше объект от камеры - тем меньше разрешение Что нужно сделать: Нужно внедрить скрипт в наши BlueprintWidgets с выносом параметров для ввода для дальнейшей их регулировки MIN_TEXTURE_SIZE = 128 - размер в пикселях MAX_TEXTURE_SIZE = 2048 - размер в пикселях MIN_DISTANCE = 100 - размер в юнитах UE (см) MAX_DISTANCE = 500 - размер в юнитах UE (см) Скрипт исполняется долго в зависимости от загруженности шота, но в среднем 5-10 минут (было реализовано кэширование для ускорения) Проверить, правильно ли исполнился скрипт, открыв Log и посмотреть вывод, какие текстуры были обработаны Пожелания: Так же желательно добавить вывод в Log на каждый if (то есть, для каждого if должен быть свой else с логированием ошибки). Так же нужно дописать логику в строчке 45: power_of_two_sizes = [128, 256, 512, 1024, 2048] # тут можно рассчитывать на основе параметров MAX_TEXTURE_SIZE и MIN_TEXTURE_SIZE, а не хардкодом