HLFX.Ru Forum Страницы (32): « Первая ... « 24 25 26 27 [28] 29 30 31 32 »
Показать все 473 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Paranoia 2:Savior (https://hlfx.ru/forum/forumdisplay.php?forumid=38)
-- Полный исходный код P2:Savior 1.51, включая компиляторы и модельвьювер (https://hlfx.ru/forum/showthread.php?threadid=5552)


Отправлено Дядя Миша 22-08-2021 в 17:57:

Сделать можно, ктож спорит. Выглядеть будет некорректно.

Допустим мы задаём бленд-мод. Это значит железка смешивает пиксели за стеклом с пикселями текстуры стекла и получившееся значение мы умножаем на лайтмапу. А нам надо сперва умножить пиксели текстуры стекла на лайтмапу и потом смешать с пикселями за стеклом.
И вот этот порядок на x86 ты никак иначе не провернёшь, кроме как через копию экрана. Как бы ты не смешивал стекло с тем, что сквозь него видно, это не имеет ровным счётом никакого значения, потому что меняется порядок сложения\умножения.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 22-08-2021 в 18:22:

Эээ. Железка смешивает пиксели за стеклом с тем, что вышло из шейдера (gl_FragColor). Текстура стекла умножается на лайтмапу в шейдере, по желанию прибавляется спекуляр с модификацией альфы. Больше никуда ничего не умножается.


Отправлено Дядя Миша 22-08-2021 в 18:37:

Ну пробуй, чо.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Cybermax 22-08-2021 в 18:42:

Залил на https://gamebanana.com/games/12828 всё что касается П2, зачем не знаю, может ради того, чтобы было откуда скачать если что, может чтобы привлечь внимание народа. Там раньше был раздел про П2 https://gamebanana.com/games/5539 но его выпилили. Для описания тупо использовал гугл транслейт с ссылкой на тему форума. Полезно для привлечения модеров - написать Ксаш-Параноя-2 оружейная система руководство, о том как писать конфиги, что прописывать в qc файлах моделей.


Отправлено ncuxonaT 25-08-2021 в 16:14:

Что-то неладное в паранойе со временем. Дёргаются не только анимации у моделей, но даже искры.


Открыть видеоролик в новом окне


Отправлено SNMetamorph 25-08-2021 в 19:07:

Цитата:
ncuxonaT писал:
Что-то неладное в паранойе со временем. Дёргаются не только анимации у моделей, но даже искры.

Открыть видеоролик в новом окне

Это движковый баг, где-то в коде интерполяции там со временем беды, что бывало даже проскакивали кадры с отрицательным фреймтаймом. Погляди мои коммиты в FWGS ксаше, я это фиксил.

Добавлено 25-08-2021 в 23:07:

А ещё, там в дельте был баг с полями с типом DT_TIMEWINDOW, из-за него у энтить скакал animtime сильно и анимации были отвратные. Это тоже в FWGS пофикшено не так давно.

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено ncuxonaT 25-08-2021 в 20:02:

SNMetamorph спасибо, посмотрю.
Открыл какой-то коммит, в котором упоминается DT_TIMEWINDOW, вижу там следующие строчки:

C++ Source Code:
1
было:
2
if( pField->multiplier != 1.0f )
3
  fromF *= pField->multiplier;
4
 
5
стало:
6
if( pField->multiplier <= 0.9999f || pField->multiplier >= 1.0001f )
7
  fromF *= pField->multiplier;

Объясните, в чем смысл этого условия? Почему нельзя просто умножить?


Отправлено SNMetamorph 25-08-2021 в 20:16:

Цитата:
ncuxonaT писал:
Объясните, в чем смысл этого условия? Почему нельзя просто умножить?

Приколы с представлением вещественных чисел в компьютерах.
Если к примеру у нас изначально было в переменной записано число 10.0, и мы например его разделили на 2, а зачем умножили на 2, то если где-то далее в коде будет проверка типа "число == 10.0" то остаётся лишь гадать, сработает она или нет, поэтому чтобы таких неопределенностей не возникало, проверяют не равенство между числами, а вхождение числа в какой-то маленький числовой диапазон.

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено ncuxonaT 25-08-2021 в 20:34:

SNMetamorph это я понимаю. Я не понимаю, почему нельзя просто умножить на единицу, ничего не сравнивая.


Отправлено SNMetamorph 26-08-2021 в 06:44:

Цитата:
ncuxonaT писал:
Я не понимаю, почему нельзя просто умножить на единицу, ничего не сравнивая.

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

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено Crystallize 26-08-2021 в 07:23:

Цитата:
SNMetamorph писал:
то же самое число, но побитово переменная вполне себе может поменяться как-то

Что-то сомнительно. Биты поменялись а значение - нет?


Отправлено SNMetamorph 26-08-2021 в 07:48:

Цитата:
Crystallize писал:
Что-то сомнительно. Биты поменялись а значение - нет?

Ну в рамках игры велика разница между 1.0000001 и 1.0000000?

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено Дядя Миша 26-08-2021 в 07:51:

Crystallize https://ru.wikipedia.org/wiki/IEEE_754-2008

Добавлено 26-08-2021 в 10:51:

Цитата:
Crystallize писал:
Биты поменялись а значение - нет?

Вещественное с плавающей точкой хранит не значение, а выражение, грубо говоря. Ну чтобы тебе было понятнее, 4 * 12 = 48 и 6 * 8 = 48.

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 26-08-2021 в 11:57:

Для чего в коде П2 служит объект gGlobalState?

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено hgrunt_2020 26-08-2021 в 12:31:

Наконецто


Временная зона GMT. Текущее время 15:36. Страницы (32): « Первая ... « 24 25 26 27 [28] 29 30 31 32 »
Показать все 473 сообщений этой темы на одной странице

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