Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

чтение 3ds. uv координаты

578
09 июня 2008 года
o_serg
93 / / 08.09.2003
Пишу программный рендеринг 3d. Пытаюсь загрузить из 3ds файла модель. Векторы и треугольники загружаются нормально. А вот с u v координатами не пойму чего делать. Вот например есть текстура размером 756 х 512, а u и v заданы примерно от -2 до 2, а в некоторых объектах от -1 до 1 да и по ругому бывает. Не пойму как их пересчитать в координаты текстуры, помогите пожалуйста.
1.9K
10 июня 2008 года
andriano
474 / / 10.01.2008
Обычно текстурные координаты нормируются, т.е. в пределах битмапа изменяются от 0 до 1.
578
10 июня 2008 года
o_serg
93 / / 08.09.2003
Цитата: andriano
Обычно текстурные координаты нормируются, т.е. в пределах битмапа изменяются от 0 до 1.


Дак я тоже так думал, а оказалось что нет. Пробовал около 20 файлов 3ds и в каждом диапазон uv координат разный и даже в разных объектах одного файла отличается. может там какой коэффициент есть или еще что-то? подскажите пожалуйста.
парсер я взял готовый, немного доработав под себя.
Вот исходный код парсера

341
12 июня 2008 года
Der Meister
874 / / 21.12.2007
Ну и нормальное явление: текстурные кординаты не обязательно должны лежать в диапазоне [0; 1]. Например, диапазон [-1; 1] означает зеркалирование текстуры, диапазон [1; 3] = [0; 2] - двойной тайлинг.
Что у тебя получается, если с текстурами рендеришь?
578
12 июня 2008 года
o_serg
93 / / 08.09.2003
Der Meister, спасибо за ответ, я уж и не думал что разберусь с этим. А можно подробнее пожалуйста как такие зеркальные и двойные координаты пересчитывать. Если есть ссылочки буду рад. :)
вот что у меня получается, это башня с двух сторон. Пол башни получается нормально, а с другой стороны бред какой то. Такое получается когда u или v > 1 или <0.
341
12 июня 2008 года
Der Meister
874 / / 21.12.2007
В общем случае, рендер берёт пиксел из текстуры, той или иной координате которого соответствует значение abs(C - [C]), где [C] - величина целой части значения текстурной координаты. [QUOTE=o_serg]Пишу программный рендеринг 3d[/QUOTE]Так понимаю, что ни D3D, ни OGL не используется. Если да, то данной формулы должно хватить для выяснения координат пиксела из текстуры, который необходимо вывести на экран в данной точке.
P. S. Возможно, автор модели допустил ошибку при экспорте. Есть такая трабла с 3DS Max: при экспорте модели, текстурные координаты, изменённые с помощью модификаторов (таких, как UVW Map, UVW Unwrap и др.) не сохраняются, а вместо этого остаются исходные текстурные координаты, сгенерированные редактором при создании примитива. Если есть .max файл, проблема решается простым сворачиванием стека модификаторов модели (приведением объекта к типу Editable Mesh)
578
12 июня 2008 года
o_serg
93 / / 08.09.2003
Der Meister, спасибо ! Помогло. Вот что получилось:
на этой башенке тоже глюки были :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог