Sidebar

NEWBSPGUY

Статус
Закрита.
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Пробежался по этому файлу. У тебя код нанесения декали хотя и недоделан, но уже неправильный. Декаль не выбирает "лучший" полигон, она мажет собой всё, до чего дотягувается.
Регенерацию порталов можешь дёрнуть из Drakplaces: http://icculus.org/twilight/darkplaces/download.html
Только там чорт ногу сломает уже, тебе надо найти ихний компилятор уровней и вот там будет код регенерации порталов. Но повторюсь, с халфой это нормально не работает, потому что китайские детайлы и прочие заморочки. Не факт что получится реконструировать прямо 1 в 1.

И можешь взять рендерер клипнодов из Ксаша, я его сам дёрнул из Fitzquake чтоли. Ну он хороший, грамотный и быстро работает.
Post automatically merged:

то там ведь просто физически никак не может стать 0
А если на карте нет освещения?
 

karaul0v

Active member
06.05.10
350
А если на карте нет освещения?
но там же сначала проверяет == 1 или == 3, если бы проверки не было то понятно :)

Я сразу не понял думал это какой-то хитрый ход :) Но щас почти уверен что там что-то лишнее))
Post automatically merged:

Код:
if( samples == 1 || samples == 3 )
{
    bmod->lightmap_samples = (int)samples; // тут может быть или 1.0 или 3.0 ( samples == 1 || samples == 3 )
    Con_Reportf( "lighting: %s\n", (bmod->lightmap_samples == 1) ? "monochrome" : "colored" );
    // для чего следующий код ??
    bmod->lightmap_samples = Q_max( bmod->lightmap_samples, 1 ); // avoid division by zero
}
Post automatically merged:

130305


На sponza карте какие-то модельки тяжелые или у ксаша все такие?) эти красные коврики и травка до 8 фпс садят если анимация включена :)
Post automatically merged:

Пробежался по этому файлу. У тебя код нанесения декали хотя и недоделан, но уже неправильный. Декаль не выбирает "лучший" полигон, она мажет собой всё, до чего дотягувается.
Ну по этому я и не доделал, т.к понял что что-то не то :)
Post automatically merged:

Добавил проверку на наличие палитры в встроенных текстурах и стандартную палитру quake: https://github.com/UnrealKaraulov/newbspguy/commit/a25cb157b62d8ac8d45f9fb28a86c24cf2e22538
и пофиксил детект цветности карты освещения
Теперь quake карты стали хотя бы нормально выглядеть :)

Post automatically merged:

А если на карте нет освещения?
Кстати оказывается все может быть, а почему это происходит хз)))

вот из дебаггера скрины два

130306

130307


А почему оно 0.95 округляет в 0 , не понимаю :(
Post automatically merged:

Аахахах честное слово для меня это открытие было

 
Останнє редагування модератором:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
у ксаша все такие
ну да.
А почему оно 0.95 округляет в 0 , не понимаю
Потому что приведение дробного к целому всегда округляется вниз. Это азы.
Post automatically merged:

до 8 фпс садят если анимация включена :)
Ну сделай ты уже нормальный рендерер без обновления геометрии.
 
  • Wow
Reactions: karaul0v

karaul0v

Active member
06.05.10
350
wicked.bsp на этой карте BSPGUY виснет грузит по 20к клипнодов, у всех моделей 4-ого хулла(если от 1 считать), и успешно съедает всю память:(

причем количество у каждой модели одинаковое, защита от bspguy что-ли)))
Post automatically merged:

Потому что приведение дробного к целому всегда округляется вниз. Это азы.
могли бы и предупредить во время компиляции в консоль варн хотя бы какой а то ничего нету:) я никаких книг и курсов по программированию не проходил :) ничего кроме Гугла :)
Post automatically merged:

Ну сделай ты уже нормальный рендерер без обновления геометрии.
что б это так просто было :(

Я целый день потратил что бы заставить работать тот что нашел :)
Post automatically merged:

единственное что сделал это объединил модели в одну, ну загружает теперь по одной, а не кучей, и вроде как фас поднялся
 
