Динамическое освещение.
Собственно хотелось бы узнать ваши мысли по поводу того как лучше сделать динамический свет на манер старых игр. Чтобы было понятнее - имеется ввиду точечный источник света от, например, ракеты или пучка плазмы. "Световое пятно" как в ранних Unreal или Quake(I-III). В инете по этой теме почти никакой инфы. Поглядев вышеописанные игры нашел только два метода:
1) Quake 2. От источника света делается пик (по сторонам куба). С учетом дистанции рисуется окружность светового пятна (с проверкой на дистанцию и положение внутри треугольника в развертке). Заметил, что это световое пятно в кваче имеет очень низкое разрешение. 2) Unreal. Рисуется декаль от источника света. Есть у кого какие идеи?) |
Ответ: Динамическое освещение.
а много в кадре может быть таких пятен?
можно просто в шейдере нормально учесть) типа генеришь шейдер на 0, 1, 2, 3, 4 лайтов. пересекаешь геометрию левела со сферой влияния света. всему что попало меняешь шейдер на учитывающий большее кол-во лайтов, передаёшь параметры лайта. это если форвард если деферед, то ваще халява Цитата:
тогда делай как в квейке |
Ответ: Динамическое освещение.
В первом сайлент-хиле уровни были "сетчатыми" из расчета 1 вершина через каждый метр. Но это имхо если освещение действительно играет большую роль.
Описанный тобою способ - проецирование текстуры светового пятна на геомертию уровня, так например сделан фонарик в Half-life, форумчанин MadMedic как то выкладывал реализацию халф-лайфовского фонарика на блиц3Д. Один недостаток - на каждый фонарик, свой текстурный слой. (( |
Ответ: Динамическое освещение.
Цитата:
|
Ответ: Динамическое освещение.
Вложений: 1
Вот такой фонарик валяется.
|
Ответ: Динамическое освещение.
Вложений: 1
Цитата:
У меня была идея сделать это через своеобразные декали: 1) При создании декаля создается меш копирующий треугольники необходимые для отображения декаля. Одним словом декаль не обрезается а наоборот копируются треугольники необходимые для проекции. 2) Обрезаются непроходящие по дистации треугольники. 3) Текстурные координаты вершин проецируются в соотношении к физическому размеру декаля. От тайлинга избавиться можно через фильтры. Таким образом получается декаль, который максимально плотно прилегает к мешу (нет z-файтинга). Специально проверил этот метод через вьювер. Работает. Правда подозреваю, что на выходе будут не слабые тормоза. Если я не ошибаюсь он будет впустую считать альфаканал для целой стены, при том дырка от пули будет занимать на экране пару пикселей. |
Ответ: Динамическое освещение.
я делал декали, примерно как ты описал, только ещё скопированные трианглы обрезал 4мя плоскостями, чтобы ровно квадратик спроецированный вышел.
на удивление шустро работало даже на моём старом компе, когда всё поливаешь пулями. |
Ответ: Динамическое освещение.
Цитата:
|
Ответ: Динамическое освещение.
Вложений: 1
остался, там С++ и ксорс правда
ну правда для реалтайм фонарика я б это не делал |
Ответ: Динамическое освещение.
Цитата:
|
Часовой пояс GMT +4, время: 11:37. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot