HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Paranoia 2:Savior > Полный исходный код P2:Savior 1.51, включая компиляторы и модельвьювер
Вопросы и комментарии оставляйте здесь
Страницы (32): « Первая ... « 25 26 27 28 [29] 30 31 32 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Для того же, для чего и в Халфе - сохранять информацию между уровнями.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 203566

Старое сообщение 26-08-2021 12:48
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



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

Согласно стандарту, одно и то же число всегда будет записано одинаково.

"Некоторые числа могут иметь несколько представлений в формате, в котором они были только что описаны. Например, если b = 10 и р = 7, то число −12,345 может быть представлено как: −12345 × 10−3, −123450 × 10−4 или −1234500 × 10−5.

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

Для бинарных форматов представление делается уникальным путём выбора наименьшего представляемого показателя. Для чисел с показателем в нормальном диапазоне (не все из них или все нули), ведущий бит мантиссы всегда будет равен 1. Следовательно, ведущий 1 бит может подразумеваться, а не сохраняться явно в памяти. Это правило называется ведущей битной конвенцией или скрытой битной конвенцией. Правило позволяет сберечь 1 бит памяти, чтобы иметь ещё один бит точности. Ведущий бит конвенции не используется для субнормальных чисел; их показатель находится за пределами нормального диапазона значений. "

Сообщить модератору | | IP: Записан
Сообщение: 203567

Старое сообщение 26-08-2021 13:46
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Цитата:
Дядя Миша писал:
Для того же, для чего и в Халфе - сохранять информацию между уровнями.

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

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 203570

Старое сообщение 26-08-2021 15:46
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 203571

Старое сообщение 26-08-2021 18:05
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Это вероятно тот самый гейзенбаг, о котором так долго твердили большевики. Вылет в движке, как-то связан с логом.
Условия появления:
1. Только на P2
2. Только в режиме -dev (без -dev или в режиме -dev 2 не проявляется).
Возникает на самом начальном этапе инициализации.
Я так и не понял, что это такое, и откуда взялось, но это точно связано с ведением лога.

Поймал вылет на ванильной паранойе, запускал с параметрами -console -log +sv_cheats 1 -dev 7

code:
================================================================================= Xash3D 0.99 (build 4511) started at Aug26 2021 [21:22.42] ================================================================================= Console initialized. Mem_Free: not allocated or double freed (free at D:\Xash3D\src_main\engine\common\filesystem.c:1261)

Сообщить модератору | | IP: Записан
Сообщение: 203573

Старое сообщение 26-08-2021 18:25
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Зачем в шейдерах в texfetch.h в функции normalmap2D инвертируется Y-координата нормали?

Cg Pixel Shader:
N.y = -N.y; // !!!
N = normalize( N );


Добавлено 27-08-2021 в 21:37:

Цитата:
SNMetamorph писал:
Зачем в шейдерах в texfetch.h в функции normalmap2D инвертируется Y-координата нормали?
Cg Pixel Shader:
N.y = -N.y; // !!!
N = normalize( N );

Ага. Без этой инверсии нормалка начинает выглядеть неправильно.
Также, параллакс маппинг не заработал нормально, пока я в viewDir векторе не инвертировал Y координату. Это уже получается какая-то проблема типа SQB, только с TBN в шейдерах. Получается, TBN как-то не совсем правильно строится?

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 203593

Старое сообщение 27-08-2021 17:37
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
SNMetamorph писал:
Получается, TBN как-то не совсем правильно строится?



Из hlrad->lightmap.cpp:3773
C++ Source Code:
VectorNegate( directionnormals[1], directionnormals[1] );

Это еще с даркплейса тянется. Для паранои первую версию компиляторов делал китаец (Кастомный VHLT). Я предложил ему взять имплементацию делюкс-маппинга из Darkplaces. Просто, чтобы иметь возможность контролировать контент под сторонним движком (и кстати я этим активно пользовался на начальных этапах). А там тангента инвертирована почему-то была. Ну вот и пришлось так всё оставить.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 203594

Старое сообщение 27-08-2021 17:58
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



SNMetamorph потому что в паранойе нормалмапы были вразнобой, половина в директикс спейсе, половина в опенгл спейсе.
https://hsto.org/webt/vt/f_/bo/vtf_botw_8tazlodtepbgp0zyvk.png
Инвертирование было попыткой сделать так, чтобы большая часть нормалмап выглядела правильно.
Плюс у моделей неправильно строится TBN в случае отзеркаленной развертки.
Вроде я это исправил, в gl_studio_init.cpp строчки 1524 и далее:

