Обьясню на примере кубика чтобы было понятно.
Создаем кубик, разворачиваем каждую его сторону на текстуру, загружаем, пикаем его и рендерим какой-нибудь рисунок в текстуру кубика по высчитанным UV координатам. Все бы ничего, но этот рисунок отображается на всех сторонах кубика, вместо того чтобы отображаться только на той, которую я пикнул. Это произошло из-за того, что я развернул все стороны на один и тот же участок текстуры(как обычно и разворачиваются модели). Как решить эту проблему? Мне уже предлогали рендерить во вторую текстуру (наложеную вторым слоем), предварительно установив ей UV координаты процедурой TextureCoords. Но это непомогло. Пробывал мудрить с координатами - тоже непомогает. |
нормально развернуть развертку ... правда ето проблематично но можно
но и текстурки побольше будут :( |
В том то и дело что например когда моделлируют какого-либо персонажа, то не рисуют текстуру полностью: левая часть вида спереди, правая часть вида спереди...
а рисуют половину (правую левую) и натягивают обе половины модели на эту тексу. Если делать все "правильно", то тогда не будет смысла этого делать :), тормоза ведь. Вот интересно как в других гамесах это решено... |
ну дык декали :)
декали с проекционым наложением на слой второй текстуры... правда ложатся отдельно поверх всех текстур :) и наверно являют собой 3д обект который обтекает тот обьект на который накладывается |
Вложений: 2
Всё не так сложно! TextureCoords должен отлично решать траблу.
So, Блиц допускает у обьекта 2 развертки текстурных координат. Текстуре же ты с помощью "TextureCoords" указываешь, какую из разверток использовать. И в Пайплайне тоже- накладывая текстуру, можно задать ей номер развертки на модели. Так же и при использовании в Мах-е мод-ров UnwrapUVW и UVWMap, ты указываешь, какую из разверток редактировать... Если короче, то я присоединил к сообщению архивчик на 20+Кб, где лежит Мах-овская сцена, БЗД моделька с двумя развертками и уродливый код-пример, позволяющий менять текстуры на другие... P.S. Основной проблемой в создании нужных тебе декалей является быстрый программный поиск на текстуре корректных координат, куда нужно поместить декаль... Если решишь- респект тебе будет вечный! :super: |
Спасибо Diplomat, теперь я врубился для чего нужна функция TextureCoords :)
Сегодня же попробую с твоей сценкой похимичить :) ЗЫ Незнаю насколько быстро у меня расчитываются UV координаты(через длл работает), но расчитываются они правильно вроде(независимо от сложности геометрии). Как оптимизирую длл, сразу выложу сюда. |
Часовой пояс GMT +4, время: 15:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot