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

Вниз

2D вечен?   Найти похожие ветки 

 
NewOldMan-NOM   (2004-05-02 11:05) [0]

Более чем уверен, что подобный вопрос уже был, но поиск ничего не дал(нужного) ;)Ладно, ближе к делу. Раньше я программировал на PASCALE, теперь перешел на визуальную среду. Вопрос как пичать 2 d игрушки?(Я имею ввиду визуальную часть, как все это выводить? Купил книгу :-) а там написано про рисование на канве, но все так убого получается, мерцание и т.д. и т.п.). Ну так что будем делать. Help!


 
Pa5ha   (2004-05-02 11:08) [1]

Есть такая замечательная вещь - DirectDraw. Еще можно на OpenGL - только он больше для 3д (читай, для 3д и сделан). Есть книги про это у Краснова DirectX (OpenGL) Графика в проектах Delphi. Почитай. А гамы лучше делать 3д, это намного интереснее. Забей на 2д.


 
Mihey ©   (2004-05-02 19:10) [2]

>Есть такая замечательная вещь - DirectDraw.

замечательная = отстойная, причём именно в той области, на которую она и расчитана.


 
VMcL ©   (2004-05-02 19:11) [3]

>>NewOldMan-NOM  (02.05.04 11:05)

Если использовать технику двойной буферизации, то и для WinAPI функций рисования на канве можно добиться исчезновения/уменьшения мерцания. Пример реализации можно посмотреть в VCL (TWinControl.DoubleBuffered).


 
miek ©   (2004-05-02 20:55) [4]

Для флейма есть конференция "Потрепаться".


 
GlavBOTan ©   (2004-05-02 21:00) [5]

Насчет двойной буферизации: сначала рисуем все на Bitmape (например, buf: TBitmap), хранящемся в памяти, после чего выводить на форму с помощью CopyRect. Все получается лучшим образом даже на слабых машинах.


 
Gero ©   (2004-05-02 21:38) [6]


Mihey ©   (02.05.04 19:10)
> замечательная = отстойная, причём именно в той области,
> на которую она и расчитана

Можешь предложить что-то лучше?


 
Mihey ©   (2004-05-02 23:27) [7]

2 Gero:

Да, могу. Любая обёртка 3D для работы с 2D справляется лучше и гораздо продуманнее, чем великий и ужасный механизм блиттинга на соплях, в неудобнейшей реализации, с кучей глюков и даже без простой поддержки блендинга. Извините, но это издевательство.


 
miek ©   (2004-05-03 10:15) [8]

>ужасный механизм блиттинга

Ну так что ж ты хотел, это самый нижний уровень. Это как ассемблер с ЯВУ сравнивать - фу, какой примитивизм! Все в сравнении познается. Что есть лучше DirectDraw? Предъяви.


 
Mihey ©   (2004-05-03 19:35) [9]

>Ну так что ж ты хотел, это самый нижний уровень.

Не самый нижний. Кроме того, DirectDraw претендует на роль графической панацеи. Дело в том, что те аппаратные ускорения, которые могли бы быть, совсем не реализованы.

>Что есть лучше DirectDraw? Предъяви.

Direct3d для рисования в 2d лучше. OpenGL со своими текстурками лучше.


 
miek ©   (2004-05-03 23:57) [10]

>Не самый нижний.

Реально - без кшмарного гемора - самый нижний.

>Кроме того, DirectDraw претендует на роль графической панацеи

Не то, чтобы он претендовал. Делаешь вокруг негообертку - вот и будет панацея. К тому же, от него, как ты помнишь, уже отказались насовсем.

>Direct3d для рисования в 2d лучше

Субъективное мнение. А про ОпенГЛ лучше и не говори - смешно.


 
Mihey ©   (2004-05-04 00:37) [11]

>Субъективное мнение. А про ОпенГЛ лучше и не говори - смешно.

