![]() |
Страницы (32): « Первая ... « 26 27 28 29 [30] 31 32 » Показать все 473 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Paranoia 2:Savior (https://hlfx.ru/forum/forumdisplay.php?forumid=38)
-- Полный исходный код P2:Savior 1.51, включая компиляторы и модельвьювер (https://hlfx.ru/forum/showthread.php?threadid=5552)
SNMetamorph солнцу автоматически назначается лайтстиль за номером 20.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
TBN для декалей строится из текстурных координат декали, с TBN браша он не совпадает, поэтому вектор из делюксмапы для декали не валидный, так?
1 | v->stcoord0[0] = DotProduct( clip->textureVecs[0], delta ) + 0.5f; |
2 | v->stcoord0[1] = DotProduct( clip->textureVecs[1], delta ) + 0.5f; |
3 | v->stcoord0[2] = (( DotProduct( point, tex->vecs[0] ) + tex->vecs[0][3] ) / tex->texture->width ); |
4 | v->stcoord0[3] = (( DotProduct( point, tex->vecs[1] ) + tex->vecs[1][3] ) / tex->texture->height ); |
5 | R_LightmapCoords( surf, point, newdecal->verts[i].lmcoord0, 0 ); // styles 0-1 |
6 | R_LightmapCoords( surf, point, newdecal->verts[i].lmcoord1, 2 ); // styles 2-3 |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Это что-то непонятное
Добавлено 27-09-2021 в 12:08:
1 | static void R_DecalComputeTBN( brushdecal_t *decal ) |
2 |
3 | .... |
4 |
5 | for( triID = 0; triID < (decal->numElems / 3); triID++ ) |
6 | { |
7 | for( int i = 0; i < 3; i++ ) |
8 | { |
9 | v[i] = (float *)&decal->verts[decal->elems[triID*3+i]].vertex; |
10 | tc[i] = (float *)&decal->verts[decal->elems[triID*3+i]].stcoord0; |
11 | } |
12 |
13 | CalcTBN( v[0], v[1], v[2], tc[0], tc[1], tc[2], triSVect[triID], triTVect[triID] ); |
14 | } |
Нормаль совпадает, этого достаточно.
Добавлено 27-09-2021 в 13:19:
Для умножения делюксмапы на нормалмапу TBN вообще не используется, поскольку оба-два находятся в локальном текстурном пространстве.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Я же говорю, самое главное, что плоскости совпадают. У браша и у декали.
Добавлено 27-09-2021 в 15:26:
Я тут посравнивал наложение одних и тех же декалей под разными углами.
Ну что можно сказать. У большинства декалей в параное нормалей нет, следовательно там это неактуально. Там где нормали есть, рельеф как правило слабовыражен и в глаза это не бросается. Единственное где это будет заметно - декали с параллаксом. Но в оригинале их нет, а я своё время так и не успел доделать этот механизм.
Можно оба текстурных пространства привести обратно в модельное и умножать уже там. Тогда будет правильно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Еще будет заметно на декалях со спекуляром
"Дешевый" вариант - выровнять наложение декали по основной текстуре, как в халфе сделано. Правда для табличек это не всегда подходит.
Иначе придётся в вертекс передавать два касательных.
Можно передать два общих TBN через юниформы, но это нежелательно, т.к. декаль необязательно покрывает плоскость. Иногда она заворачивается на углы до 45 градусов, т.к. там проекция. Или можно по примеру Крайтека превратить касательные пространства в кватернионы для экономии места.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Проще, наверное, хранить делюксмапу в волрдспейсе
Я в своё время так декали и не доделал, потому что там много неочевидных проблем вылезало. Ну скажем, если декали с альфа-каналом и лежат друг-на-друге, им нельзя использовать Z-offset, т.к. они будут з-файтить друг с другом. Значит им надо программный на CPU делать. Или переносить его в вертексный шейдер. Потом были проблемы со скейлом на статиках, но я вроде бы успел это решить.
Добавлено 27-09-2021 в 16:15:
1 | // texture flags |
2 | #define TEX_SPECIAL BIT( 0 ) // sky or slime, no lightmap or 256 subdivision |
3 | #define TEX_WORLD_LUXELS BIT( 1 ) // alternative lightmap matrix will be used (luxels per world units instead of luxels per texels) |
4 | #define TEX_AXIAL_LUXELS BIT( 2 ) // force world luxels to axial positive scales |
5 | #define TEX_EXTRA_LIGHTMAP BIT( 3 ) // bsp31 legacy - using 8 texels per luxel instead of 16 texels per luxel |
6 | #define TEX_NOSHADOW BIT( 4 ) |
7 | #define TEX_NODIRT BIT( 5 ) |
8 | #define TEX_SCROLL BIT( 6 ) // Doom special FX |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
ncuxonaT ну как с Параноей дела идут? Устал-забил-потерял интерес?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша свет внутри меня угас, но я всё еще работаю.
Работай так, чтобы снова зажечь!
__________________
Killing Floor: Horzine Outbreak
Мне кажется вы неправильно поняли концепцию китайца: индирект у ДМ и так светлее китайца, а параметр balance его ещё и дополнительно подсвечивает.
Временная зона GMT. Текущее время 01:43. | Страницы (32): « Первая ... « 26 27 28 29 [30] 31 32 » Показать все 473 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024