forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Динамическое освещение. (http://forum.boolean.name/showthread.php?t=19327)

Gector 26.07.2014 00:18

Динамическое освещение.
 
Собственно хотелось бы узнать ваши мысли по поводу того как лучше сделать динамический свет на манер старых игр. Чтобы было понятнее - имеется ввиду точечный источник света от, например, ракеты или пучка плазмы. "Световое пятно" как в ранних Unreal или Quake(I-III). В инете по этой теме почти никакой инфы. Поглядев вышеописанные игры нашел только два метода:
1) Quake 2. От источника света делается пик (по сторонам куба). С учетом дистанции рисуется окружность светового пятна (с проверкой на дистанцию и положение внутри треугольника в развертке). Заметил, что это световое пятно в кваче имеет очень низкое разрешение.
2) Unreal. Рисуется декаль от источника света.

Есть у кого какие идеи?)

Mr_F_ 26.07.2014 00:41

Ответ: Динамическое освещение.
 
а много в кадре может быть таких пятен?
можно просто в шейдере нормально учесть)

типа генеришь шейдер на 0, 1, 2, 3, 4 лайтов.
пересекаешь геометрию левела со сферой влияния света.
всему что попало меняешь шейдер на учитывающий большее кол-во лайтов, передаёшь параметры лайта.

это если форвард
если деферед, то ваще халява

Цитата:

Blitz3D
wait, oh shi~
тогда делай как в квейке

Черный крыс 26.07.2014 00:44

Ответ: Динамическое освещение.
 
В первом сайлент-хиле уровни были "сетчатыми" из расчета 1 вершина через каждый метр. Но это имхо если освещение действительно играет большую роль.

Описанный тобою способ - проецирование текстуры светового пятна на геомертию уровня, так например сделан фонарик в Half-life, форумчанин MadMedic как то выкладывал реализацию халф-лайфовского фонарика на блиц3Д. Один недостаток - на каждый фонарик, свой текстурный слой. ((

Gector 26.07.2014 00:51

Ответ: Динамическое освещение.
 
Цитата:

Сообщение от Mr_F_ (Сообщение 284634)
wait, oh shi~
тогда делай как в квейке

Видимо придется(.

tirarex 26.07.2014 14:34

Ответ: Динамическое освещение.
 
Вложений: 1
Вот такой фонарик валяется.

Gector 26.07.2014 16:11

Ответ: Динамическое освещение.
 
Вложений: 1
Цитата:

Сообщение от tirarex (Сообщение 284642)
Вот такой фонарик валяется.

Это обычный фонарик Fredborg'а). Он просвечивает все))).

У меня была идея сделать это через своеобразные декали:
1) При создании декаля создается меш копирующий треугольники необходимые для отображения декаля. Одним словом декаль не обрезается а наоборот копируются треугольники необходимые для проекции.
2) Обрезаются непроходящие по дистации треугольники.
3) Текстурные координаты вершин проецируются в соотношении к физическому размеру декаля. От тайлинга избавиться можно через фильтры. Таким образом получается декаль, который максимально плотно прилегает к мешу (нет z-файтинга).

Специально проверил этот метод через вьювер. Работает.

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

Mr_F_ 26.07.2014 20:13

Ответ: Динамическое освещение.
 
я делал декали, примерно как ты описал, только ещё скопированные трианглы обрезал 4мя плоскостями, чтобы ровно квадратик спроецированный вышел.
на удивление шустро работало даже на моём старом компе, когда всё поливаешь пулями.

Gector 26.07.2014 22:49

Ответ: Динамическое освещение.
 
Цитата:

Сообщение от Mr_F_ (Сообщение 284648)
я делал декали, примерно как ты описал, только ещё скопированные трианглы обрезал 4мя плоскостями, чтобы ровно квадратик спроецированный вышел.
на удивление шустро работало даже на моём старом компе, когда всё поливаешь пулями.

Кода не осталось?)))

Mr_F_ 26.07.2014 22:57

Ответ: Динамическое освещение.
 
Вложений: 1
остался, там С++ и ксорс правда

ну правда для реалтайм фонарика я б это не делал

Gector 27.07.2014 12:02

Ответ: Динамическое освещение.
 
Цитата:

Сообщение от Mr_F_ (Сообщение 284653)
остался, там С++ и ксорс правда

ну правда для реалтайм фонарика я б это не делал

Ок. В принципе повертексное тоже не так уж плохо.


Часовой пояс GMT +4, время: 11:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot