Конференция "Игры" » Как засветить часть экрана.
 
  • @!!ex © (04.07.07 00:36) [0]
    делаю взрыв.
    Нужно в некотором радиусе всю геометрию осветлить...
    Как это можно сделать?
    Есть быстрый алгоритм... Но я его не знаю. :\
  • Jkot © (04.07.07 06:27) [1]
    бальшой белый круг с альфой от центра к краям накладываем сверху вот и всё.
  • RzCoDer © (04.07.07 10:13) [2]
    шейдеры рассматривал?
  • @!!ex © (04.07.07 10:14) [3]
    > [1] Jkot ©   (04.07.07 06:27)

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


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

    Как это реализовать шейдерами?
  • antonn © (04.07.07 11:26) [4]
    для начала бы сказал, чем хоть графику выводишь...
  • @!!ex © (04.07.07 11:33) [5]
    > [4] antonn ©   (04.07.07 11:26)

    OGL, но это без разницы.
    Мне принцип нужен, а не готовый код.
    Хотя против готового кода тоже ничего не имею. :)
  • RzCoDer © (04.07.07 12:03) [6]

    > @!!ex ©

    скачай с сайта ati прогу rendermonkey - визуальный редактор шейдеров, если не ошибаюсь там бол похожий пример
  • @!!ex © (04.07.07 12:15) [7]
    Манка у меня есть, а вот примера не вижу. :\
  • antonn © (04.07.07 13:23) [8]

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

    если канвас - разница есть%)
  • Jkot © (05.07.07 06:09) [9]
    @!!ex Если ты мне разжуёш что значит засвечанный то могу на GLSL такое сделать....
  • Sapersky (05.07.07 09:48) [10]
    http://developer.nvidia.com/object/Volumetric_Explosions.html

    Думаю, шейдерные методы работают примерно так же. Ну то есть грубое отсечение того, что не попадает во "взрывной объём" можно делать на CPU (в мировых координатах), а расчёт текс. координат - в шейдере.
    Можно попробовать использовать объёмную текстуру вместо обычной (и расчёт текс. координат по мировым, а не экранным координатам), хотя не уверен, что это даст какую-то выгоду.
  • @!!ex © (05.07.07 10:48) [11]
    > [9] Jkot ©   (05.07.07 06:09)

    Пример:
    Поверхность цвета 0.3 0.5 0.2
    Часть из нее подсвечена. Тоесть цвет там скажем 0.5 0.7 0.4
  • @!!ex © (05.07.07 10:50) [12]
    > [10] Sapersky   (05.07.07 09:48)

    Не. Я не это имел ввиду.
    Хотя материал тоже интересный. Спасибо.
  • Sapersky (05.07.07 13:40) [13]
    Поверхность цвета 0.3 0.5 0.2
    Часть из нее подсвечена. Тоесть цвет там скажем 0.5 0.7 0.4


    Может быть, [1], но установить аддитивный блендинг (Dst = Src1 + Src2), а не альфа (Dst = Src1 * Alpha + Src2 * (1 - Alpha))?
  • @!!ex © (05.07.07 14:16) [14]
    > [13] Sapersky   (05.07.07 13:40)

    Ок! Я думал над этим, но не догонял как сделать.
  • @!!ex © (06.07.07 17:56) [15]
    делаю так:
    glBlendFunc(GL_SRC_COLOR,GL_DST_COLOR)
    получается фигня.
  • Sapersky (06.07.07 18:39) [16]
    Формула блендинга:
    Dst = Src * K1 + Dst * K2
    glBlendFunc задаёт коэффициенты K1 и K2, поэтому для аддитивного нужно использовать GL_ONE, GL_ONE.
  • @!!ex © (06.07.07 19:57) [17]
    Тема. Что что надо. Спасибо!
 
Конференция "Игры" » Как засветить часть экрана.
Есть новые Нет новых   [134431   +10][b:0][p:0.001]