Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

Чем DelphiX хуже Direct API. (Это не вопрос)   Найти похожие ветки 

 
Ev_genus ©   (2002-05-10 12:41) [0]

Хочу дать возможность высказаться всем желающим, дабы прекратить постоянные повторения вопроса по этой теме в разных формулировках.

Начал я год назад писать свою "игру" (демка недеделанная, но "игрой" называть её приятнее) в Delphi с помощью DelphiX. Вдохновлённый разными демками и сэмплами я начал воять. Всё хорохо и управление устраивает и графика класс. Но тут решил я проверить свой движок на скорость (а за одно и на прочность), зарядил в него 1500 объектов и увидел все прелести покадрового слайд шоу (3 fps). Может это движок тормозит,- подумал я. Взал и отрубил вывод спрайтов. О чудо: скорость взлетела до потолка. И тут я задумался... Пошел с горя на базар и купил книжку по Direct API. Три дня помучился, зато теперб 2000 спрайтов на экране, а мне хоть-шо - 50 fps. А главное: я понял как всё это работает до мелочей и подробностей.

Вот и сказочке конец, а кто слушал .......

PS Но у Direct API есть и недостатки. Например Alpha-Blending. Там его просто нет, поэтому нужно писать самому (на ассемблере) или взять де то.


 
ION T ©   (2002-05-10 20:18) [1]

А альфаблендинг выдрать из DelphiX:))


 
Автор   (2002-05-10 21:17) [2]

Я пытался. Не получилось. Если заешь как то поделись опытом.


 
ION T ©   (2002-05-11 10:50) [3]

Я тоже не пытался (надобности не было) Но если приспичит, то думаю можно....


 
HellTrooper ©   (2002-05-16 11:38) [4]

Хм... Альфа блендинг делается довольно быстро даже без ДХ :)Главное знать формулу :)
Я тоже предпочитаю API имхо он проще и понятней (особенно когда читаешь СДК на сях, и пишешь на дельфях %-) и такое случается) хотя из ДелфиХ использую обычно таймер и TDXPlay(В СДК я до этого места недошёл :)). Но я думаю всё же, что тут приходится выбирать, как в давнешние времена, высокий или низкий уровень.


 
Владимир Васильев ©   (2002-05-16 14:03) [5]

> Ev_genus вы не правы с fps.

UnTitledRTS c отключённым AI (поиск врагов , обработка столкновений и атака ) - только вывод графики - ведь именно про это идёт речь
- 1500 Sprites + ScrollBackGraund ~ 40fps.

Можете проверить сами.
http://www.gamedev.narod.ru/index.htm ( к сожалению почти годичной давности, новый код закрыт) .



 
GL   (2002-05-17 16:52) [6]

Вообще писать игры (да и просто приложения, использующие графику) с применением компонентов - это ОТСТОЙ. Все нормальные игры написаны на чистом Win API и используют функции непосредственно из OpenGL или Direct3D. При этом скорость существенно возрастает, да и не возникает таких проблем, как например отсутствие Alpha Blending в каком-то компоненте.

P.S. Наилучший вариант для программирования графики - MSVC++ & WinAPI.


 
Урб   (2002-05-18 02:51) [7]

Для GL.
Ты находишся на: http://delphi.mastak.ru/
Тут обсуждается как делать игры на DELPHI.

Я понимаю, что 99% игр пишутся на С, С++, и есть форумы где Сишники обсуждают, как круто писать игры на С++. И этих форумов на много больше, чем тот, на который ты читаешь сейчас.
Пожалуйста, перейди туда и посться там.

И не думал наезжать. ;) Честное слово.

А я пока еще верю, что найдется человек чтобы дополнить список из: Эйдж оф Вонды и Сьеджа оф Авалона... ;)


 
Автор   (2002-05-20 12:09) [8]

Уважаемый Владимир Васильев. На счёт fps: Конкретные числа зависят от аппаратного обеспечения (железа). Я только хотел показать разницу.

Сишникам. На Delphi игрушки не пишут потому, что на delphi можно писать другие вещи и зарабатывать намного большие деньги. А разговоры типа Си круто всё остальное - отстой мне и слушать не хочется (не аргумментированый трёп).


 
Aspid_Papa   (2002-05-20 15:14) [9]

Почитал. Спасибо.


 
Сергей Чурсин   (2002-09-07 19:40) [10]

2Ev_genus & All

было бы интерестно, почитать еще про возможности/невозможности в DelphiX ? Не только касательно скорости.. Например, там есть возможность прямого доступа к поверхности ? (Lock->Unlock).. И возможность использовать прямые функции DirecX Api к объектам DelphiX ? (ну как Form.Handle - это Hwnd :) )