А я и не смешу. Обёртка, естественно, в обёртке. Обёртка под Direct3d просто быстрее, чем обёртка под DirectDraw, потому что в первом случае все навороченные фичи поддерживаются ускорителем. OpenGL крут и жив, часто вижу в нете, что программерские комманды отказываются от Direct3d в пользу него (для проектов стратегических не3d игр), было 2-3 случая таких.


 
VMcL ©   (2004-05-04 02:48) [12]

>>Mihey ©  (02.05.04 23:27) [7]

>Любая обёртка 3D для работы с 2D справляется лучше и гораздо продуманнее...

1. Запусти "обертку 3D" на видеокарте, не поддерживающей 3D акселерацию, и сравни с "великий и ужасный механизм блиттинга на соплях".

2. Запусти 3D движок БЕЗ двойной (а то и тройной) буферизации и посмотри, как всё будет "красиво".


 
Думкин ©   (2004-05-04 13:10) [13]

OpenGL - он и в Африке таков, по сути, хотя в Виндоус все одно к Директу приходит.
А 3Д - оно лучше и круче, только карточки как и сказано надо иметь соответствующие, что есть плохо. И простую 2Д игру(в кульном 3Д) вы вынуждены писать задействуя многия метры и т.п.

По сабжу:
Если у тебя такие вопросы. Пиши с использованием канвы. Поверь тебе  ее потенциала еще долго хватит. Только не будем сразу Дуум3 писать. Хорошо?


 
Sapersky ©   (2004-05-04 14:34) [14]

Любая обёртка 3D для работы с 2D справляется лучше и гораздо продуманнее, чем великий и ужасный механизм блиттинга на соплях, в неудобнейшей реализации, с кучей глюков и даже без простой поддержки блендинга. Извините, но это издевательство.

В те времена, когда появился DDraw, как издевательство звучало предложение делать 2D через 3D. Какими словами вы обзывали бы Starcraft, если бы он требовал 3D-ускоритель? :)
Так что DDraw не плохой - просто слегка (хм :)) устаревший.

Помимо отсутствия спецэффектов, есть ещё проблема - DDraw плохо переваривает большое кол-во спрайтов (частицы и пр.), даже если рисовать самым что ни на есть аппаратным блиттингом. D3D и OGL в этом случае работают значительно лучше - они как раз рассчитаны на вывод больших объёмов данных.

Запусти "обертку 3D" на видеокарте, не поддерживающей 3D акселерацию

У D3D7 и OGL есть программная эмуляция... Опять же, даже встроенные видеокарты начиная с i810 - ускорители, хотя не шибко мощные, но для 2D должно хватить.

Хотя чисто эмоционально меня раздражает, когда какой-нибудь игродел заявляет, что ему для 2D-движка нужен GeForce. За NVidi"ю обидно - что используют их микроскопы для забивания гвоздей.


 
Mantic0re ©   (2004-05-05 11:13) [15]

"Страсти наколялись с каждой минутой.."

2 NewOldMan-NOM:
 Я что-то подобное переживал в свое время. Пробовал стандартные средства - канва, VCL.. Но результаты, как ты и сам понимаешь были не очень, засел за изучение системы сообщений и объектов синхронизации Windows, WinAPI, DirectDraw..

И, стало все ок :)

 Если говорить о простейшем 2Д движке, то для него действительно можно обойтись и без DDraw, как и сказал VMcL, можно пользовать что-то набодобии TWinControl.DoubleBuffered, я лично "говорил" системе не обрабатывать сообщение WM_ERASEBKGND, и рисовал что нужно в WM_PAINT - получалось и быстро и без мерцаний..



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

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

Наверх




Память: 0.51 MB
Время: 0.027 c
3-1087896834
stas
2004-06-22 13:33
2004.07.18
AdoConnection и процессы на сервере


11-1076660898
Mist
2004-02-13 11:28
2004.07.18
Отображение ShortCut(Accelerator) в главном меню


3-1087816797
denis24
2004-06-21 15:19
2004.07.18
p1:tparam-->p1.free


1-1089197390
Relaxxx
2004-07-07 14:49
2004.07.18
Ускорение TreeView


1-1088765574
ssk
2004-07-02 14:52
2004.07.18
Доступ к свойствам объектов в FastReport