Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как засветить часть экрана.


@!!ex ©   (2007-07-04 00:36:00) 

делаю взрыв.
Нужно в некотором радиусе всю геометрию осветлить...
Как это можно сделать?
Есть быстрый алгоритм... Но я его не знаю. :\


@!!ex   (2007-07-06 19:57:00) [1]

Тема. Что что надо. Спасибо!


Sapersky   (2007-07-06 18:39:00) [2]

Формула блендинга:
Dst = Src * K1 + Dst * K2
glBlendFunc задаёт коэффициенты K1 и K2, поэтому для аддитивного нужно использовать GL_ONE, GL_ONE.


@!!ex   (2007-07-06 17:56:00) [3]

делаю так:
glBlendFunc(GL_SRC_COLOR,GL_DST_COLOR)
получается фигня.


@!!ex   (2007-07-05 14:16:00) [4]

> [13] Sapersky   (05.07.07 13:40)

Ок! Я думал над этим, но не догонял как сделать.


Sapersky   (2007-07-05 13:40:00) [5]

Поверхность цвета 0.3 0.5 0.2
Часть из нее подсвечена. Тоесть цвет там скажем 0.5 0.7 0.4


Может быть, [1], но установить аддитивный блендинг (Dst = Src1 + Src2), а не альфа (Dst = Src1 * Alpha + Src2 * (1 - Alpha))?


@!!ex   (2007-07-05 10:50:00) [6]

> [10] Sapersky   (05.07.07 09:48)

Не. Я не это имел ввиду.
Хотя материал тоже интересный. Спасибо.


@!!ex   (2007-07-05 10:48:00) [7]

> [9] Jkot ©   (05.07.07 06:09)

Пример:
Поверхность цвета 0.3 0.5 0.2
Часть из нее подсвечена. Тоесть цвет там скажем 0.5 0.7 0.4


Sapersky   (2007-07-05 09:48:00) [8]

http://developer.nvidia.com/object/Volumetric_Explosions.html

Думаю, шейдерные методы работают примерно так же. Ну то есть грубое отсечение того, что не попадает во "взрывной объём" можно делать на CPU (в мировых координатах), а расчёт текс. координат - в шейдере.
Можно попробовать использовать объёмную текстуру вместо обычной (и расчёт текс. координат по мировым, а не экранным координатам), хотя не уверен, что это даст какую-то выгоду.


Jkot   (2007-07-05 06:09:00) [9]

@!!exЕсли ты мне разжуёш что значит засвечанный то могу на GLSL такое сделать....


antonn   (2007-07-04 13:23:00) [10]


> OGL, но это без разницы.

если канвас - разница есть%)


@!!ex   (2007-07-04 12:15:00) [11]

Манка у меня есть, а вот примера не вижу. :\


RzCoDer   (2007-07-04 12:03:00) [12]


> @!!ex ©

скачай с сайта ati прогу rendermonkey - визуальный редактор шейдеров, если не ошибаюсь там бол похожий пример


@!!ex   (2007-07-04 11:33:00) [13]

> [4] antonn ©   (04.07.07 11:26)

OGL, но это без разницы.
Мне принцип нужен, а не готовый код.
Хотя против готового кода тоже ничего не имею. :)


antonn   (2007-07-04 11:26:00) [14]

для начала бы сказал, чем хоть графику выводишь...


@!!ex   (2007-07-04 10:14:00) [15]

> [1] Jkot ©   (04.07.07 06:27)

Он получается не засвеченный, а белесый. :((


> [2] RzCoDer ©   (04.07.07 10:13)

Как это реализовать шейдерами?


RzCoDer   (2007-07-04 10:13:00) [16]

шейдеры рассматривал?


Jkot   (2007-07-04 06:27:00) [17]

бальшой белый круг с альфой от центра к краям накладываем сверху вот и всё.


Наверх

Титульная страница Поиск, карта сайта Написать письмо