HLFX.Ru Forum Страницы (260): « Первая ... « 176 177 178 179 [180] 181 182 183 184 » ... Последняя »
Показать все 3892 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Дядя Миша 10-01-2021 в 13:54:

Crystallize ты считай во флоатах, как обычно. Но монохром.
А потом как лайтмапу на диск сохранять - уже пиши вместо RGB 24-битное значение интенсивности. И потом в шейдере его смешивай с реальными источниками.
Вот у Хумуса даже демка была: http://humus.name/3D/ModernLightMapping.zip
Хотя что в ней модернового, так с незапамятных времён делают.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 10-01-2021 в 14:06:

Разводов и так быть не должно. Если есть разводы, значит что-то не так считается.


Отправлено Crystallize 10-01-2021 в 16:15:

Цитата:
ncuxonaT писал:
Crystallize рейнхард мерзкий, попробуй экспоненциальный
color.rgb = vec3(1.0) - exp(- color.rgb);

На ярких лайтах вообще как будто клампинг без тонмаппинга, ну тут хоть это не так заметно. А есть вариант с указанием белой точки? А че зря её считал?


Отправлено ncuxonaT 10-01-2021 в 20:47:

Crystallize я без понятия, что это за белая точка и зачем она нужна. Но по крайней мере теперь нет желто-красного пятна на стене.

Дядя Миша непонятно, как хумус кластеры рассчитывал. В кластер пихаются все непересекающиеся источники? А что делать с глобалкой?

Добавлено 10-01-2021 в 23:47:

Раз уж речь про компиляторы, скажите мне, как рассчитывается яркость ареа лайтов? В lights.rad записана яркость чего? Одного квадратного юнита?


Отправлено Дядя Миша 10-01-2021 в 21:39:

Цитата:
ncuxonaT писал:
А что делать с глобалкой?

глобалку на отдельную страничку. Ну или в соседний канал, как в UE.

Цитата:
ncuxonaT писал:
В lights.rad записана яркость чего?

абстрактных чисел. Оно мало того что нефизичное, так еще и внутри компилятора умножается на какой-то от балды подобранный множитель.
Причём он свой в халфе и свой в ку3. Кстати, я тут выяснил любопытную вещь. В сталкере были ареа-лайты, но без PTPFF. Неудивительно что их так никто и не юзал.

Добавлено 11-01-2021 в 00:38:

Цитата:
ncuxonaT писал:
В кластер пихаются все непересекающиеся источники?

кластеры там скорее для оптимизации. Да вон же сорцы в комплекте и там код генерации этих кластеров. Оно там просто флажочки накапливает за какой пиксель лайтмапы отвечают какие источники.

Добавлено 11-01-2021 в 00:39:

Да и как я уже говорил, во всех подобных технологиях суть очень проста, а больше всего времени отнимает разная подготовительная возня.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 11-01-2021 в 02:06:

Цитата:
Дядя Миша писал:
абстрактных чисел. Оно мало того что нефизичное, так еще и внутри компилятора умножается на какой-то от балды подобранный множитель.

В голде там множитель 0.1, но он такой маленький видимо просто чтобы скомпенсировать дикое усиление яркости вызванное Valve weird divider = x^3/10. А в сорсе дивайдера нет и множитель уже адекватный 100*100, чтобы при квадратичной затухании, на 100 юнитов под лампой, т.е. на полу, свет примерно равнялся тому что маппер выставил в настройках лайта(текслайта)


Отправлено ncuxonaT 11-01-2021 в 02:37:

Но яркость в итоге зависит от площади? Если я хочу заменить ареалайт одним или несколькими спотлайтами, как высчитать их яркость?


Отправлено Crystallize 11-01-2021 в 03:26:

по-моему зависит, да.

C++ Source Code:
VectorScale(dl->intensity, p->area, dl->intensity);
VectorScale(dl->intensity, DIRECT_SCALE, dl->intensity);


Отправлено ncuxonaT 11-01-2021 в 04:33:

Crystallize а Valve weird divider как нужно применять?


Отправлено Crystallize 11-01-2021 в 06:56:

ncuxonaT

C++ Source Code:
1
l1 = max(dl->intensity[0], max(dl->intensity[1], dl->intensity[2]));
2
l1 = l1 * l1 / 10;
3
 
4
dl->intensity[0] *= l1;
5
dl->intensity[1] *= l1;
6
dl->intensity[2] *= l1;

у ДМ ещё и radius из l1 берётся емнип

Добавлено 11-01-2021 в 13:56:

лол почему появилась нумерация строчек


Отправлено Дядя Миша 11-01-2021 в 07:17:

Цитата:
Crystallize писал:
но он такой маленький видимо просто чтобы скомпенсировать дикое усиление яркости вызванное Valve weird divider = x^3/10.

Это только для точечных и направленных источников. Ареалайты не домножаются.

Цитата:
ncuxonaT писал:
Но яркость в итоге зависит от площади?

естественно зависит.

Цитата:
ncuxonaT писал:
Если я хочу заменить ареалайт одним или несколькими спотлайтами, как высчитать их яркость?

что значит "хочу" ? Можно подумать есть какой-то другой способ симулировать ареалайты. Ареалайт, это грубоговоря такой же направленный источник но с хитростью. Он использует PTPFF. Из-за чего свет исходит не из одной точки, а оказывается равномерно размазанным по всей площади, т.е. именно то, что нам и надо.
Яркость их поидее вычислять никак не надо. В ку3 яркость каждого такого источника умножается на 3 и на 0.25, но это повторюсь от балды подобранные значения. А саму яркость делить на кол-во источников не надо, они же не точечные. PTPFF сам это сделает. Но ему нужно иметь доступ к геометрии, а саму поверхность желательно нарезать на небольшие квадратики.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 11-01-2021 в 16:22:

Как найти люксели вокруг люкселя samp->light[k]?


Отправлено Дядя Миша 11-01-2021 в 16:45:

Цитата:
Crystallize писал:
Как найти люксели вокруг люкселя samp->light[k]?

ну этож условно двухмерный массив. Посдвигай по ядру, выбери которое тебе больше нравится. Я так понимаю, ты просто хочешь найти 8 люкселей вокруг заданного?
C++ Source Code:
1
-1, -1
2
0, -1
3
1, -1
4
-1, 0
5
1, 0
6
-1, 1
7
0, 1
8
1, 1

Это оффсеты для текущего x, y. Но смотри, чтобы не выйти за границы массива. И не пиши результ в тот же массив.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 11-01-2021 в 19:51:

а, там размеры конкретного массива и текущая координата на виду лежат? Ну ок, присмотрюсь, спасибо.

Что увидел. Чел учит маппать точка к точке.


Отправлено Дядя Миша 11-01-2021 в 20:52:

Цитата:
Crystallize писал:
а, там размеры конкретного массива и текущая координата на виду лежат?

k = x * width + y; или что-то такое, я всё время забываю правильную формулу. Ну да увидишь - не ошибешься.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 16:37. Страницы (260): « Первая ... « 176 177 178 179 [180] 181 182 183 184 » ... Последняя »
Показать все 3892 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024