HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > PrimeXT - логическое продолжение XashXT
Будет ли полезен этот форк?
(публичный опрос)
Вам не разрешено голосовать в этом опросе.
да
***FantoM*** a1batross Accorsi Alexander Pafos avegamer Aynekko blsha Casperx69x Cep}I{ Chyvachok Crystallize Dako.Dromkov Dneyrin Flash gagasha islan KorteZZ Lev nekonomicon nemyax Next Day SNMetamorph thambs The Sam xrcore_cpu Дядя Миша
25 69.44%
нет
AntiPlayer Cybermax FiEctro Ghoul [BB] Government-Man marikcool NameLesS qpAHToMAS XaeroX XF-Alien [CFR] B@N@N
11 30.56%
Всего: 36 голосов 100%
  [Редактировать опрос (только для модераторов)]

Страницы (37): « Первая ... « 12 13 14 15 [16] 17 18 19 20 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 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: Записан
Сообщение: 200601

Старое сообщение 15-03-2021 17:38
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4420
Возраст: 34

Рейтинг



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

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

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

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 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: Записан
Сообщение: 200603

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

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

Рейтинг



Цитата:
SNMetamorph писал:
Это всё есть, но не вижу смысла в данный момент выкладывать т.к. я еще не закончил дела с батчингом. Когда закончу, стопочкой уже всё выложу и распишу.

В общем-то там немного совсем осталось, остается доделать только bindless textures и отключение обхода дерева. И можно будет переносить графоний и материалы из П2.

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

Отредактировано SNMetamorph 15-03-2021 в 18:59

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

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

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

Рейтинг



За вчера запилил статик энтити и их батчинг, прикрутил более расширенную статистику в r_speeds и пофиксил несколько багов.

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

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

Старое сообщение 18-03-2021 07:21
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2088

Рейтинг



Цитата:
SNMetamorph писал:
оно КАЖДУЮ букву рендерит через glBegin/glEnd

Зачем каждую? множественные квады спокойно рисуются внутри одного glBegin/glEnd, вот у меня в движке например метод рисования текста

C++ Source Code:
1
public void onDraw() {
2
  if (text == null) return;
3
  if (text.length() <= 0) return;
4
 
5
  float tmp_x = x - 1;
6
  float tmp_y = y - font.ascent;
7
 
8
  GL11.glBindTexture(GL11.GL_TEXTURE_2D, font.getFontTexture().id);
9
  GL11.glColor4f(color.r, color.g, color.b, color.a);
10
 
11
  GL11.glBegin(GL11.GL_QUADS);
12
  {
13
    for (char c : text.toCharArray()) {
14
      float w = font.charWidth(c);
15
      float h = font.getHeight();
16
 
17
      float u = 1.0F / font.getFontTexture().width * font.getCharX(c);
18
      float v = 0f;
19
      float u2 = u + 1.0F / font.getFontTexture().width * w;
20
      float v2 = 1f;
21
 
22
      GL11.glTexCoord2f(u, v);
23
      GL11.glVertex2f(tmp_x, tmp_y);
24
 
25
      GL11.glTexCoord2f(u2, v);
26
      GL11.glVertex2f(tmp_x + w, tmp_y);
27
 
28
      GL11.glTexCoord2f(u2, v2);
29
      GL11.glVertex2f(tmp_x + w, tmp_y + h);
30
 
31
      GL11.glTexCoord2f(u, v2);
32
      GL11.glVertex2f(tmp_x, tmp_y + h);
33
 
34
      tmp_x += w;
35
    }
36
  }
37
  GL11.glEnd();
38
 
39
  GL11.glColor4f(1f, 1f, 1f, 1f);
40
  GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
41
}


Надо бы мне атласы шрифтов замутить для ускорения

Добавлено 19-03-2021 в 18:46:

Кстати, пробовал переводить на glDrawArrays, никакого прироста не получил

__________________
-Brain is dead-

Отредактировано KiQ 19-03-2021 в 15:44

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

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

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

Рейтинг



Цитата:
KiQ писал:
множественные квады спокойно рисуются внутри одного glBegin/glEnd

ну да, я про это и говорил.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 19-03-2021 15:54
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



KiQ может, там рендер текста сделан на дисплейных списках по старому туториалу NeHe. На каждую букву свой glBegin/glEnd и сдвиг курсора через glTranslatef.

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

Старое сообщение 19-03-2021 16:50
- За что?
SNMetamorph
Житель форума

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

Рейтинг



Цитата:
Дядя Миша писал:
Хы. Mod_ResortFaces должен вызываться каждый кадр. Там недоделато.

А почему каждый кадр? Как оно по идее должно было работать?

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

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

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

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

Рейтинг



SNMetamorph оно ловит изменения кваров. Но сортировка выполняется 1 раз после смены квара.

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Цитата:
Дядя Миша писал:
SNMetamorph оно ловит изменения кваров. Но сортировка выполняется 1 раз после смены квара.

Ага, сегодня вот увидел и пофиксил. Там еще была такая проблема что tr.params_changed не обнулялся в R_ClearScene и в итоге сортировка каждый кадр выполнялась, но теперь в функции R_ClearScene если tr.params_changed трушный, то снова происходит сортировка. Вроде бы нормально работает.

Добавлено 08-04-2021 в 22:59:

Еще один фактор всплыл, который влияет на производительность рендеринга: на 74 отрисовки энтить приходится ~280 переключений шейдера, что конечно дофига. Я вручную проверил, что же там так чередуется, в итоге выяснилось что там есть 3 разных шейдера BmodelSolid, один без лайтстилей, второй с лайтстилем 0, и третий с лайтстилями 0 и 1.
Может быть как-то можно сделать чтоб шейдер был либо без лайтстилей, либо со всеми лайтстилями? А то в текущей реализации немало лишних переключений происходит.

Добавлено 08-04-2021 в 23:00:

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

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

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

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

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

Рейтинг



Цитата:
SNMetamorph писал:
Может быть как-то можно сделать чтоб шейдер был либо без лайтстилей, либо со всеми лайтстилями?

Попробуй, но так ИМХО еще тормознее. У тебя сортировка неправильная, не должно быть столько переключений.

Цитата:
SNMetamorph писал:
Вообще по мере того как я что-то допиливаю, еще и новая информация раскрывается и снова приходится что-то допиливать

Я сумел вовремя остановиться, да.

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Цитата:
Дядя Миша писал:
У тебя сортировка неправильная, не должно быть столько переключений.

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

Добавлено 08-04-2021 в 23:06:

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

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

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

Добавлено 08-04-2021 в 23:11:

Цитата:
SNMetamorph писал:
А у непрозрачных каждая энтити рендерится отдельно, сбатчить их не получается из-за того что у каждой своя матрица трансформации.

А что если все матрицы засунуть в uniform buffer object

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

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

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

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

Рейтинг



Цитата:
SNMetamorph писал:
А у непрозрачных каждая энтити рендерится отдельно

Ты походу не понял. Зачем переключать шейдер при смене энтити?
Вот у тебя 100 энтить и на всех нулевой лайтстиль. Ты что шйдер каждый раз обнуляешь и ставишь заново?

Или ты хочешь сказать, что у каждой энтити используются по нескольку шейдеров?

Цитата:
SNMetamorph писал:
А вообще, конкретно мир сейчас довольно шустро рендерится

сколько полигонов в кадре, сколько FPS, какая видеокарта.

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Цитата:
Дядя Миша писал:

Ты походу не понял. Зачем переключать шейдер при смене энтити?
Вот у тебя 100 энтить и на всех нулевой лайтстиль. Ты что шйдер каждый раз обнуляешь и ставишь заново?

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

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

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



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


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

Временная зона GMT. Текущее время 14:36. Новая тема    Ответить
Страницы (37): « Первая ... « 12 13 14 15 [16] 17 18 19 20 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > PrimeXT - логическое продолжение XashXT
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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