forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   Динамическия подсветка (http://forum.boolean.name/showthread.php?t=8533)

Damp 22.06.2009 19:35

Динамическия подсветка
 
Как способ вписать ботов в левел с лайтмэпом.
http://irgpro.narod.ru/DRGBL.rar

ABTOMAT 22.06.2009 19:48

Ответ: Динамическия подсветка
 
Ну, источники не только точечными бывают :-D Но понравилось

Damp 22.06.2009 20:16

Ответ: Динамическия подсветка
 
Теоретически можно прожектор сделать.
Но наверно во многих случаях достаточно просто разделить левел на светлые и темные зоны, это всеравно как бы не свет :) , точность получить сложно.

SBJoker 22.06.2009 22:01

Ответ: Динамическия подсветка
 
Симпотичненько.

MiXaeL 22.06.2009 22:42

Ответ: Динамическия подсветка
 
Да, прикольно.
стиль кода хардкорный))

Damp 01.07.2009 09:08

Ответ: Динамическия подсветка
 
Вложений: 1
Пытаюсь динамический свет еще сдлать.
Смотрится нормально и фпс главное не убивает, можно было бы использовать, но столько ограничений.
Как бы сделать вспышки света от выстрелов...

johnk 01.07.2009 09:26

Ответ: Динамическия подсветка
 
Damp, выложи пожалуйста скомпиленную версию.

ABTOMAT 01.07.2009 11:26

Ответ: Динамическия подсветка
 
Вложений: 1
Вотъ.
З.Ы. Да, ограничений там до фига

Raion 01.07.2009 12:02

Ответ: Динамическия подсветка
 
Такими спрайтами не получится освещение от выстрелов использовать. Я тоже долго голову ломал как это реализовать и использую стандартный CreateLight. Но можно использовать только кажется 7-8 источников света поэтому нужно их удалять когда они далеко.

Damp 01.07.2009 12:55

Ответ: Динамическия подсветка
 
Ага... такой вариант может быть хорош скажем если висит лампа, а на стену или потолок от нее падает свет и + мерцать может (не затратно), + в сочетании с динамической подсветкой близлежащих предметов, выглядело бы правдоподобно.
Или допустим лабиринт, где нет особых загибулин и все стены под 90 градусов.
Можно подумать как бы подрезать торчащие не в тему квады...

Gector 21.12.2009 18:00

Ответ: Динамическия подсветка
 
Жаль что они только точечные. Я тоже пытался нечто подобное написать. Но как уже было сказано - это только для плоскостей и кубов вроде того, что в демонстрации. При том для плоскостей в замкнутом и не рельефном уровне. Первый пример тоже не новый. Я года два назад искал способы создания чего то подобного но уже для сложных поверхностей. Как только не извращался, но выход один- мутить через меш "наклейку" на уровень. Как вариант можно потошоить свифта(если кто то еще помнит после ксорса- что это))).

Damp 22.12.2009 09:39

Ответ: Динамическия подсветка
 
В шутере (птичий грипп) использовали такую подсветку, через rgb. Отказались от вертексного света, т.к. сетка не ровная на многих моделях. Впечтления противоречивые, но выход только такой был.
А сейчас стратегию делаю наоборот все на вертексном свете. Всетаки если стараться делать ровную сетку можно получить хороший результат ) , хотя поликов больше в разы нужно...

Raion 22.12.2009 10:26

Ответ: Динамическия подсветка
 
Вложений: 3
У меня в шутере используется такой вариант. Тут самое главное грамотно настроить глобальную подсветку, источники света и саму карту
(Maplight)

Нужна картинка с лайт мапом и 3Д модель с указателями в пространстве
границ этой картинки.:-) понятна да


Цитата:

Type map_light
Field name$,image,pos,posx,posy,model,px#,py#,xr#,yr#,an im#,model2,model3,model4,model5
End Type
загрузка
Цитата:

ml.map_light=New map_light
ml\name=ReadLine(f)
ml\model=LoadAnimMesh("base\levels\maplight\"+ml\n ame+".3ds") это координаты в пространстве
ml\image=LoadAnimImage("base\levels\maplight\"+ml\ name+"_d.png",160,120,1,20) это анимационный свет
If ml\image=0 Then ml\image=LoadImage("base\levels\maplight\"+ml\name +".bmp") это статический свет
ml\pos=FindChild(ml\model,"pos")
ml\posx=FindChild(ml\model,"posx")
ml\posy=FindChild(ml\model,"posy")
проверка
Цитата:

Function update_map_light(target,model,model2)
For ml.map_light=Each map_light
ml\px#=EntityX(target,1)-EntityX(ml\pos,1)
ml\py#=EntityZ(target,1)-EntityZ(ml\pos,1)
x1#=EntityX(ml\posx,1)-EntityX(ml\pos,1)
y1#=EntityZ(ml\posy,1)-EntityZ(ml\pos,1)
ml\xr#=(1024/x1)*ml\px
ml\yr#=(1024/y1)*ml\py
SetBuffer ImageBuffer (ml\image)
GetColor ml\xr#,ml\yr#

Подсветить модель-model,model2

EntityColor model,ColorRed(),ColorGreen(),ColorBlue()
If model2<>0 Then EntityColor model2,ColorRed(),ColorGreen(),ColorBlue()

SetBuffer BackBuffer()
Next



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

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