Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Несколько объектов DirectX


Автор: Гость_001 16.6.2005, 12:23
Нужно вывести несколько объектов, за каждый объект отвечает свой класс. непонятно. как это реализуется. Наверное, в каждом классе должен быть определен буфер вершин для каждого объекта. А как быть с интерфейсом
Код

LPDIRECT3D9                 pDirect3D          = NULL;      // Главный Direct3D обьект
LPDIRECT3DDEVICE9           pDirect3DDevice    = NULL;      // Устройство

Их тоже надо определять для каждого объекта внутри класса или они общие и глобальные для всех объектов? А как быть с инициализацией гшрафики, функция будет общей или в каждом классе - своя?

Если можно, желательно привести пример реализации хотя бы одного класса (хотя бы смхематично). А то я и понятия не имею с чего начинать.

Автор: empter 16.6.2005, 19:08
Интерфейсы определяешь глобально, один интерфейс для всех обьектов. Либо передаешь по ссылке, либо указываешь со спецификатором extern. У каждого класса свой VertexBuffer и IndexBuffer, соответственно функции рендеринга у каждого класса свои. Инициальзацию Direct3D проводишь один раз, общей функцией.

Автор: Гость_001 16.6.2005, 20:06
Спасибо, сейчас попробую.

Автор: Гость_001 16.6.2005, 20:49
Еще вопросик. Есть функции для вращения объекта вдоль трех осей. А есть ли функции для перемещения объекта вдоль каждой оси или соответствующие матричные преобразования надо делать ручками?

Автор: Guest 16.6.2005, 21:49
Все, этот вопрос решен.

Ноя так и не понял.

LPDIRECT3D9 pDirect3D - общий для всех объектов
LPDIRECT3DDEVICE9 pDirect3DDevice - тоже общий или для каждого объекта свой??????!!!!!!!!!!!

Я пробовал делать общим - ничего не получается. И наоборот тоже ничего не получается. И вообще ничего не получается.


Как же отображать по нескольку объектов одновременно!!!!!!!!!!1

Автор: Leopard25 17.6.2005, 22:08
А что не получается ?

LPDIRECT3DDEVICE9 pDirect3DDevice - общий

при создании класса или при инициализации передаёшь его в класс....
и всё работает....
Добавлено @ 22:13
У каждого объекта должен быть метод Draw() (или что-то подобное)
и там где рисуешь всю сцену вызываешь этот метод для всех объектов....

Автор: v_enom 19.4.2009, 18:31
Мне остался не понятен вопрос:
хочу нарисовать несколько 2д квадртов.

мой квадрат - это класс, объект которого имеет данные о вершинах и индексах (все что надо чтобы записать в буфер вершин инфу).

как нарисовать один квадрат через буфер вершин я знаю, это реализую....

 а как мне нарисовать несколько отдельных квадратов-объектов? чтобы потом я мог потом вывести на экран 10 квадратов, щелкнуть по 1 из них и он удалился ????????
ну типо простая игра "убей квадратик мышкой".


буфер вершин надо для каждого квадрата свой или один общий?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)