Я уверен, что есть теоретические подходы, которые в конечном итоге могут дать результаты.Но я бы хотел порекомендовать более прямой метод:
Если у вас есть доступный графический процессор и у вас есть некоторый опыт работы с шейдерами DirectX или OpenGL (или опыт программирования на GPU), было бы относительно просто "сплатить" каждыйналожите текстуру на модель и проверьте результат.
Сначала используйте ваши глаза и постройте простую метрику, которая может быстро оценить, что достаточно хорошо коррелирует с вашим глазом.(Например, поскольку резкость, скорее всего, является желательной характеристикой хорошей текстуры, возьмите 2D FFT на выходе и отображенную часть входа: отображение с самым высоким частотным содержанием и наименьшими потерями может быть вашим лучшим выбором.)
Иногда самый простой способ («попробуй их все и проверь», AKA «грубая сила») может быть лучшим, особенно если у тебя есть доступная мощность графического процессора.То есть, не пытайтесь разработать теоретический предсказатель успеха (который может быть королевской болью в разработке и отладке), а скорее генерируйте все возможные результаты и сравнивайте их, чтобы увидеть, какой из них лучший.
Послевсе, даже если вы разрабатываете априорный метод, основанный на прогнозах, вам все равно придется применить прогноз и проверить результат, чтобы убедиться, что он работает.А поскольку вам все равно нужно кодировать этот тест, зачем кодировать что-либо еще?