чтение 3ds. uv координаты
Пишу программный рендеринг 3d. Пытаюсь загрузить из 3ds файла модель. Векторы и треугольники загружаются нормально. А вот с u v координатами не пойму чего делать. Вот например есть текстура размером 756 х 512, а u и v заданы примерно от -2 до 2, а в некоторых объектах от -1 до 1 да и по ругому бывает. Не пойму как их пересчитать в координаты текстуры, помогите пожалуйста.
Обычно текстурные координаты нормируются, т.е. в пределах битмапа изменяются от 0 до 1.
Цитата: andriano
Обычно текстурные координаты нормируются, т.е. в пределах битмапа изменяются от 0 до 1.
Дак я тоже так думал, а оказалось что нет. Пробовал около 20 файлов 3ds и в каждом диапазон uv координат разный и даже в разных объектах одного файла отличается. может там какой коэффициент есть или еще что-то? подскажите пожалуйста.
парсер я взял готовый, немного доработав под себя.
Вот исходный код парсера
Что у тебя получается, если с текстурами рендеришь?
вот что у меня получается, это башня с двух сторон. Пол башни получается нормально, а с другой стороны бред какой то. Такое получается когда u или v > 1 или <0.
P. S. Возможно, автор модели допустил ошибку при экспорте. Есть такая трабла с 3DS Max: при экспорте модели, текстурные координаты, изменённые с помощью модификаторов (таких, как UVW Map, UVW Unwrap и др.) не сохраняются, а вместо этого остаются исходные текстурные координаты, сгенерированные редактором при создании примитива. Если есть .max файл, проблема решается простым сворачиванием стека модификаторов модели (приведением объекта к типу Editable Mesh)
на этой башенке тоже глюки были :)