-
делаю взрыв.
Нужно в некотором радиусе всю геометрию осветлить...
Как это можно сделать?
Есть быстрый алгоритм... Но я его не знаю. :\
-
бальшой белый круг с альфой от центра к краям накладываем сверху вот и всё.
-
шейдеры рассматривал?
-
> [1] Jkot © (04.07.07 06:27)
Он получается не засвеченный, а белесый. :((
> [2] RzCoDer © (04.07.07 10:13)
Как это реализовать шейдерами?
-
для начала бы сказал, чем хоть графику выводишь...
-
> [4] antonn © (04.07.07 11:26)
OGL, но это без разницы.
Мне принцип нужен, а не готовый код.
Хотя против готового кода тоже ничего не имею. :)
-
> @!!ex ©
скачай с сайта ati прогу rendermonkey - визуальный редактор шейдеров, если не ошибаюсь там бол похожий пример
-
Манка у меня есть, а вот примера не вижу. :\
-
> OGL, но это без разницы.
если канвас - разница есть%)
-
@!!ex Если ты мне разжуёш что значит засвечанный то могу на GLSL такое сделать....
-
http://developer.nvidia.com/object/Volumetric_Explosions.htmlДумаю, шейдерные методы работают примерно так же. Ну то есть грубое отсечение того, что не попадает во "взрывной объём" можно делать на CPU (в мировых координатах), а расчёт текс. координат - в шейдере.
Можно попробовать использовать объёмную текстуру вместо обычной (и расчёт текс. координат по мировым, а не экранным координатам), хотя не уверен, что это даст какую-то выгоду.
-
> [9] Jkot © (05.07.07 06:09)
Пример:
Поверхность цвета 0.3 0.5 0.2
Часть из нее подсвечена. Тоесть цвет там скажем 0.5 0.7 0.4
-
> [10] Sapersky (05.07.07 09:48)
Не. Я не это имел ввиду.
Хотя материал тоже интересный. Спасибо.
-
Поверхность цвета 0.3 0.5 0.2
Часть из нее подсвечена. Тоесть цвет там скажем 0.5 0.7 0.4
Может быть, [1], но установить аддитивный блендинг (Dst = Src1 + Src2), а не альфа (Dst = Src1 * Alpha + Src2 * (1 - Alpha))?
-
> [13] Sapersky (05.07.07 13:40)
Ок! Я думал над этим, но не догонял как сделать.
-
делаю так:
glBlendFunc(GL_SRC_COLOR,GL_DST_COLOR)
получается фигня.
-
Формула блендинга:
Dst = Src * K1 + Dst * K2
glBlendFunc задаёт коэффициенты K1 и K2, поэтому для аддитивного нужно использовать GL_ONE, GL_ONE.
-
Тема. Что что надо. Спасибо!