У меня проблема с координатами текстуры. Сначала я хотел бы описать, что я хочу сделать, затем я задам вопрос.
Я хочу иметь меш, который имеет больше текстур, используя только одну большую текстуру. Большая текстура объединяет в себе все текстуры, используемые сеткой. Я сделал процедуру, которая объединяет текстуры, это не проблема, но мне все еще нужно изменить координаты текстуры, поэтому в сетке, которая теперь использует только одну текстуру вместо многих, все хорошо расположено.
Смотри картинку:
В левом верхнем углу я получил одну из текстур (назовем ее A), я слился в большую текстуру, правую (B). Верхний левый угол А равен 0,0, а нижний правый - 1,1. Для простоты предположим, что B.width = A.width * 2 и так же для высоты. Таким образом, на B мини-текстура (M - это оригинал A) внизу справа должна быть 0,5,0,5.
У меня пока нет проблем с пониманием этого, и я надеюсь, что я все понял. Но проблема здесь в том, что существуют текстурные координаты, которые:
на оригинале А. Что должно быть на М?
Скажем, A имеет -0,1,0 - это -0,05,0 на M внутри B?
А как насчет тех чисел, которые находятся за пределами региона 0..1? -3,2 на А -1,6 или -3,1 на В? Таким образом, я обрезаю часть, которая является% 1, и делю на 2 (потому что я сказал выше, что ширина удваивается) или я должен разделить все число на 2? Насколько я понимаю, цифры за пределами этого региона отражают текстуру. Как мне это сделать, чтобы вывод не содержал оранжевую текстуру от B?
Если мой вопрос недостаточно ясен (я не очень хорошо владею английским языком), пожалуйста, спросите, и я отредактирую / отвечу, просто помогите мне устранить мою путаницу:)
Заранее спасибо:
Петер