C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
3d моделирование, Литература, советы?
veles
Отправлено: 08.07.2004, 14:33


Не зарегистрирован







День добрый!

Существует задача для условно химического пакета программ:

Пользователь, работая с таблицей Менделеева, выбирает из неё атомы, которые отображаются на форме. Затем, проводит между атомами линии связи, формируя молекулы. Всё это надо сделать 3-х мерным с возможностью вращения на все 360 гр.

Вопрос: какую литературу, по основам 3=х мерного моделирования Вы могли бы порекомендовать, какие дополнительные модули и т.д. И вообще, что нужно почитать в первую очередь для решения подобной задачи. Пишу в 6-ой версии.

В MS Direct SDK 9.0 нашёл только OptimizedMech. Реально ли сделать на его основе аналогичное приложение отвечающее моим задачам?

Заранее спасибо.
Father
  Отправлено: 08.07.2004, 16:32


Ученик-кочегар

Группа: Участник
Сообщений: 17



Судя по описанию в задаче будет всего два типа объектов: сферы(атомы кот.(используя один из способов) создаются вызовом одной функции) и цилинды (связи между атомами, кот.(аналогично, используя один из способов) аналогично создаются вызовом одной функции).
Вращение и проч. движение камеры — дело нехитрое, нужно только векторную алгебру хорошо знать (в луюбом случае, придется выучить smile.gif )
Самая хорошая лит-ра — Help из DirectX SDK for C++ — там и написано толково и примерчики есть... короче Microsoft 'марку держит'.
Модули:
1) сам DirectX SDK for C++
2) нужно будет раздобыть OMF'овские версии lib'ов для C++Builder'a (у меня, в принципе, из Инета есть и для DirectX 8.1 и для DirectX 9.0)
...это все если писать ручками на DX API.
Вариант второй — использовать готовые компоненты — ничего читать не придется, и все напишется на порядок быстрее, но и производительность, естественно, похуже будет.
veles
Отправлено: 08.07.2004, 16:51


Не зарегистрирован







Father, большое спасибо за ответ.

Хотелось бы уточнить.

1. DirectX SDK for C++ и MS DirectX SDK (допустим 9.0) это одно и тоже?
2. Насчёт "OMF'овских версий lib'ов". Линком не могли бы поделиться?
3. Читать придётца, поскольку это достаточно серьёзный проект (программа разрабатывается для кандидатской диссертации). Значит для вращения и т.д. берём книжку по векторам?smile.gif Ок. Но это, как я понимаю математическая часть. А вот реализация уже на С++. Есть какие-либо материалы?

QUOTE
Вариант второй — использовать готовые компоненты — ничего читать не придется, и все напишется на порядок быстрее, но и производительность, естественно, похуже будет.


Главное, чтобы собственным руками эту производительность не сделать похуже готовых компонентов:)

Ещё раз спасибо.
Father
  Отправлено: 08.07.2004, 17:52


Ученик-кочегар

Группа: Участник
Сообщений: 17



1.
Нет. В первом случае — ориентация только на C++; во втором про все (C++, VB, .Net,...) понемножку... Подробности здесь:
1) DirectX 9.0b Software Development Kit (SDK) for C/C++
2) DirectX 9.0 Complete Software Development Kit (SDK)
... различаются также объемом для скачки smile.gif — 100Mb против 230Mb...

2. Не знаю, но я их нашел используя Yahoo для запросов типа "Borland DirectX libs". Впрочем, для DirectX 8.1 Lib'ы есть здесь.

3. Брать книжку по векторам (для исследования математической части) не обязательно — в SDK все хорошо и подробно написано, просто нужно хотя бы базовые представления иметь о данной области, чтобы въезжать в то, что в SDK написано...
По поводу C++... Так предполагается, что программист владеет этим инструментом (хотя бы на среднем уровне)...
QUOTE
Главное, чтобы собственным руками эту производительность не сделать похуже готовых компонентов:)

Если перый раз придется программировать 3D графику, то с 95% вероятностью так и будет. Но 'ручками' все делать гораздо полезнее с той точки зрения, что это все может потом пригодиться...
Хотя с другой стороны (это я про производительность), судя по описанию, данный проект по сложности 3D вряд ли будет очень требователен к ресурсам, и вряд ли будет дотягивать до уровня графики в, скажем, Unreal Tournament или Half-Life 2... biggrin.gif (это агрумент в пользу 'деланья ручками').
Хотя еще идея... Можно пользовать OpenGl — там 'деланье ручками' также несложно как прогр-е DirecX с помощью различных вспомогоательных компонент.
.piero
Отправлено: 08.07.2004, 21:10


Дежурный стрелочник

Группа: Участник
Сообщений: 62



http://www.opengl.org.ru/files/open_gl.zip — просто хорошая книга, но на нерусском написана.. вообщето я функции оттуда черпаю...

Вернуться в Вопросы программирования в C++Builder