C++ Source Code:
1
if( !smooth_tbn )
2
{
3
  Vector tmpVect = CrossProduct( sVect, tVect );
4
  bool leftHanded = DotProduct( tmpVect, normal ) < 0.0f;
5
 
6
  if( !leftHanded )
7
  {
8
    tVect = CrossProduct( normal, sVect );
9
    sVect = CrossProduct( tVect, normal );
10
  }
11
  else
12
  {
13
    tVect = CrossProduct( sVect, normal );
14
    //sVect = CrossProduct( normal, tVect );
15
    //nc fix?
16
    sVect = CrossProduct( tVect, normal );
17
  }
18
}


И для нормалмап в опенгл спейсе инвертирование игрека не нужно, если что.

Отредактировано ncuxonaT 27-08-2021 в 18:17

Сообщить модератору | | IP: Записан
Сообщение: 203595

Старое сообщение 27-08-2021 18:15
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



ncuxonaT Элбер текстуры брал с разных игр. Во всех этих играх совпадает стандарт? Или тоже вразнобой?

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 203596

Старое сообщение 27-08-2021 18:18
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Цитата:
ncuxonaT писал:
SNMetamorph потому что в паранойе нормалмапы были вразнобой, половина в директикс спейсе, половина в опенгл спейсе.
https://hsto.org/webt/vt/f_/bo/vtf_botw_8tazlodtepbgp0zyvk.png
Инвертирование было попыткой сделать так, чтобы большая часть нормалмап выглядела правильно.
Плюс у моделей неправильно строится TBN в случае отзеркаленной развертки.
Вроде я это исправил, в gl_studio_init.cpp строчки 1524 и далее:
C++ Source Code:
1
if( !smooth_tbn )
2
{
3
  Vector tmpVect = CrossProduct( sVect, tVect );
4
  bool leftHanded = DotProduct( tmpVect, normal ) < 0.0f;
5
 
6
  if( !leftHanded )
7
  {
8
    tVect = CrossProduct( normal, sVect );
9
    sVect = CrossProduct( tVect, normal );
10
  }
11
  else
12
  {
13
    tVect = CrossProduct( sVect, normal );
14
    //sVect = CrossProduct( normal, tVect );
15
    //nc fix?
16
    sVect = CrossProduct( tVect, normal );
17
  }
18
}


И для нормалмап в опенгл спейсе инвертирование игрека не нужно, если что.

Вроде понял, а вроде и нет. Ведь в случае с параллаксом я вообще нормалмапы не юзаю, а для корректного результата делать инвертирование все же приходится. Т.е. что-то не так с TBN внутри шейдера. Я думаю, нужно что-то в самом TBN поменять, чтоб не приходилось везде ставить инверсии.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 203597

Старое сообщение 27-08-2021 18:26
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Дядя Миша Элбер большую часть нормалмап генерировал сам из диффуза каким-то суперуродским способом, что всё покрывалось мерзким шумом. А из тех игр, откуда он брал, только в параграфе 78 нормали вразнобой, в остальных вроде бы всё прилично.

SNMetamorph на мировых полигонах TBN тоже как-то не так считается при отзеркаленной развертке, возможно, параллакс к этому чувствителен. Можешь сделать карту с двумя стенами, чтобы на одной текстура была слева направо, а на другой справа налево? Параллакс на обеих будет одинаково работать, или на одной чудить?

Сообщить модератору | | IP: Записан
Сообщение: 203598

Старое сообщение 27-08-2021 19:05
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Разница в освещении будет заметна, естественно. Но на рельеф нормалмапа не влияет.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 203599

Старое сообщение 27-08-2021 19:13
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Цитата:
ncuxonaT писал:
Параллакс на обеих будет одинаково работать, или на одной чудить?

Ну работает хорошо на обоих.

Добавлено 27-08-2021 в 23:57:

А вот нормали видно что по-разному отображаются.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 203600

Старое сообщение 27-08-2021 19:57
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Хм, будем думать.

Сообщить модератору | | IP: Записан
Сообщение: 203602

Старое сообщение 27-08-2021 20:22
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



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

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 203605

Старое сообщение 28-08-2021 06:49
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 11:55. Новая тема    Ответить
Страницы (32): « Первая ... « 25 26 27 28 [29] 30 31 32 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Paranoia 2:Savior > Полный исходный код P2:Savior 1.51, включая компиляторы и модельвьювер
Вопросы и комментарии оставляйте здесь
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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