Останнє редагування модератором:

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
Вот читаю я Вашу, высокоителектуальную переписку, и понимаю, что ничего путнего из всего этого старания не выйдет. Понимаю, что звучит довольно сурово.
Что, на мой взгляд, должно было получиться (для движка ГС): программа должна была объединить возможности BSPviewer, в части отображения bsp-геометрии, и bspedit, в части возможности редактирования параметров энтитей и сохранинеи файла карты.
Что имеем на сегодняшний момент: программу, которая:
- не умеет отображать спрайты точечных энтитей, параметры умеет, но довольно кривовато реализованные в интерфейсе программы;
- не умеет отображать модели, пусть и без освещенинмя (что не так уж важно для пользователя, который хочет поправить ряд параметров и сохранить файл карты), ведь релайт карты это уже работа над картой;
- не работает ниже Win7, что, полагаю, зависит от программы (тулсов), которую используют для работы над кодом программы, в итоге отсекается часть возможной (в будущем) аудиториии пользователей программы - на мой взгляд, это очень большой минус;
- ковыряния с удобоваримостью нескольких типов (вариаций) карт - не более чем рассуждения о вкусе бананов, которые мало кто попробует.
Да, еще раз повторюсь: возможно все, что написал выглядит довольно сурово.
Но, дорогие друзья, предлагаю задуматься над путем, которым идет разработка программы. Пока путь, как мне думается, идет в никуда. Да, форматов, которые "кушает" программа становится больше, благодаря подробностям, которые сообщает Дядя Миша.
Но может стоит вернуться к истокам? Смотри пункт 1 списка выше.
Чего не хватало BSPviewer - графического отображения точечных энтитей, поиск которых мог занять конкретное время пользователя. Все остальное, включая просмотр карты с текстурами, увы, внедренными (а подключение других файлов с текстурами фактически не реализовано, в отличии от более раннизх версий BSPviewer), и освещением было реализовано на довольно неплохом уровне. Да, просмотра виз-лифов очень не хватало. То, что мог предложить компилятор, сложно было назвать внятным отображение лифов карты.
Чего не хвататало BSPedit - графического отображения энтитей вообще.
Что имеем в текущей версии программы:
- загрузка геометриии карты - есть, параметры отображения карты (разбиение текстур, освещение, виз-лифы) пока реализовано весьма, на мой взгляд, коряво, через параметры программы, а не просто через настройки интерфейса, что более понятно пользователю, как в BSPviewer;
- отображение точечных энтитей - да, кубики есть. Но! Интерефейс Хаммера может быть намного информативнее через фгд-файл. А ведь программа умеет читать фгд-файлы, правда пока только в части настроек энтитей;
- даже неплохо быдо бы добавить отображение типа выделенной энтити в нижней строке программы (лля начала);
- перемещение точечных энтитей пока не блещет понятностью.
Пока такие впечатления от программы.
Может стоит как-то по блокам разбить программу (ее работу), возможно реально увеличить количество кусков, по которым можно будет разбить ход работы программы, или даже через плагины.
 
  • Haha
Reactions: karaul0v
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
я никаких книг и курсов по программированию не проходил
Да какая разница. Спервоначалу в голове всё равно ничего не держится, а вот на практике столкнулся - теперь наверняка запомнишь. Это самое надёжное.

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

на этой карте BSPGUY виснет грузит по 20к клипнодов
Ну я серъезно, затесть визуализатор клипнодов, встроенный в сам ксаш. r_showhull 1/2/3 и посмотри сколько ему надо времени для построения геометрии. mod_dbghulls.c если что.
Post automatically merged:

Впрочем я кажется догадываюсь в чём дело. Ты там используешь динамические массивы, а уменя двухсвязные списки, из которых удаление происходит практически мгновенно. Видимо поэтому скорость работы так сильно отличается.
 
Останнє редагування:

karaul0v

Active member
06.05.10
350
Ну я серъезно, затесть визуализатор клипнодов, встроенный в сам ксаш. r_showhull 1/2/3 и посмотри сколько ему надо времени для построения геометрии. mod_dbghulls.c если что.
Да я верю :)