2GL
Полностью одобряю сказанное Урб-ом.



 
artemiy   (2002-09-07 23:17) [11]

Ev_genus ©

Извините........а можно посмотреть ваш движок на ДельфиХ(который тормозит) ???


 
Pasha676   (2002-09-10 10:52) [12]

Про двухмерную графику ничего не скажу. Скажу про трехмерную. Использую самый препоганый вариант в плане скорости - DelphiX, 3DRM интерфейс (вот это тормоз так тормоз, но уж больно просто конвентируются в нем из 3DMAX объекты), есть полупрозрачности, наверное даже более 6000, а то и 7000 полигонов, точно не смотрел, оконный режим - ну и ничего. Свои 70 фреймов в секунду делает. Мне хватает.
Да я знаю, что если писал бы на Direct API, было бы лучше, да я знаю что если б писал на IDirectDraw интерфейсе - было бы лучше. Даже может когда-ниб и перепишу. Но скорость разработки на DelphiX, имхо, выше. А это далеко не последний фактор, заказы надо делать в срок.


 
Крупье   (2002-09-10 11:10) [13]

После выхода каждой новой версии приходится дожидаться появления заголовочников, а при юзании DelphiX-еще и надо ждать, когда его обновят (энтузиасты).

К тому же принципиально новые фичи графики DirectX в DelphiX не юзаются вовсе.


 
Sapersky_   (2002-09-10 12:53) [14]

2Pasha676:
Если выводится один-единственный объект, особой разницы между D3D RM и IM (Immediate Mode, непосредственный режим) не будет (т.к. RM реализован на IM). Тем более не будет разницы, используется при этом DelphiX или нет - т.к. DelphiX контролирует только 2D-графику.
Проблемы с D3D RM начинаются, если нужно сделать что-то продвинутое - альфа-текстуру (взрыв, дым...) или динамический (изменяющийся с течением времени) объект. Мультитекстурирование, бамп-мэппинг и т.д. вообще невозможны.
Опять же, невозможно контролировать весь процесс рендеринга. Это иногда приводит к забавным казусам - например, я как-то СЛУЧАЙНО получил Motion Blur...
И общая корявость... всё это создание фреймов, присоединение того к этому сильно напоминает пляску шамана с бубном. Сейчас, изучив IM (рекомендую для начала 7-ю версию - самая простая), на RM смотреть не могу - противно. Если уж работать на высокоуровневом API, то лучше, пожалуй, GLScene. В плане интеграции с Delphi и вообще.

2Все:
DelphiX... штука неплохая. Но при самостоятельном написании всего можно учесть особенности своей программы и получить бОльшую производительность... и меньший размер exe-шника (мелочь, а приятно :)).
Альфа-блендинг можно утащить из FastLIB http://gfody.com/ или делать его через Direct3D (это не так уж и сложно, см. мой пример Points на DelphiGFX).


 
Fog ©   (2002-09-10 18:37) [15]

Использовать компоненты - себя не уважать и пользователей тоже!


 
Владимир Васильев ©   (2002-09-10 21:58) [16]

>fog , простите, а вы уже что-то коммерческое успели написать,-без компонентов - в одиночку????


 
a_n_t   (2002-09-11 05:23) [17]

2Fog: Пользователь (среднестатистический) в жизнь не отличит: использованы компоненты при разработки или нет. Он и понятия не имеет что такое компоненты и вообще как это можно написать программу :)


 
Pasha676   (2002-09-11 13:42) [18]

2Sapersky_
А нельзя ли, плиз, по GLScene порекомендовать мне что-ниб почитать или примерчики или сайтики и вообще откуда мне плясать начать, чтоб освоить его. И вообще что это такое и хде это взять.


 
Pasha676   (2002-09-11 13:44) [19]

Ой спасибо. Уже не надо в соседнем топике нашел. Сорри за торможение



Страницы: 1 вся ветка

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
1-38364
Alexandr3
2003-02-04 07:36
2003.02.13
Помогите пожалуйста показать окно


14-38453
Demetrius
2003-01-30 15:11
2003.02.13
Help me, please


14-38437
maxim2
2003-01-30 11:11
2003.02.13
Как вызвать процедуру из чужой Dll


3-38092
Виталий Панасенко
2003-01-27 14:55
2003.02.13
DBGridEh


14-38500
Timofey
2003-01-27 22:11
2003.02.13
Как можно сделать фон вокруг значков рабочего стола прозрачным?