Предположим, у меня есть текстура, которая естественно не квадратная (например, фотографическая текстура чего-то с соотношением сторон 4: 1). И предположим, что я хочу использовать сжатие PVRTC для отображения этой текстуры на устройстве iOS, что требует, чтобы текстура была квадратной. Если я масштабирую текстуру так, чтобы она была квадратной во время сжатия, результат был бы очень размытым изображением, когда текстуру просматривали с расстояния.Как бороться с искажениями текстуры, вызванными «квадратичными» текстурами и взаимодействиями с mipmapping?
Я считаю, что это вызвано mipmapping. Поскольку mipmap-фильтр видит новый большой растянутый размер, он использует это, чтобы выбрать низкий уровень mip, что на самом деле неверно, поскольку эти пиксели были просто растянуты до такого размера. Если бы он посмотрел на другое измерение, он бы выбрал уровень mip более высокого разрешения.
Эта теория подтверждается (несколько) замечанием о том, что если оставить текстуру в формате, который не должен быть квадратным, версии mipmap выглядят просто денди.
Параметр LOD Bias, но документы говорят, что применяются к обоим измерениям. Похоже, что призванный является способом смещения LOD, но только в одном измерении (т. Е. Для смещения его к большему разрешению в размерности текстуры, которая была увеличена).
Кроме того, чтобы перерезать геометрию, чтобы использовать квадратные подмножества исходной текстуры (что является неосуществимым, дать наш производственный трубопровод), есть ли у кого-нибудь какие-нибудь умные хаки, которые они использовали для решения этой проблемы?
Мы комбинируем текстуры вместе везде, где можем, так что это происходит только тогда, когда у нас есть повторяющаяся текстура. Первый трюк, который вы упомянули, действительно будет работать в этом случае, но второй трюк здесь не может быть и речи. Вхождение и изменение геометрии - это не то, что я хотел бы сделать (например, если есть УФ-анимация). Но я согласен, что это устранит размытие. Любые другие умные идеи? –
Пока нет. Совсем немного стыдно, что интерфейс предоставляет только квадратные текстуры, когда оборудование с радостью поддерживает прямоугольную силу двух текстур PVRTC. –
У вас есть ссылка на это? Я предположил, что квадратное требование исходило от аппаратного обеспечения.Я бы хотел сообщить об ошибке с Apple, если это не понадобится! –