BSPGUY загружает 11 гигабайт памяти оперативной что бы отрендерить клипноды в карте wicked.bsp :)

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

Итого клипноды стали еще в раз 100 быстрее загружаться :) правда теперь 11гб памяти забивает буквально за пару секунд, а до этого грузилось минуты 3 карта wicked.bsp

Post automatically merged:

@Дядя Миша , вот на этой https://www.quaddicted.com/reviews/something_wicked.html карте проверял :) Самая проблемная , но хоть уже загружается нормально :)
 
Останнє редагування модератором:

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
BSPGUY загружает 11 гигабайт памяти оперативной что бы отрендерить клипноды в карте wicked.bsp
Друзья, Вам не кажется это удивительным? 11 гигабайт памяти только, чтобы отобразить карту - может что-то здесь не правильно?
пы.сы. еще раз повторю, как я понял, необходимость разработки данной программы:
- отображение геометрии карты, включая спрайты для точечных энтитей за исключением энтитей, для которых возможно отображение моделей, а так же отображение крты различных режимах (клип-ноды, лифы, текстуры, просто браши, освещенность);
- чтение параметров из фгд-файла, включая отображение моделей или спрайтов для точечных энтитей;
- возможность редактирования параметров энтитей, включая добавление новых точечных энтитей;
- возможность включения некоторых новых брашевых энтитей (что представляется довольно странным);
- сохранение файла карты;
- работа программы на ВинХП (довольно неплохую и стабильную версию Вин, несмотря на потуги всего сообщесмтва прогроммописателей перетащить всех и вся на более старшие версии ОС) и выше .
Все остальное пока, на мой взгляд, носит факультативный характер.
Если я не прав, то разработка программы абсолютно мне, смею предположить и части возможных пользователей, уж извините за наглость, не интересна. Желаю Удачи!
 
Останнє редагування:
  • Like
Reactions: karaul0v

karaul0v

Active member
06.05.10
350
Вот читаю я Вашу, высокоителектуальную переписку, и понимаю, что ничего путнего из всего этого старания не выйдет. Понимаю, что звучит довольно сурово.
Я как-то не могу воспринимать кучу текста скомканную одну кучу :) Мнение каждого человека очень важно :)
Уже который раз читаю но смысла не могу уловить, если что я только можно сказать начал работу над программой, многое еще не реализовано.

Если есть какие-то предложения можно разместить на GitHub и я буду по мере возможности добавлять это в программу, тут сообщение я скорее всего забуду сразу :)
Только пожалуйста не надо все в одном предложении писать, реально плохо воспринимается текст :)

Друзья, Вам не кажется это удивительным? 11 гигабайт памяти только, чтобы отобразить карту - может что-то здесь не правильно?
Да карта проблемная, там дублируются клипноды как-то очень странно сделано все, конкретно эта карта загружает всю оперативку :) Пытаюсь решить проблему :)
Post automatically merged:

Может стоит как-то по блокам разбить программу (ее работу), возможно реально увеличить количество кусков, по которым можно будет разбить ход работы программы, или даже через плагины.

Если интересуют преимущество над другими программами, чего только стоит экспорт любой брашевой модели из карты с сохранением коллизии, я думаю никто никогда не использовал BSP модели в картах, хотя это помогло бы обойти любые лимиты движка, то есть надо в 10 раз превысить клипноды? Разбил карту на 10 func_wall (ну я к примеру) открыл в bspguy, выделил, сделал экспорт. Потом удалил модели из карты, и можно втащить обратно их, уже ввиде пути к файлу. Движок должен будет схавать это без проблем :)

Полноценный экспорт в .obj (правда не знаю с чем сравнивать) , все текстуры сохраняет, фейсы в правильном направлении сохраняет, разбивает на сущности брашевые.

Можно экспортировать карту освещения целиком или частично для выбранных фейсов, отредактировать и импортировать назад, так же можно прямо в программе редактировать карту освещения если нужно по мелочам подправить. (ну как положено, выбрал там фейс, выбрал стиль и можно рисовать в окне программы, или же сохранить в png и потом загрузить)
130309

