HLFX.Ru Forum Страницы (2): « 1 [2]
Показать все 4008 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Shapirlic 19-07-2025 в 15:31:

v[5] v[6] из surf->polys->verts содержат что то похожее на координаты лайтмапы, но их надо как то обработать. На вид они в 9-10 раз меньше чем нужно


Отправлено Дядя Миша вчера в 07:53:

Цитата:
Shapirlic писал:
Лайтмапы именно тех сурфоф воды (SURF_DRAWTURB), которые я и буду рисовать.

ты убедись что компилятор эти лайтмапы рассчитал. Их помоему только мой p2st считает.

Добавлено вчера в 10:53:

C++ Source Code:
1
// for speed reasons
2
  if( !FBitSet( warpface->flags, SURF_DRAWTURB ))
3
  {
4
    // lightmap texture coordinates
5
    s = DotProduct( verts, warpinfo->lmvecs[0] ) + warpinfo->lmvecs[0][3];
6
    s -= warpinfo->lightmapmins[0];
7
    s += warpface->light_s * sample_size;
8
    s += sample_size * 0.5;
9
    s /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->width;
10
 
11
  t = DotProduct( verts, warpinfo->lmvecs[1] ) + warpinfo->lmvecs[1][3];
12
  t -= warpinfo->lightmapmins[1];
13
  t += warpface->light_t * sample_size;
14
  t += sample_size * 0.5;
15
  t /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->height;
16
 
17
  poly->verts[i][5] = s;
18
  poly->verts[i][6] = t;
19
}

Если проставлен DRAWTURB, то ксаш не рассчитывает координаты лайтмапы. Хотя и может, конечно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff вчера в 08:56:

Цитата:
Дядя Миша писал:
ты убедись что компилятор эти лайтмапы рассчитал. Их помоему только мой p2st считает.

У китайца, кажись был какой-то флаг для расчёта лайтмап на стёклах и прочих поверхностях с kRenderTransTexture. Помню, что после компиляции старым zhlt стёкла светились в темноте, будто параметр _minlight не равен нулю. Это оно?

Добавлено вчера в 15:56:

А, нет. У китайца по-моему текстура модифицировалась, и вшивалась прям в бсп. Точно не помню.


Отправлено Shapirlic вчера в 11:11:

Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife. Это легко проверить, если открыть .bsp утилитой BSPGUY.
Lambda_bunker:


Отправлено Shapirlic вчера в 12:02:

Я получаю приблизительные результаты если беру такие коодинаты для лайтмапы

C++ Source Code:
gl.glMultiTexCoord2fARB(GL_TEXTURE0_ARB, v[5] * 3.f * M_PI, v[6] * 3.f * M_PI);

Но в местах со сложным освещением видно, что лайтмапы плохо стыкуются.
Нужно как то иначе обработать v[5] и v[6], с этим вопросом я сюда и пришёл к вам )


Отправлено Дядя Миша вчера в 16:56:

Цитата:
Ku2zoff писал:
А, нет. У китайца по-моему текстура модифицировалась, и вшивалась прям в бсп. Точно не помню.

Всё верно. Освещение полупрозрачных поверхностей нетривиальная задача, поэтому либо через мультипроходность (как в Quake3), либо через копию экрана (как в Paranoia 2:Savior), либо предумножить лайтмапу на диффузку и сохранить результат в особую диффузку, вкомпиленную прямо внутрь карты и используемую только на этой поверхности (как в VHLT).

Цитата:
Shapirlic писал:
Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Shapirlic вчера в 18:50:

Окай, в ZHLT экономили, оригинальный компилятор и Vluzacn_s_ZHLT на воде лайтмапы делают, у меня вопрос с самого начала по текстурным координатам этих лайтмап. BSPGUY и BSPViewer могут мировую воду рендерить с лайтмапой, я в их сорцах покопался, но так и не понял как они высчитывают текстурные координаты для лайтмап мировой воды. И с этим пришёл к вам, у вас есть идеи или догадки? Как я уже писал выше v[5] и v[6] в verts сурфов воды похожи на текстурные координаты лайтмапы, но деленные на 9-10. Есть догадки какая математика там скрывается?


Временная зона GMT. Текущее время 03:42. Страницы (2): « 1 [2]
Показать все 4008 сообщений этой темы на одной странице

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