![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OpenGL-DirectX-DelphiX глупый вопрос - но не дает покоя
Riko © (2003-09-10 10:13:00)хотелось бы услышать мнения не что лучше, а что для чего более подходит: что-то вроде :
OpenGL для 3D
DirectX для 3D&2D
DelphiX для 2D
(хотя я понимаю, что дело вкуса, но все же : для меня мнение профи - куча сэкономленного времени, ненабитых шишек, и т.п.)
MeF88 (2003-09-11 14:23:00) [1]нужно для начала надыбать заголовки, лучше от Clootie.
http://clootie.narod.ru
Ну я обычно пишу Direct3D9, D3DX9...
Кстати у Clootie есть познавательные сэмплсы из DX SDK
А сточка, которую ты написал на Дельфи выглядит так:
if(FAILED(pD3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, @d3dpp, pd3dDevice )))
Riko (2003-09-11 11:45:00) [2]Каюсь, www.xdev.ru плохо прошерстил....Нашел там: http://www.xdev.ru/dxgp/downloads/directx/dx81sdkhelp_part3.zip
http://www.xdev.ru/dxgp/downloads/directx/dx81sdkhelp_part2.zip
http://www.xdev.ru/dxgp/downloads/directx/dx81sdkhelp_part1.zip
неплохая вещь!
пока что еще больше вопросов возникло,
к примеру : что необходимо указать в uses (или что еще сделать) для использования следующего кода:
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice ) ) )
MeF88 (2003-09-11 11:08:00) [3]2NailMan: Хм, ну значит глюки с мелкомягким Help-ером.
2Riko: Да вроде www.xdev.ru - в самый раз. Как с 0 писать D3D приложение. Правда там под Ватер Клозет с двумя плюсами... Но вообще-то разницы мало, особеннодля человека, который год программил под PHP, CGI и JavaScript...
NailMan (2003-09-10 19:56:00) [4]http://dredo.nm.ru/- к сожаленью не отвечает,
Только что проерил - работает нормально.
Может глюки на Ньмейле.
А насчет dredo.nm.ru - там что, для XP хелп, у меня эти файлы просто не открываются... "вызывают ошибку".
Дык вроде нет. У меня дома на Триллениуме нормально открываются.
Вобще-то там очень грамотно описана математика 3Д и все такое.
Riko (2003-09-10 19:46:00) [5]не злись....
www.gamedev.ru
www.xdev.ru
dtf.dev.ru
clootie.narod.ru
www.microsoft.com
был я тут (к списку могу добавить еще десятка два...)
(честно, все облазил, все прочел, сложновато....!!)
Ну если проще нет, тогда ....и на том спасибо, будем копать то , что есть....
MeF88 (2003-09-10 19:42:00) [6]www.gamedev.ru
www.xdev.ru
dtf.dev.ru
clootie.narod.ru
www.microsoft.com
- блин какой раз пишу эти адреса...
А насчет dredo.nm.ru - там что, для XP хелп, у меня эти файлы просто не открываются... "вызывают ошибку".
Riko (2003-09-10 19:33:00) [7]Спасибо, определился...
Ну подскажите тогда ,пожалуйста ,что либо в сети по DirectX
(желательно просто справочник), что б не сильно тяжелое было для начала, но более обширное чем Samples в комплекте...
Интересует именно работа с 3D...
http://dredo.nm.ru/- к сожаленью не отвечает,
!!на поисковиках искал....
или исходники более менее коментированные...
Спасибо...
NailMan (2003-09-10 19:07:00) [8]Понимаешь, DDraw хардварно умеет только блитингом заниматься. Более этого он нихрена хардварно неумеет. Ни альфы, ничего.
Сам Билли рекомендует(в SDK) забыть про DDraw навсегда и юзать D3D для двумерных игрушек, так как тебе предоставляются возможности юзать все аппаратные фишки видеоадаптера(современного естесственно).
Альфа-Блендинг - пожалуйста, вращение спрайтов - пожалуйста,
куча всяких манипуляций с текстурами - пожалуйста.
И все хардварно, а не полностью софтварно(а значит ручками, ручками надо делать по жутким алгоритмам, которые нещадно жрут проц).
Так что в случае 2Д игры следует прислушаться к советам авторитетного Билли и делать под Д3Д.
А то что ты привел означает что будет юзаться хардварный блиттинг, а не софтварный.
Собсно у Д3Д при создании тоже указываешь:
CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Handle, IFlag, D3DPP, Dev);
D3DDEVTYPE_HAL - это какой девайс будет юзаться, аппаратный растеризер или эмуляция.
А вот IFlag здесь может быть:
D3DCREATE_HARDWARE_VERTEXPROCESSING or D3DCREATE_PUREDEVICE - Хадварный режим вертекспроцессинга с прямым доступом к драйверу
D3DCREATE_HARDWARE_VERTEXPROCESSING - Хадварный режим вертекспроцессинга через Д3Д
D3DCREATE_SOFTWARE_VERTEXPROCESSING - софтварный процессинг.
D3DCREATE_MIXED_VERTEXPROCESSING - смешанный процессинг.
При этом если создается девайс с софтварным процессингом, альфаблендинг у тебя все равно аппаратный, и все манипуляции со спрайтами(повороты, масштабирование изображений) также работают без всяких математических выкладок на n-листов - только лишь пяток строчек создания мартицы.
Тфьщ (2003-09-10 18:23:00) [9]
> DirectX как для 2Д(не через DDraw, а именно через D3D чтобы
> все хардварно было),
я на мастера не претендую, но все же:
function DirectDrawCreate(lpGUID: PGUID; out lplpDD: DirectDraw; pUnkOuter: IUnknown): HResult; stdcall;
lpGUID может быть : DDCREATE_HARDWAREONLY, DDCREATE_EMULATIONONLY, nil.
или я что-то не так понял?
NailMan (2003-09-10 15:12:00) [10]Да, веселая мамка, много чего нового научился делать, когда апгрейдился - например паяние мелких деталек, и т.п. :-)
cyborg (2003-09-10 14:14:00) [11]NailMan крутая у тебя материнская плата :)
NailMan (2003-09-10 11:44:00) [12]MeF88 ©
То что для ДиректХ нету нормальной книжки(Краснов бяка еще та, хотя партиклы там сделаны ничего) - это факт, но...
Есть великий DX SDK и есть некая электронная литература, вот по этой ссылке:
Advanced 3D Game Programming with DirectX 9.0 4,1 Mb
Inside Direct3D 2,6 Mb
http://dredo.nm.ru/
Как начинающему я советую писать на чистом АПИ(любой какой тебе понравится из двух возможных :-)) - так ты будешь владеть всеми фишками, которые чистые апи могут дать по сравнению с обертками.
Сразу скажу что будет трудно, но это того стоит.
Я когда начал писать свою игру, даже толково Дельфу не знал, не то что D3D. Потихоньку научился обоим шнягам.
Вобщем что касаемо подходимости к чему либо:
DelhiX однозначно для 2Д начального уровня.
DirectX как для 2Д(не через DDraw, а именно через D3D чтобы все хардварно было), так и конечно же для 3Д. Причем если пишешь под
ОГЛ, то все равно надо будет юзать DX(DSound, DInput, по желанию DMusic и DPlay).
OpenGL - 3Д. Тут много чего такого стороннего было написано - nVIDIA SDK, ATI SDK, но их надо еще выкачать суметь.
Тебе больше всего необходимо позаботиться вопросом об игровом движке - выбрать готовый или писть самому. Вот это действительно для начинающих игроделов проблема. (Я сам выбрал самонаписание движка).
Думкин (2003-09-10 11:43:00) [13]Игра подразумевает не только графику - отсюда ДиректХ лучше.
MeF88 (2003-09-10 10:36:00) [14]Да вообщем-то мне кажется, что и OpenGL и DirectX подходят, как для 2Д, так и для 3Д. Причем оба не сложны для изучения (на первой стадии), но по OpenGL можно найти кучу доков, инфы, сэмплов, сырцов... По DirectX много меньше.
Riko (2003-09-10 10:31:00) [15]если DirectX обязательно к изучению, может стоит сразу с него и начинать:
Если конкретнее-нужен совет:
если в игре планируется 2D-реалтайм-основной режим; 3D-первый тип миссий; 2D-пошаговый - второй тип миссий;
cyborg (2003-09-10 10:23:00) [16]DelphiX подходит для тех, кто ещё ничего не знает о DirectX, но хочет сделать игру под него.
Без DirectX всё равно никуда не денешься, DirectInput и DirectSound&DirectMusic обязательно к изучению. Для сетевой игры поможет DirectPlay, можно и на сокетах сделать, но DirectPlay это дело сильно обегчает.
За OpenGL ничего не могу сказать, не пробовал.