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

Ваш аккаунт

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

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

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

Импорт 3ds формата.

35K
04 февраля 2008 года
jhane
3 / / 04.02.2008
Тема избитая, но с другой стороны.
Прочитать файл, и отобразить его в OpenGL с текстурой и всеми делами не проблема.
Но я хочу построить mesh объект, чтобы в последствии засунуть его в физический движок (ode).
Открыла графический редактор, нарисовала простой куб, распечатала результат парсинга. Получила 20 вершин (из них 8 разных, остальные повторяются) и 12 плоскостей. Теперь по логике вещей, в информации о плоскости идут номера вершин, задействованных в ней… А я получаю значения (-842200000 – номер вершины) или что-то около того. Т.е. при 20 вершинах, я получила разброс в этих громадных цифрах именно в 20.
Попробовала провести логические линии между результатами… куб полностью не получается никак, как ни крути. (Например, есть 2 треугольника, у которых 2 вершины равны)

Отсюда и вопрос. Кто-то смотрел внутрь? И что это за цифры?

Если бы я не правильно читала файл, но не видела бы его на экране, а я вижу….
360
04 февраля 2008 года
P*t*
474 / / 15.02.2007
Ты неправильно читаешь - номера вершин задаются двумя байтами, а то что у тебя получилось (-842200000) никак не может храниться в двух байтах.
35K
05 февраля 2008 года
jhane
3 / / 04.02.2008
Я проверю еще раз.
Но если я не правильно читаю, то почему выводится на экран правильно. Обьект с текстурой. Двигается, вращается без проблемм. Да и разброс цифр именно в 20 (на кубике). Не похоже на совпадение.
360
05 февраля 2008 года
P*t*
474 / / 15.02.2007
как бы там ни было номер вершины задаётся двумя байтами!
А в двух байтах никак нельзя записать число, большее 65536 (2^16).
Если ты получила -842200000 , то значит читаешь, как будто номер вершины занимает 4 байта.
1.9K
05 февраля 2008 года
andriano
474 / / 10.01.2008
Цитата: jhane
Я проверю еще раз.
Но если я не правильно читаю, то почему выводится на экран правильно. Обьект с текстурой. Двигается, вращается без проблемм. Да и разброс цифр именно в 20 (на кубике). Не похоже на совпадение.


В формате 3DS есть чанки. В частности, длина чанка пишется в его начале. Если ты правильно читаешь чанки с учетом их длины, то у тебя не должно быть рассинхронизации при неправильной длине денных.
Тем не менее, не совсем понятно, как ты отображаешь вершину номер -842200000, что у тебя все выглядит нормально.

35K
14 февраля 2008 года
jhane
3 / / 04.02.2008
Проблемма решена.

Читала я правильно. Номера полигонов все таки, int.
Проблемма была в том, что обьект был не глобальный, соответствено не обнуленный. Я думала что при чтении из файла все компоненты получат ствои значения и все...

Оказалось что у Visual Studio 2005 какая то проблемма с этим. И он заносил мне мусор.

Обнулила обьект, перед чтением в него и все заработало.
360
14 февраля 2008 года
P*t*
474 / / 15.02.2007
Цитата: jhane
Номера полигонов все таки, int.



Как это так номер вершины - int???

Вот, например, на этом же сайте описание 3ds формата:
http://www.codenet.ru/progr/formt/3ds.php

Цитата:

Блок:
CHUNK_FACELIST

Данные:

список граней текущего объекта

Формат:


word num; // число граней
struct { //
word v0; // номер первой вершины грани
word v1; // номер второй вершины грани
word v2; // номер третьей вершины грани
word flags; // флаги грани
} faces[num]; // собственно список граней



Тут все данные - word!

23K
16 февраля 2008 года
HumanAPI
18 / / 07.03.2007
Цитата: jhane

Оказалось что у Visual Studio 2005 какая то проблемма с этим. И он заносил мне мусор.



Это не проблема Visual Studio. Ни динамическая ни статическая память не очищяется если это не делать специально.

Номера вершин в 3ds действительно 2 байта. Скорей всего при чтении из файла в переменную int записывалось 2 баита а в других 2 баитах остовался мусор поэтому числа были такими большими.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог