Помогите с загрузкой DX Mesh.
Я использую стандартные методы Microsoft SDK, но там объект всегда оказывается расположен по центру.
Хотелось бы загружать объекты именно по тем координатам которые я укажу.
Здравствуйте HeavyWave, Вы писали:
HW>Помогите с загрузкой DX Mesh. HW> Я использую стандартные методы Microsoft SDK, но там объект всегда оказывается расположен по центру. HW>Хотелось бы загружать объекты именно по тем координатам которые я укажу.
Честно говоря, я дуумаю, что понятие центра mesh'a (Вы видимо это имели в виду) является строго субъективным. Например в Максе этот центр можно расположить в любой точеке объекта и даже за его пределами. Реальный смысл имеют лишь координаты вертексов. И насколько я понимаю значения координат будут такими, с какими Ваши x-файлы экспортили. Загружать mesh по нужным Вам координатам можно так:
Принять за центр mesh'a точку [0,0,0], а затем после загрузки сразу изменить все вертексы параллельным переносом.
Здравствуйте Dejavu, Вы писали:
D>Честно говоря, я дуумаю, что понятие центра mesh'a (Вы видимо это имели в виду) является строго субъективным. Например в Максе этот центр можно расположить в любой точеке объекта и даже за его пределами. Реальный смысл имеют лишь координаты вертексов. И насколько я понимаю значения координат будут такими, с какими Ваши x-файлы экспортили. Загружать mesh по нужным Вам координатам можно так: D>Принять за центр mesh'a точку [0,0,0], а затем после загрузки сразу изменить все вертексы параллельным переносом.
Я не совсем верно сформулировал. Правильно так:
Я загружаю x-файл функцией D3DLoadMEshFromX(..), в общем все как в примерах SDK, но мне нужна помощь по понятней чем в SDK. Mesh надо загружать по экранным координатам (800х600).
Здравствуйте HeavyWave, Вы писали:
HW>Я не совсем верно сформулировал. Правильно так: HW>Я загружаю x-файл функцией D3DLoadMEshFromX(..), в общем все как в примерах SDK, но мне нужна помощь по понятней чем в SDK. Mesh надо загружать по экранным координатам (800х600).
Можно спросить — что означает фраза "Mesh надо загружать по экранным координатам (800х600)." ?
Здравствуйте IgorK, Вы писали:
IK>Можно спросить — что означает фраза "Mesh надо загружать по экранным координатам (800х600)." ?
Эта фраза означает, что мне нужна функция которая для работы использует не DX кординаты, а самые обычные экранные, причем работать она должна для разрешения 800х600.
Видимо отсутствие опыта сказалось...
Решение очень простое и содержиться в примерах SDK.
Нужно всего лишь либо: 1)Изменять матрицу мира (World Matrix), так чтобы обьект оказывался в нужной точке. Либо 2)Перед конвертацией в *.x файл, построить его в нужных координатах. Правда потом будут большие проблемы с вращением обьекта, но это уже другой вопрос...
З.Ы. Конечно это не совсем то, что требовалось, но от этого уже можно исходить при написании настоящее функции.