На p_savior2 такого много, но там есть балки на потолке. Хотя непонятно, почему внезапно только в некоторых местах свет начинает с них браться, если, конечно, в этом причина.
Была же такая шняга на КСМ в связи с какой-то картой КС. Может очень давно правда. Там кажется оказалось что ГС делает трейс вверх наискосок и оттуда берет яркость.
ncuxonaT эти карты Элбер компилил не помню чьими компиляторами, но моих тогда не было в природе. Может там какая-то невидимая срань, в которую трасса упирается. Может быть трасса берётся с потолка, может что-то еще. Оно там радикально чёрное или мал-мала освещается?
Добавлено 13-12-2020 в 21:37:
Надо пихать алерты и смотреть как трасса отрабатывает. На каком этапе происходит отказ.
Добавлено 13-12-2020 в 21:39:
Есть еще квар r_lighting_extended 0\1 можно его выключить и потестить.
Если освещение исправится, значит там точно какая-то невидимая срань.
Хочу скомпилить рад из обычного p2st. Там не хватает заголовочников про SSE и векторы. Если начинаешь дергать их из сорса то огребаешь больше ошибок чем имел.
И ещё там не распознается функция CompressRGBABufferToDXT хотя она в том же файле выше объявлена.
Нечем пока хвастаться. Сделана бОльшая часть брашевых текстур и малая часть моделей. Капсульные тени и объемное освещение с туманом даже не трогал. Еще нужно сделать, чтобы спрайты и частицы с шейдером рендерились, для гамма-коррекции.
Хотел перепечь освещение лайтбейкером, даже поддержку лайтстилей в нем запилил, но есть две проблемы. Во-первых, не могу запечь вертексное освещение, потому что не могу понять формат хранения. Во-вторых, на картах есть дыры, через которые светит небо:
Добавлено 19-12-2020 в 02:58:
Еще кстати не могу разобраться.
C++ Source Code:
1
typedefstruct
2
{
3
byte emittype;
4
byte style;
5
byte flags; // will be set in ComputeLeafAmbientLighting
6
short origin[3]; // light abs origin
7
float intensity[3]; // RGB
8
float normal[3]; // for surfaces and spotlights
9
float stopdot; // for spotlights
10
float stopdot2; // for spotlights
11
float fade; // falloff scaling for linear and inverse square falloff (0.5 = farther, 2.0 = shorter etc)
ncuxonaT писал: даже поддержку лайтстилей в нем запилил
А её не было?
Цитата:
ncuxonaT писал: Во-первых, не могу запечь вертексное освещение, потому что не могу понять формат хранения
Что именно непонятно? Повертексное освещение чем-то похоже на механизм хранения текстур.
C++ Source Code:
1
typedefstruct
2
{
3
int ident; // to differentiate from previous lump LUMP_LEAF_LIGHTING
4
int version; // data package version
5
int nummodels;
6
int dataofs[4]; // [nummodels]
7
} dvlightlump_t;
dataofs - это массив смещений, каждое смещение указывает на начало dmodelvertlight_t.
C++ Source Code:
1
typedefstruct
2
{
3
unsignedint modelCRC; // catch for model changes
4
int numverts;
5
byte styles[MAXLIGHTMAPS];
6
dvlightofs_t submodels[32]; // MAXSTUDIOMODELS
7
dvertlight_t verts[3]; // variable sized
8
} dmodelvertlight_t;
Хидер плюс все вертексы размером с numverts. dvlightofs_t фиксированная структурка, нужна для того, чтобы все индексированные вертексы точно попали на свои места в реальной модели. Правда в этом формате есть привязка к механизму построения VBO нпосредственно в рендере паранои. Ну впрочем можно ксаш-мод посмотреть, вероятно там будет проще разобраться. Вся эта замута появилась из-за уродского метода хранения вертексов в mdl там к ним нет нормального доступа. Я бы не стал этот огород городить, если бы в mdl можно было получить доступ к уникальным вертексам. Но там - только через сабмодели, которые могут чередоваться, дублироваться итд. Т.е. сначала надо построить лист уникальных мешей. Для лайтмап аналогичный механизм, но чуть попроще.
Добавлено 19-12-2020 в 09:58:
Цитата:
ncuxonaT писал: Тут же 56 байтов? А в бсп как будто бы структуры по 60 байтов записаны.
fatal error C1600: unsupported data type
Если поставить Processor Pack это пропадёт? А то мне для него вообще другая ревизия 6 студии нужна, на Standard Edition он не ставится.
Эта студия с пятым сервис-паком она очень непростая. Это единственная шестёрка которая умеет в SSE. В шестом сервиспаке это уже выбросили.
Микрософт иногда любит так делать. К примеру WinXP SP1 видел более 3 гигабайт оперативы. А потом они испугались и заблокировали эту возможность.