HLFX.Ru Forum Страницы (23): « Первая ... « 3 4 5 6 [7] 8 9 10 11 » ... Последняя »
Показать все 334 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Paranoia 2:Savior (https://hlfx.ru/forum/forumdisplay.php?forumid=38)
-- Блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5236)


Отправлено Дядя Миша 28-05-2019 в 17:03:

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

К вопросу зачем это всё нужно, если это неосновная ветка и использоваться не будет. В основном для того чтобы вы его потестировали, привыкли и научились основным методам работы с таким освещением.

Добавлено 28-05-2019 в 16:51:

Ну чтоже. Я почти сделал всё что наметил, кое-что отменил, отложил на будущее. Скоро будет всеобщее бета-тестирование.

Добавлено 28-05-2019 в 20:03:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 28-05-2019 в 19:13:

Жалко не во ксашмоде такие ништяки.


Отправлено Ghoul [BB] 28-05-2019 в 20:12:

Цитата:
nemyax писал:
Жалко не во ксашмоде такие ништяки.


Почему бы, кстати?
Такие вещи обычно себе позволяют производители техники: у одних хороший объектив, у других матрица, третьи цвета нормально передают, у четвертых аккумуляторы живучие, пятые видео классно пишут, ну а чтобы всё сразу вместе, это не.
С точки зрения экономической потребителеориентированности это вполне понятно...
Но в условно бесплатной платформе зачем подобная диверсификация?!!
Ксаш3д, КсашНТ, Ксаш ХТ, теперь вот ещё параноя эта...
Сделайте один хороший движок, и пусть люди пользуются полным набором ништяков, зачем так-то?

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Дядя Миша 28-05-2019 в 21:19:

Хы. Для спонзы колоизация весит 50 мегабайт. Очуметь можно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 29-05-2019 в 09:09:

Цитата:
Ghoul [BB] писал:
Сделайте один хороший движок, и пусть люди пользуются полным набором ништяков, зачем так-то?

Ну вот NT и вберёт в себя вообще всё самое хорошее. Когда я его сделаю конечно. Так-то его никто не видел, ну почти никто.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 29-05-2019 в 10:11:

Цитата:
Дядя Миша писал:
Так-то его никто не видел, ну почти никто.

Я заметил, это прям неотъемлемая черта движков, которые вобрали в себя всё хорошее. С Волатилой вон та же история.

__________________

xaerox on Vivino


Отправлено Дядя Миша 29-05-2019 в 10:16:

XaeroX ну это как земля абитованная, все слышали, но никто не был.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 30-05-2019 в 07:13:

Для того чтобы сохранить коллизию в кэш, нужно очевидно построить её в локальном пространстве. Нет,ну в глобальном тоже можно конечно, но тогда на каждую модель на карте придется завести свою собственную копию и хранить эту копию применительно к карте. Я поначалу решил не усложнять и так сделал. Тут же выяснилось, что сдампленная коллизия для той же спонзы занимает почти 50 мегабайт. Я прикинул, что для всей паранои только кэш коллизии займет порядка гигабайта, т.е. сопоставимо с самой игрой и отказался от этой стрёмной затеи. Очевидно надо сохранять коллизию для нулевой позиции\углов и с еденичным скейлом, а трансформировать саму трассу, ну как это вообщем-то делается и для бсп. И тут нас подстерегает очевидная проблема - трансформировать начало и конец трассы проблемы не представляет. А вот как трансформировать ббокс в локальное пространство модели? Точнее говоря, трансформация ббокса тоже не представляет какой-то сложности, но после этой трансформации, если угол не был равен 90, выровненный по осям AABB, естественно увеличится в размерах. Меня такое положение дел не устраивало. Альтернатива - представить наш ббокс игрока в виде 8 точек, но это ведёт к усложнению трасы, тогда нам придётся проверять еще и рёбра. Фактически мы уже имеем дело с частным случаем трассы из дуум3, когда один объект трейсится другим, пусть даже в качестве второго всегда выступает ббокс. Т.е. мне пришлось бы переписывать всю трассу и меня этот вариант не устроил тоже. Тогда я подумал механизм акселерации в качестве 8 оффсетов для сигнбитов плоскости - это ведь фактически и есть наши 8 точек ббокса и я могу его развернуть в эти точки, а дальше использовать их. Логично жеж? Но я не учёл один важный момент. После того как я разверну ббокс, точки поменяют свою полярность, а стало быть изменится и порядок их расположения для выбранных сигнбитов. Как же отсортировать их правильно? На первый взгляд задача решения не имеет. Но мне пришла в голову оригинальная мысль. Для исходного ббокса мы просто меняем mins-maxs местами и набираем наши 8 оффсетов. Стало быть, мы можем инвертировать нашу трансформированную точку ббокса и скормить её функции SignbitsForNormal. Может показаться что это полная бредятина, функция ведь для нормалей, а мы ей даём на вход вертекс. Однако это будет работать и вот почему - во первых наш ббокс без смещения, он локальный даже после поворота. Во вторых он симметричный и отцентрированный. При соблюдении двух этих условий получается что каждая из 8 точек даёт уникальную комбинацию signbits и наши оффсеты сортируются именно в том порядке, в котором и требует наш код коллизии.
Приведу сам код коллизии, чтобы было понятнее о чём речь

C++ Source Code:
1
// adjust the plane distance apropriately for mins/maxs
2
float dist = p->dist - DotProduct( m_vecOffsets[p->signbits], p->normal );
3
 
4
d1 = DotProduct( m_vecStart, p->normal ) - dist;
5
d2 = DotProduct( m_vecEnd, p->normal ) - dist;

