#671
14 ноября 2009 в 18:54
вот такую карту для дефрага делаю, с адаптацией к ку3берс :)<br /><br /><br /><br />Жаль только нет света от лампочек на потолке и от тумана :(
#672
25 ноября 2009 в 14:04
Ну вот, свершилось, Bers@Q3 обзавёлся VBO. ;) Основано на алгоритме XReal, с моими дополнениями.<br />Вот скриншоты, обратите внимание на FPS.<br />Железо: Athlon64 x2 5600, GF9600 GT<br />карта: tvy-bench.bsp<br />видеорежим: 1280 x 1024<br />рендер: без попикселки.<br /><br />Первая строка: Quake3 оригинал<br />Вторая: Q3Bers, без VBO<br />Третья: Q3Bers, с VBO<br /><br />Первая колонка: старт на карте<br />Вторая: у края карты, обзор всего города<br />Третья: место как на скриншоте от XReal<br /><br /><br /><br />Пока не выкладываю, шлифую шероховатости...
#673
26 ноября 2009 в 19:36
довёл VBO до ума, серьёзных багов нет, прошу потестить:<br />http://berserker.quakegate.ru/temp/Q3Bers_VBO.rar<br />остались сущие мелочи, о которых даже упоминать лень...<br /><br />Сразу предупреждаю, на мелких картах FPS может даже немного упасть, из-за специфики работы VBO.<br />Но оно даёт значительный выигрышь (до 7-10 раз) на картах с тяжёлой геометрии (сотни тысяч вершин и треугольников). FPS получется ровный, без резких проседаний.<br />Как я уже говорил, за базу взял алгоритм XReal, плюс мои улучшения:<br />- учёт отсечения зон дверями (area-portals)<br />- улучшенное кэширование VBO-кластеров: цвар r_clustercache_size задаёт размер кэша. От 4 до 256. def=32.<br /> Чем больше значение, тем больше кластеров закэшируется, но и потребует больше памяти. Попробуйте выставить 256, и если не будет проблем, оставить.<br />- в алгоритме создания кластеров (XReal) был замечен и исправлен баг: движок падает при загрузке карт без vis-data, но имеющий кластеры (пример карты q3dm17L).<br />Побочный полезный эффект от VBO:<br />- кривые Безье (curves) рисуются без LOD, следовательно избавились от артефакта "шуршание декалей на кривых плоскостях".<br />Прочие улучшения:<br />- слил lightmaps в одну большую текстуру, тем самым резко уменьшил кол-во батчей, и заметно повысил FPS даже без VBO.<br />Следовательно, потребовалась текстура бликов на экранах, в качестве которой применялись лайтмапы.<br />Она лежит тут: textures\effects\$lightmap<br /><br />Новый параметр:<br />r_deformTangents (default=1, хранимый) - пересчитывает касательные вектора если материал имеет деформации вершин. При единице - пересчёт, теоретически качество визуализации освещения и параллакса лучше, но тогда такие плоскости не попадают в VBO. Одним словом, это чуть тормознее, зато качественнее. Моё мнение, цвар можно обнулить.<br />
#674
26 ноября 2009 в 19:51
Еще момент:<br />Нагрузка перенесена с CPU на GPU, движок меньше стал зависеть от скорости CPU, системы памяти и графической шины. В моём компе 2-ядерный процессор, и по моим наблюдениям, движок без поддержки мультипроцессорности стал косвенно использовать второе ядро. Общая загруженность по сведениям диспетчера задач = 95%, одно ядро работает чисто на движок (100%), второе, загруженное примерно на 90%, обслуживает видеодрайвер. Это отличный показатель.
#675
26 ноября 2009 в 19:52
ближайшие планы:<br />- parallax decals<br />- detailed bump<br />- shadows<br />- build in game relight editor<br />- user's GLSL progs in materials (for heathaze, distorts, etc)
#677
27 ноября 2009 в 13:25
потестировал на Radeon HD4670, процессор E1500<br /><br />Сборка посвежее:<br />http://berserker.quakegate.ru/temp/Q3Bers.rar<br />(тем кто еще не скачивал, сначала установить http://berserker.quakegate.ru/temp/Q3Bers_VBO.rar)<br />- новый цвар: r_worldVBO (def=1, хранимый, vid_latch) - при нуле запрещает работу ВБО.<br />- небольшая оптимизация.
#678
28 ноября 2009 в 03:25
Выявлен очередной баг компилятора GLSL ATI :o<br />http://pic.ipicture.ru/uploads/091127/62uFYZMa5B.jpg (порча текстурных координат от texMods, на шоте см. воду)<br />замечен на HD2600 (дрова новые), cстранно, но на HD4670 всё в порядке.<br />Скачайте исправленные шейдеры и распакуйте в папку BaseQ3/glProgs/Include<br />http://berserker.quakegate.ru/temp/Include.rar<br />спасибо GT-Agressor за помощь в тестировании.
#679
28 ноября 2009 в 20:56
на 4850 подобных глюков замечено не было.
#680
05 декабря 2009 в 22:09
http://berserker.quakegate.ru/temp/Q3Bers_VBO_final.rar<br />Работа над VBO завершена.<br />В VBO кэшируются:<br />- статичные faces, triangles, curves мира<br />- статичные faces, triangles, curves браш-моделей (лифты, двери)<br />- плоскости неанимированных моделей md3 (с одним фреймом)<br />Новые cvars:<br /> r_VBO (def=1, arch, latch) - при 0 запрещает VBO для всех плоскостей.<br /> r_worldVBO (def=1, arch, latch) - при 0 запрещает VBO для карты.<br /> r_brushVBO (def=1, arch, latch) - при 0 запрещает VBO для брашМоделей.<br /> r_md3VBO (def=1, arch, latch) - при 0 запрещает VBO для md3-моделей (статичные, 1 frame).<br /> r_ignore_VboSurfaces (cheat, def=0) - запрещает рисование VBO плоскостей.<br /> r_ignore_Faces (cheat, def=0) - запрещает рисование Faces (которые не в VBO).<br /> r_ignore_Curves (cheat, def=0) - запрещает рисование Curves (которые не в VBO).<br /> r_ignore_Triangles (cheat, def=0) - запрещает рисование Triangles (которые не в VBO).<br /> r_ignore_md3 (cheat, def=0) - запрещает рисование md3 (которые не в VBO).<br /><br /> r_stitchCurves (def=1, latch) - "сшивает curves". Если карта слишком большая, имеет много кривых плоскостей и вылетает по ошибке выделения памяти, попробуйте данный параметр обнулить.<br />