Делаю функцию getEntityIllum для Xash и собственно столкнулся с дилеммой.
Функция берет уровень освещения для конкретной энтити (читай: точки её нахождения).
Свет у нас есть на клиенте-рендере, который грузит лайтмапы.
Способ первый - уровень освещения присутствует в структуре самой энтити, а клиент его регулярно обновляет. Однако этот способ перестает работать для dedicated серверов.
К тому же имеются известные трудности с созданием обратной
связи между клиентом и сервером.
Способ второй - грузим лайтмапы на серверную копию карты (таковая имеется для корректной работы физики)
и бегаем по ним при помощи RecursiveLightPoint
Из недостатков можно отметить увеличение времени загрузки
уровня и полный игнор динамического освещения.
Что лучше, на ваш взгляд?
>> Из недостатков можно отметить увеличение времени загрузки
На сколько ?
Думаю все же второе будет лучше .
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
В зависимости от размера карты 0.01 - 0.3 секунды.
Все это особо не критично, карта в любом случае подгружается вся целиком два раза (клиентская и серверная),
время уходит лишь на сортировку лумпов (если она конечно требуется).
Но смущает отсутствие учета динамического освещения.
Поясню почему - в хл getEntityIllum использовалось тараканами, для определения уровня освещенности.
Т.е. посветил на него фонариком - таракан и спрятался куда-нибудь, а поскольку фонарик это и есть динамический свет, нетрудно догадаться, что самый смысл функции теряется в таком случае.
Scrama как же ? Ксаш помоему предназначен для мультиплеера ...
>> Но смущает отсутствие учета динамического освещения.
Хочешь в ксаше тараканов реализовать ? Может дополнительную функцию для этих дел напишешь , или неполучится ?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша писал: Способ первый - уровень освещения присутствует в структуре самой энтити, а клиент его регулярно обновляет. Однако этот способ перестает работать для dedicated серверов.
Пусть это делает клиент игрока-сервера, и передает серверу напрямую. Думаю, в хл это сделано именно так. Что касается выделенного сервера - то там как раз таки придется тоже реализовать функцию обработки лайтмапов, включая динам. свет.