ну вы все его знаете. А вот моё оригинальное решение
C++ Source Code:
1
// compute a full bounding box
2
for( i = 0; i < 8; i++ )
3
{
4
  Vector p1, p2;
5
  p1.x = ( i & 1 ) ? lmins[0] : lmaxs[0];
6
  p1.y = ( i & 2 ) ? lmins[1] : lmaxs[1];
7
  p1.z = ( i & 4 ) ? lmins[2] : lmaxs[2];
8
 
9
  p2 = m_transform.VectorRotate( p1 );
10
// NOTE: this is looks silly but it works for some reasons:
11
  // bbox are symetric and stored in local space
12
  // signbits are detected normals for bbox side tests
13
  int j = SignbitsForPlane( -p2 );
14
  m_vecOffsets[j] = p2;
15
}

К сожалению изящность решения оказался неспособен оценить даже Ксерокс

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ghoul [BB] 30-05-2019 в 10:02:

Дядя Миша
Чисто доя справки: коллизия для моделей на карте рассчитывается по хитбоксам или по вертексам? Дело в том, что я в силу специфики своих изысканий повидал достаточно моделей, тех жп, к примеру, деревьев, где на всю модель один прямоугольный хитбокс. И в случае рассчета коллизии по хитбоксам, игрок к стволу такого дерева даже на пару метров не приблизится, а остановится "об воздух". Ну и прожектайл или пуля, соответственно, тоже.
А если же коллизия по вертексам, то нас подстерегает уже другая проблема. Те же деревья, к примеру. Где со стволом коллизия должна быть, а вот через ветки - нет. Как же оно все работает?

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Дядя Миша 30-05-2019 в 17:38:

Цитата:
Ghoul [BB] писал:
Чисто доя справки: коллизия для моделей на карте рассчитывается по хитбоксам или по вертексам?

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

Цитата:
Ghoul [BB] писал:
Где со стволом коллизия должна быть, а вот через ветки - нет

а там флажок, чтобы игрок не коллидил с ветками, это настраивается.

Добавлено 30-05-2019 в 20:38:

одной рукой рулю, а другой слёзы счастья вытираю. И смех и грех вообщем. Замутил кэширование коллизии и обратил внимание на тот факт, что быстрее - не стало. Ну то есть как. Стало, но как-то незначительно.
Я ожидал что скорость загрузки увеличится вдвое-втрое, а она снизилась с 14 секунд до 9. Несеръезно. Я подумал, может быть это загрузка DDS так много времени съедает, начал профилировать - ничего подобного. Профайлер показывает, что основное время уходит на загрузку текстур из вада. Тут уж я окончательно выпал в осадок. Ну как такое возможно? И выясняется, что когда я подключил emboss-маппинг ейный фильтр применялся к текстурам абсолютно всегда, даже когда gl_emboss_scale был равен нулю. Фильтр с нулевым фактором отжирал время и не давал видимого результата. Причём заметить это было крайне непросто, ну вот скажем при загрузке паранои на одну текстуру уходило 0.07 секунды. И вот в карте 90 текстур достаточно выского разрешения, 512х512, и вот у нас уже почти 6-7 секунд просраны впустую. А всего-то надо было сделать проверку на нулевой фактор, про которую я по запаре совершенно забыл
теперь спонза грузится 2 секунды. Но можно еще быстрее.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 30-05-2019 в 19:51:

Психопату интересно. Автор молодец за проделанную работу! BFN хорошо!
Для отложки тени только рейтрейсовые, шадовмап не будет?
Я не особо в курсе, как там работает колоизация, но разве нельзя отделить ббоксы от вертексов? И кэш вершин хранить, как рассказывалось выше, а ббоксы хранить в глобальном пространстве вместе с картой, либо рассчитывать при загрузке? Хотя если приведенный метод успешно работает, то вопросов нет.


Отправлено Дядя Миша 30-05-2019 в 20:01:

Цитата:
ncuxonaT писал:
Для отложки тени только рейтрейсовые, шадовмап не будет?

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

Цитата:
ncuxonaT писал:
Я не особо в курсе, как там работает колоизация, но разве нельзя отделить ббоксы от вертексов?

Ай ладно, я ж говорю, даже Ксер не вдуплил

Добавлено 30-05-2019 в 23:01:

ЗЫ. я там кстати еще вариант с капсулой сделал, но игрок себя ведёт как чёрт - везде без мыла пролезает, мне такое не нравится.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Lev 30-05-2019 в 20:41:

А сглаживание поддерживается?


Отправлено Дядя Миша 30-05-2019 в 21:16:

На отложке пока нет, а вообще да.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 31-05-2019 в 10:24:

Ну чтож, коллизия и TBN успешно сохранены в кэш. Скорость загрузки выросла раз в пять точно. С 10-15 секунд, до 1-2. Теперь у меня остались только декали. Эти декали меня преследуют с 16-го года, я задумал сделать поддержку декалей с альфа-каналом и всё до сих пор никак не соберусь.
Точнее говоря, их же освещать надо. Ну и код декалей на брашах надо отревизить, оно подвисло в каком-то полурабочем состоянии. Впрочем это не займет много времени, полагаю, т.к. б0льшая часть работы уже проделана. Когда декали будут готовы (1-2 дня), начнётся, товарищи самое интересное. Я начну отладку всего кода на прохождении паранои. По итогам этого тестирования и исправления ошибок, я наконец-то выложу первую публичную альфа-версию паранои 1.51, которую я вам обещаю с 2016-го года
Ну обещанного три года ждут, так что тут всё совпадает. Сколько времени займёт само тестирование я точно сказать не могу. Может и полдня, а может и на неделю растянется. Ну вроде как серъезных ошибок быть не должно.

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 14:44. Страницы (23): « Первая ... « 3 4 5 6 [7] 8 9 10 11 » ... Последняя »
Показать все 334 сообщений этой темы на одной странице

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