HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > HLBSP, VBO и типы фейсов
как-то не стыкуется
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



Half-Life HLBSP, VBO и типы фейсов

Вопрос скорей теоретический, касается скорости обработки геометрии из HLBSP с помощью использования VBO. Меня смущает, что BSP как правило содержит фейсы разного типа (GL_TRIANGLES, GL_QUADS, GL_POLYGON). Т.е. для их рендеринга одним вызовом glDrawArrays или аналогичных функций не обойтись. А с GL_POLYGON и вовсе придётся каждый фейс рендерить отдельно (как например и сделано в программе BSP View).
В связи с этим возникает сложность связать HLBSP с VBO, а точнее, не упадёт ли производительность от того, что фейсы будут рендериться не сразу все (видимые разумеется), а по одному (или небольшими группами до 10 штук)?
Может это и является причиной, что HL начинает тормозить даже с 1000 wpoly?

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

Старое сообщение 04-06-2009 18:10
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
axer писал:
не упадёт ли производительность от того, что фейсы будут рендериться не сразу все (видимые разумеется), а по одному

Разумеется, упадет, причем сильно.
Сразу все и так не получится - на них ведь разные текстуры. Ну разве что если ты используешь texture arrays...

Лучше преобразовать все типы фейсов в GL_TRIANGLES при загрузке, это в общем-то простая процедура.

Цитата:
axer писал:
Может это и является причиной, что HL больше начинает тормозить даже с 1000 wpoly?

Маловероятно. Скорее всего, HL тоже делает преобразование всего в треугольники. А тормоза - из-за расчетов на ЦПУ (по крайней мере я уже очень давно не видел видеокарту, на которой халфа тормозит при 1000 вполи).

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 04-06-2009 18:16
-
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



Цитата:
XaeroX писал:
Сразу все и так не получится - на них ведь разные текстуры. Ну разве что если ты используешь texture arrays...

Можно отсортировать фейсы по одинаковым текстурам и рендерить за относительно небольшое количество вызовов glBindTexture + glDrawArrays. Всё равно это будет быстрее, чем каждый фейс отдельно.
Цитата:
XaeroX писал:
Лучше преобразовать все типы фейсов в GL_TRIANGLES при загрузке, это в общем-то простая процедура.

А вот это уже интересно. Получается, увеличение количества полигонов засчёт разбиения на треугольники менее критично, чем описаная мной проблема?
Цитата:
XaeroX писал:
(по крайней мере я уже очень давно не видел видеокарту, на которой халфа тормозит при 1000 вполи).

Может разные представления про "тормозит". У меня 1000 wpoly - примерно 60 фпс, и мне этого мало Ну это не столь важно в данном случае...

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

Старое сообщение 04-06-2009 18:30
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
axer писал:
Можно отсортировать фейсы по одинаковым текстурам и рендерить за относительно небольшое количество вызовов glBindTexture + glDrawArrays

Да, разумеется, так все и делают
Цитата:
axer писал:
Получается, увеличение количества полигонов засчёт разбиения на треугольники менее критично, чем описаная мной проблема?

Никакого увеличения не происходит. Видеокарта ведь оперирует только с треугольниками, поэтому рисуя примитив QUAD или, не дай Бог, POLYGON, ты заставляешь драйвер выполнять триангуляцию (хотя и простую, но все же - в реальном времени).
Цитата:
axer писал:
У меня 1000 wpoly - примерно 60 фпс, и мне этого мало

Может быть, когда прикрутишь шейдеры и динамический свет, ты изменишь свое представление о низком фпс... И "мало" будет 9-10

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 04-06-2009 18:34
-
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



Цитата:
XaeroX писал:
Никакого увеличения не происходит. Видеокарта ведь оперирует только с треугольниками, поэтому рисуя примитив QUAD или, не дай Бог, POLYGON, ты заставляешь драйвер выполнять триангуляцию (хотя и простую, но все же - в реальном времени).

Спасибо, не знал. Это вобщем-то снимает проблему. Я боялся, что увеличение количества полигонов негативно скажется на производительности...
Цитата:
XaeroX писал:
Может быть, когда прикрутишь шейдеры и динамический свет, ты изменишь свое представление о низком фпс... И "мало" будет 9-10

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

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

Старое сообщение 04-06-2009 18:51
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
axer писал:
Да и динамический свет для моей видеокарты - убийство

Буду признателен, если отпишешься здесь.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 04-06-2009 18:56
-
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



Отписался

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

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

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

Рейтинг



Цитата:
У меня 1000 wpoly - примерно 60 фпс, и мне этого мало

Это в окошке 60 фпс или в полном экране?
Вообще на большинстве халфовских карт, отрисованных при помощи VBO фпс должен быть порядка 500-600.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-06-2009 06:55
-
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
Это в окошке 60 фпс или в полном экране?

В полном экране на 1024х768 разрешении.
Цитата:
Дядя Миша писал:
Вообще на большинстве халфовских карт, отрисованных при помощи VBO фпс должен быть порядка 500-600.

Ну в HL то нет VBO. А вообще я думаю так и будет

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

Старое сообщение 05-06-2009 09:42
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
axer писал:
Ну в HL то нет VBO

Почему ты так думаешь?
Халфа на самом деле юзает многие расширения, например, EXT_paletted_texture, просто не пишет ничего об этом в консоли, в отличие от квак.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 05-06-2009 10:53
-
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



XaeroX
Неужели в 98 году уже было GL_ARB_vertex_buffer_object? Тогда кажется только OpenGL 1.1 был...

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

Старое сообщение 05-06-2009 11:20
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


axer
EXT_paletted_texture тогда тоже не было, между прочим
Посмотри на дату изменения hw.dll. У меня, например, он датируется 2003 годом.

Добавлено 05-06-2009 в 18:44:

Хотя, EXT_paletted_texture возможно уже и был на каком-нибудь Voodoo3.
Ну, скажем, 3-TMU мультитекстурирования не было, а детальные текстуры работают, по ходу, именно так.

Добавлено 05-06-2009 в 18:45:

Цитата:
Дядя Миша писал:
Вообще на большинстве халфовских карт, отрисованных при помощи VBO фпс должен быть порядка 500-600.

Мы, вероятно, должны догадываться, какую видеокарту ты имеешь в виду, когда называешь конкретные цифры?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 05-06-2009 11:45
-
 Дядя Миша
racing for fish

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

Рейтинг



XaeroX то что сейчас некоторыми товарищами относится к low-end:
Radeon 9800, geForce 6600GT и им подобные, у которых отличие только в поддержке третьей модели шойдеров.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-06-2009 12:24
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Дядя Миша
Я с тобой не соглашусь. Волатила2 на радеоне Х1600 с вбо, драв_ранже_елементс и прочими оптимизациями на более или менее сложной карте (без бампа и теней, разумеется - чисто уровень хл1) выдаст не более 400 фпс. И это - без студиомоделек (которые я еще не прикрутил )

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 05-06-2009 12:49
-
 Дядя Миша
racing for fish

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

Рейтинг



XaeroX без моделек, совершенно верно.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-06-2009 16:57
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 18:30. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > HLBSP, VBO и типы фейсов
как-то не стыкуется
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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