Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1088683954
Plt
2004-07-01 16:12
2004.07.18
Выполнение запроса с помощью TOracleQuery (DOA) в потоке.


1-1087939233
Денис
2004-06-23 01:20
2004.07.18
Совместное перемещение форм.


14-1088187729
ИМХО
2004-06-25 22:22
2004.07.18
Пару слов о Макинтоше


1-1088963569
Igit
2004-07-04 21:52
2004.07.18
Обрезать файл в начале


3-1088182867
zokzok
2004-06-25 21:01
2004.07.18
ttable vs tquery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский