![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| dmitry272727 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 19.1.2007 Репутация: нет Всего: нет |
Подскажите пожалуйста принцип, по которому сделать следующее:
В Delphi + Directx9 полноэкранная программа, в окне которой какая-то часть- это 3D а другая -это 2D(текст, картинки и т.п.). У меня есть вариант: Сделать 2 фрэйма и один сделать Direct3d, а другой DirectDraw. Насколько этот вариант работоспособен. Спасибо. |
|||
|
||||
| Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 1 Всего: 54 |
Все это делается в 3d. Для вывода 2d-объектов используются спрайты... Производительность не страдает...
-------------------- ![]() |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 6 Всего: 27 |
Да, именно так! Используй ID3DXSprite. Могу выложить класс работы со спрайтами и класс работы с текстом (если нужно).
Добавлено @ 17:32 только с использованием DirectX8 |
|||
|
||||
| dmitry272727 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 19.1.2007 Репутация: нет Всего: нет |
Я как то плохо описал свою проблему.
Мне нужно, что бы часть экрана использовала Direct3d, а другая НЕ ЗНАЮ какую технологию, но что бы она не перекрывала Direct3D. В случае использования ID3DXSprite, часть перекрывается. Спасибо. |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 6 Всего: 27 |
Что-то не понятно... Direct3D в полноэкранном режиме работает? Ну сделайте две формы, в одну Direct3D (в оконном режиме) а во вторую что-то другое.
Если нужен полноэкранный режим, то есть функция D3Device.SetViewport(aVP); где aVP:TD3DViewport8; заполняется так: aVP.X:=aX; aVP.Y:=aY; aVP.Width:=aW; aVP.Height:=aH; aVP.MinZ:=aMinZ; aVP.MaxZ:=aMaxZ; два последних параметра - буфер глубины (Z буффер) если нужно, чтобы объект находился всё время сзади остальных (не смотря на его координаты) - ставим aVP.MinZ:=0; aVP.MaxZ:=0; спереди aVP.MinZ:=1; aVP.MaxZ:=1; обычно принимается равным aVP.MinZ:=0; aVP.MaxZ:=1; Это сообщение отредактировал(а) Bitter - 20.1.2007, 01:59 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |