![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DX3D
TButton © (2003-08-05 08:34:00)Можно маленький тьютор по исп. Delphix D3D.
1. как создать простейшую сцену
2. как работать с камерой
3. и с чем ваще ето все едят.
если есть ссылки на что-то подобное - буду благодарен.
Vertex (2004-02-17 01:06:00) [1]дада иногда... убеждать в том что ты и так понимаешь не буду
если успокоит то для меня делфя тоже очень дорога и вижуал не люблю, но стараюсь объективно смотреть на тему
cyborg (2004-02-16 10:51:00) [2][29] Sapersky ©
А какая разница? И там и там одинаково делается, только типы данных иногда по разному называются.
Sapersky (2004-02-16 10:49:00) [3]На прошлой неделе я диск купил DirectX 9 SDK, никакого визуала там нет ;)
А примеры что, на Delphi? :)
cyborg (2004-02-16 10:38:00) [4][27] Vertex
На прошлой неделе я диск купил DirectX 9 SDK, никакого визуала там нет ;)
Vertex (2004-02-16 03:08:00) [5]Repeat если руки такие ровные писать надо на асме
A22 имел в виду, что платформа Visual'а имеет преимущество в том, что производители поставляют сдк именно к ней
NailMan (2004-02-15 23:55:00) [6]Нет это сарказм. Просто твой постинг A22 (13.02.04 03:53) [22]- очередной намек на holey wars.
Для игр C++ и Delphi равноценны при наличии головы и прямых рук.
A22 (2004-02-13 17:32:00) [7]NailMan
по-твоему VC++ равноценен VB /Exel в области программирования игр?
NailMan (2004-02-13 09:29:00) [8]A22
И заодно к Visual Basic и Exel(на нем тоже игры пишут)
cyborg (2004-02-13 08:55:00) [9][22] A22 (13.02.04 03:53)
А может ещё и ключи от квартиры, где деньги лежат?
A22 (2004-02-13 03:53:00) [10]а заодно и на Visual C++
A22 (2004-02-13 03:52:00) [11]вообще практически все, что вы обсуждали, есть в примерах Microsoft, входящих в SDK под DirectX. так что если чего не получается - прямая дорога к эти примерам
Sapersky (2004-02-12 10:57:00) [12]можно ли одновременно с трехмеркой (всякие там перемещающиеся объекты - у меня сферы) выводить на экран двумерную графику
Если это всё ещё RM, то см. DirectDraw и С.Трухильо. Обычный блиттинг нормально работает. Если DX8-9, см. ответ Nailman'а.
NailMan (2004-02-12 10:00:00) [13]m-AAA-d ©
конечно можно - создается VB с форматом XYZRHW + diffuse+tex1 и в него заносишь точки треугольников(trianglelist) с координатами(xyz и uv) в экранной системе отсчета. Ну а далее выводишь их одним Drawprimitive.
Вобщем
http://www.cyborghome.ru/nailman/zakroma/sources/d3dfonts.zip
Архив содержит модуль с классом - GUIBuffer-ом. Который и использует эту технологию. Также в архиве лежит модуль с классом шрифтов используемых в моей игре, которые также построены на этой технологии(правда чуть-чуть по другому использует). Самих шрифтов пока не прилагаю - дома забыл.
m-AAA-d (2004-02-11 14:03:00) [14]с текстурами разобрался по ходу дела.
еще вопрос: можно ли одновременно с трехмеркой (всякие там перемещающиеся объекты - у меня сферы) выводить на экран двумерную графику, конкретно я хочу устроить чтото вроде сайдбара на котром будет отображаться инфа скажем о выбранном объекте. объясните технологию процесса плиз.
Sapersky (2004-02-10 10:14:00) [15]Я имею в виду современность D3DRM. Его развитие заканчивается на DX6... причём невозможно использовать некоторые функции даже этой версии (напр., мультитекстурирование). Загрузить/покрутить модельку - тут RM ещё более-менее подходит, но когда пытаешься сделать что-нибудь продвинутое (динамически изменяющуюся модель, текстуры с альфа-прозрачностью) - начинаются проблемы...
В DX8-9 MS в качестве замены RM включила в библиотеку D3DX средства для работы с моделями (см. пример NailMan'а). Вообще получилось несколько сложнее, чем в RM, но зато при необходимости можно работать на низком уровне (копаться непосредственно в полигонах), плюс поддержка современных ускорителей.
Кстати, если сферы в данном случае изображают звёзды, то это немного извращение, даже для RM. В нём, точно помню, есть спрайты, в смысле биллборды - квадраты из двух треугольников, всё время повёрнутые к камере. Как именно делается - у Н.Томпсона должно быть...
m-AAA-d (2004-02-09 10:23:00) [16]
> Это по DirectDraw. А по D3DRM см. "Секреты программирования
> трёхмерной графики под Windows 95" Найджела Томпсона.- могет быть, могет быть... но директДДД там тоже неплохо описан. щас Найджела тоже сохраню и почитаю.
а насчет современности технологии: винды никуда не делись, а директХ продолжает удивлять нас своими новыми версиями, так что... ;) технология живет и развивается.
с текстурами пока не прет, впрочем у меня было маловто времени, чтобы поразбираться
m-AAA-d (2004-02-06 17:34:00) [17]код у меня такой:
for i:= 1 to GalaxyMap.Count do begin
s:= ExtractFilePath(Application.ExeName) +
GalaxyMap.Star[i-1].Texture;
//--- Setting up MeshBuilder ---------------------------
DXDraw.D3DRM.LoadTexture(PChar(s), Texture);
MeshBuilder.SetColor(D3DRGB(1, 1, 1));
MeshBuilder.SetTexture(Texture);
//--- Setting up MeshFrames 1st level (stars) ----------
DXDraw.D3DRM.CreateFrame(MeshFrame, dMeshFrame);
dMeshFrame.SetPosition(MeshFrame, GalaxyMap.Star[i-1].X,
GalaxyMap.Star[i-1].Y, GalaxyMap.Star[i-1].Z);
//--- Create wrap --------------------------------------
dMeshFrame.AddVisual(MeshBuilder);
CreateWarp(D3DRMWRAP_CHROME, MeshBuilder, dMeshFrame);
dMeshFrame:= nil;
end; MeshBuilder:= nil;
седня попробую проверить совет данный мне Sapersky - попробую текстуру присваивать непосредственно фрейму. завтра отпишусь.
Sapersky (2004-02-06 11:02:00) [18]замечательная книжка Стена Трухильо "Программирование графики в ДиректДДД
Это по DirectDraw. А по D3DRM см. "Секреты программирования трёхмерной графики под Windows 95" Найджела Томпсона.
Кстати, упомянутая версия Win в данном случае - хороший повод задуматься о современности выбранной технологии :)
NailMan (2004-02-06 10:21:00) [19]как ты отрисовываешь сферы? в виде чего ты из юзаешь? ID3DXMesh или вручную через VB/IB?
главный принцип отрисовки с текстурами(на примере ID3DXMesh):
//устанавливаем матрицу трансформаций
Dev.SetTransform(D3DTS_WORLD, matrix);
for i:=0 to MaterialCount-1 do
begin
//устанавливаем материал
Dev.SetMaterial(Material[i]);
//устанавливаем текстуру для материала i
Dev.SetTexture(0,Texture[i]);
//рендерим меш
mesh.Drawsubset(i);
end;
end;
соответсвенно примерно так должен выглядеть метод Render у твоих сфер.
m-AAA-d (2004-02-05 16:49:00) [20]NailMan
извини, но может быть ты сможешь мнепомочь? тема такая: создаю несколько сфер в одном фрейме, заставляю их вращаться (все вместе разумеется), но каждой сфере назначаю свою текстуру. в результате же я получаю вращающиеся сферы, но закрашенные той текстурой, что грузилась последняя. можно сделать чтонить, чтобы добиться нужного мне результата?