Не знаю я не маппер по этому я не могу сказать как программа может помочь им :) Карты пару штук делал лет 12 назад, но наверное все кто их видел уже повыкалывали себе глаза :)
 
Останнє редагування модератором:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Пока путь, как мне думается, идет в никуда.
Мой интерес в том, чтобы подружить BSPEdit с Ксашевскими форматами, т.к. это будет полезно всем.
Поскольку я сам не могу вмешиваться, я помогаю разными советами.
 

karaul0v

Active member
06.05.10
350
Обновил еще рендер клипнодов, точнее улучшил кэширование, теперь на той карте где 11гб жрало, 900мб всего использует :) В общем не рисует повторно, не загружает повторно, теперь достаточно быстро загружаются клипноды.
Post automatically merged:

@Дядя Миша ну вот, последняя версия загружает клипноды на sponza.bsp , за 2-3 секунды.
Слишком много повторяющихся действий было в оригинале.
Post automatically merged:

А теперь понял почему на той карте жрало 11гб, потому что случайно поменял местами BSPLEAF 2BSP и BSP2 :)
Post automatically merged:

@Дядя Миша кстати а почему никто не использует .BSP модели, если они как .MDL поддерживаются движком почему никто нигде их не использует :( ну в модах вижу есть немного, в том же Arcane Dimensions :) но что-то редко об этих моделях вспоминают :)

Я как-то плагин сделал для AMXX и префабов наделал, по этим моделям можно ходить, и стрелять

ну или так всякой фигни можно вставить в игру

Post automatically merged:

130308


Загрузил оттуда какую-то карту, 80мб :) клипноды грузились секунд 20 точно) и всего 30 фпс :D
 
Останнє редагування модератором:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
900мб всего использует
Всё равно дохрена чёт.

кстати а почему никто не использует .BSP модели, если они как .MDL поддерживаются движком почему никто нигде их не использует
Видимо всё дело в традициях. В халфе это не было принято и среди моддеров тоже не прижилось. В кваке - наоборот. Хотя я в ксаше даже кое-какие улучшения в этом плане сделал, например разрешил использовать коллизию от таких внешних BSP-моделей. Но всё равно - игнор.
Post automatically merged:

ЗЫ. Ты текстуры-то кваки загрузил? В принципе почти все возникающие вопросы такого рода можно решить, просто ковыряя ксаш, там как правило уже есть ответ.
 

karaul0v

Active member
06.05.10
350
Всё равно дохрена чёт.


Видимо всё дело в традициях. В халфе это не было принято и среди моддеров тоже не прижилось. В кваке - наоборот. Хотя я в ксаше даже кое-какие улучшения в этом плане сделал, например разрешил использовать коллизию от таких внешних BSP-моделей. Но всё равно - игнор.
Post automatically merged:

ЗЫ. Ты текстуры-то кваки загрузил? В принципе почти все возникающие вопросы такого рода можно решить, просто ковыряя ксаш, там как правило уже есть ответ.
так в bspguy и так, экпортируется с коллизией , на видео видно что можно ходить и стрелять (нету prediction error)

Просто думаю зачем придумывать как обходить лимиты, если все под рукой было, ну всмысле можно разделить карту на несколько BSP моделей, и считать никаких лимитов нет.... :) Ну я конкретно про те форматы где увеличивали клипноды и тп теряя совместимость. Понятно что в XASH там добавлены новые lump'ы и т.п
Post automatically merged:

В bspguy эти .bsp модели автоматически подгружаются и ставятся на свое место в карте.

А вообще хоть один редактор карт (Valve Hammer/JACK/..) поддерживает BSP модели ?
 
Останнє редагування модератором:

Blackcock

Active member
19.02.22
140
35
А вообще хоть один редактор карт (Valve Hammer/JACK/..) поддерживает BSP модели ?
Проверил в Джеке, bsp модель не отображает, сделал даже, как в bspguy, создал func_wall и привязал к нему модель bsp - тоже нет эффекта. Может, в fgd настраивается отображение bsp моделей отдельно, хз...
 

