Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 16.01.2009, 07:38
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Цитата:
А вообще могу поделится идеями создания быстрого и красивого огня на чистом Delphi (без сторонних модулей или компонентов)
А ты не мог бы дать скринчик?
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #17  
Старый 16.01.2009, 10:29
Аватар для SHKIP3R
SHKIP3R SHKIP3R вне форума
Новичок
 
Регистрация: 24.04.2007
Адрес: Челябинск
Сообщения: 69
Репутация: -1631
По умолчанию

Цитата:
Сообщение от DungeonLords
А вообще могу поделится идеями создания быстрого и красивого огня на чистом Delphi (без сторонних модулей или компонентов)
Так об этом и просят в этой ветке, если ты не догадался
Ответить с цитированием
  #18  
Старый 16.01.2009, 11:19
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

В том то и вся загвоздка, что это идеи. А реализацию придамать пока не получается.

P.S. Ну так мне писать свои идеи или нет?
Ответить с цитированием
  #19  
Старый 16.01.2009, 15:41
Alex_Crack Alex_Crack вне форума
Прохожий
 
Регистрация: 15.01.2009
Сообщения: 6
Репутация: 10
По умолчанию

есть алгоритм на C++, попробую переписать на делфи, потом выложу. Еще есть огонь с использованием DirectDraw, написан на API.
Ответить с цитированием
  #20  
Старый 16.01.2009, 16:04
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Ну так вот. Я предлагаю пирамидный алгоритм. Суть в том, что огонь строится при помощи пирамиды и её изменения:


изначальная пирамида

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



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


рис 3. Натуральная свеча.


Про раскраску пламени я пока писать ничего не буду.

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

Ну так вот, что касается поведения огня. Здесь самое сложное. Посмотрите, как изменяется изображение, если на него дусть из небольшого отверстия, радиусом где то 2,2 мм. Замечание - относительно текущего положения картинки, на огонь дули слева, причём дули почти без откланений по высоте (насколько это было возможным)(рис 5).


рис 5. Характер изменения пламени свечи.


Предлагается (мною, разумеется) использовать смещение (ротация по градусам) с затуханием. Мы будем поворачивать ряды, на которое воздействует некая сила. Вопрос только в том, на какую величину Smx, зависящую от силы и позиции данной точки (т. е. для каждой точки отдельно) поворачивать по оси X, на какую величину Smy, зависящую от силы и позиции данной точки (т. е. для каждой точки отдельно) поворачивать по оси Y, какие точки, заложенные в масив k, тушить (неотображать).


Конечно, графическая часть алгоритма может быть построена и на стандартном в Delphi классе Tcanvas, и отправлена прямо в видео память, или используя библеотеку DirectX, либо OpenGL, либо вообще третию графическую библеотеку. Но я лично умею работать только с Tcanvas(будет мерцать), могу отправить напрямую в видеопамять, но это долго и муторно, и могу использовать OpenGL. Последний вариант мне больше всего нравится, вот я и буду использовать его. Я набросал недоделанное приложение, может вы доделаете (или я, но попоже). Короче вот http://ifolder.ru/10059234

* статья дописывалась бы, если бы мне больше приходило мыслей в голову. v1.2

Последний раз редактировалось DungeonLords, 20.01.2009 в 13:00.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:28.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025