karaul0v

Active member
06.05.10
350
Исправил ошибку в функции изменения размера карты освещения, из-за нее при перемещении моделей (когда origin остается на месте, а двигается сама геометрия) ломалась карта слегка, а так же все экспортируемые модели были или черными, или усыпаны рандомными пикселями :)

Добавил функцию "камера на первой сущности" ищет info_player_start/deathmatch/trigger_camera и перемещает камеру туда при открытии карты.

Так же еще пару исправлений внес по мелочам, добавил кнопку "показать сущность" в Entity Report (перемещает список к выбранной сущности) и т.п
Post automatically merged:

Пофиксил проблему исчезающих клипнодов после выделения объекта.
Post automatically merged:

исправил сохранение устаревшего BSP2 формата
Post automatically merged:

Может ещё какие-нибудь предложения будут, пишите
Post automatically merged:

Добавил кнопку закрыть выбранную карту, и сохранение положения и направления камеры при переключении между картами
Post automatically merged:


Ты текстуры-то кваки загрузил?
Да все норм только внешнюю палитру загрузку не сделал, какие-то карты все немного темные, или это стиль у игры такой, или в кваке надо больше яркость делать ?

Код проверки наличия палитры в текстуре(перебирает все текстуры, что бы исключить случаи когда оффсеты перепутаны местами):
(но наверное забыл про WAD текстуры, они тоже без палитры бывают?)
C++:
bool Bsp::is_texture_with_pal(int textureid)
{
    if (textureid < 0 || textureid >= textureCount)
        return false;

    int iStartOffset = ((int*)textures)[textureid + 1];
    unsigned char* pStartOffset = (unsigned char*)textures + iStartOffset;
    unsigned char* pEndOffset = (unsigned char*)textures + textureDataLength;

    if (iStartOffset >= 0)
    {
        for (int i = 0; i < textureCount; i++)
        {
            int iCurOffset = ((int*)textures)[i + 1];
            if (iCurOffset < 0 || i == textureid || iCurOffset == iStartOffset)
            {
                continue;
            }

            unsigned char* pCurOffset = (unsigned char*)textures + iCurOffset;

            if (pCurOffset < pEndOffset && pCurOffset > pStartOffset)
            {
                pEndOffset = pCurOffset;
            }
        }

        BSPMIPTEX* tex = ((BSPMIPTEX*)(textures + iStartOffset));
        int lastMipSize = (tex->nWidth / 8) * (tex->nHeight / 8);
        int palOffset = tex->nOffsets[3] + lastMipSize + 2;

        //logf("{}-{}={}\n", (void*)(pStartOffset + palOffset), (void*)(pEndOffset), (int)((pStartOffset + palOffset) - pEndOffset));
        if (abs((pStartOffset + palOffset) - pEndOffset) == 768 + 2)
        {
            return true;
        }
    }

    return false;
}
 
Останнє редагування модератором:

karaul0v

Active member
06.05.10
350
@Дядя Миша а текстурах, в WAD и в встроенных, последний short (или 2 short?) это размер палитры? смотрю компиляторы это значение используют, а в игре они не используются?
 

karaul0v

Active member
06.05.10
350
Там всегда 256 записано, ЕМНИП.
А я не знал :) В bspguy туда рандомные байты (если нет memset) пишет.

Исправил :)

А в конце (не перед, а после палитры) 2 байта тоже для чего-то используются?
Post automatically merged:

Добавил экспорт ".wa_" и ".ext" файлов, необходимых для повторного запуска RAD.exe
Post automatically merged:

Работает как-то вот так :
 
Останнє редагування модератором:
  • Like
Reactions: Qwertyus
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
А в конце (не перед, а после палитры) 2 байта тоже для чего-то используются?
Выравнивание по 4. Очень критичная штука. Некоторые программы получают оффсет на палитру с конца файла, причём всегда имеют в виду, что выравнивание - есть. Например Wally.
 
  • Like
Reactions: karaul0v
Статус
Закрита.

Game Server

Доноры Красавчики

Користувачі онлайн

Немає користувачів онлайн.