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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- проблема с туманом (https://hlfx.ru/forum/showthread.php?threadid=956)


Отправлено Тренсфер 26-10-2007 в 16:17:

NorthWanderer вот лови ссылку на тутор о тумане:
http://www.trensf.narod.ru/Fog.htm
Багов конечно полно, но зато работает

__________________
Хотелось бы, чтобы не только хотелось...


Отправлено NorthWanderer 26-10-2007 в 19:48:

Спосибо Огромное


Отправлено Дядя Миша 26-10-2007 в 20:30:

XaeroX да именно это.

Добавлено 27-10-2007 в 00:30:

Тренсфер у меня тут к тебе несколько вопросов по тутору:

Цитата:
Начну с клиента. В cbase.h в самый конец вставим объявление класса тумана:

Это как понимать
Пойдем далее - ты объявляешь параметры тумана как float, однако парсишь значения с карты как int (atoi).
И наконец передаешь первый байт каждого float
Оно вообще работает? тут по идее надо roundup сделать + умножение на 255 перед отправкой и деление на клиенте.
Это если учесть, что диапазон значений не выходит за рамки 0-1.0, как того требует OpenGL.
Далее если бы ты использовал стандартные переменные, тебе бы не пришлось юзать кастомную мессагу из 7 байт, а достаточно было бы записать энтиндекс и по нему отловить нужную энтить. Это гораздо проще и удобнее.
Место для вызова тумана - крайне неудачное к сожалению.
вот как сделано в xash
code:
//========================== // V_CalcGlobalFog //========================== void V_CalcGlobalFog( struct ref_params_s *pparams ) { float g_fFogColor[4] = { FogColor.x, FogColor.y, FogColor.z, 1.0 }; bool bFog = pparams->waterlevel < 2 && g_fStartDist > 0 && g_fEndDist > 0; if (!bFog) return; //rendering global fog glEnable(GL_FOG); glFogf(GL_FOG_DENSITY, 0.0025); glFogi(GL_FOG_MODE, GL_LINEAR); glFogfv(GL_FOG_COLOR, g_fFogColor); glFogf(GL_FOG_START, g_fStartDist); glFogf(GL_FOG_END, g_fEndDist); glHint(GL_FOG_HINT, GL_NICEST); }

Тип тумана можешь выбросить, GL_EXP и GL_EXP2 дают отвратительные результаты.
Вызывать нужно перед V_CalcRefDef, но после завершения всех проходов (камер, мониторов итд).
Я возможно тряхну стариной и таки напишу тутор по табличному туману из Lazarus (был такой аналог спирита под Q2, тоже с мовевитчем, зеркалами и прочей бедой).
Там кстати говоря учтена видимость монстров в тумане - для этого мы просто в функции CanSee находим энтить env_fog, берем текущую плотность тумана и делим её на дистанцию по хитрой формуле. И туман начинает оказывать на монстров воздействие.
лоакльный туман немного сложнее, но в принципе реализуется подобным образом.


Отправлено Troll 27-10-2007 в 00:05:

Да, кстати, как пофиксить скай с туманом?
А то приходится его отключать.. Я пару вариантов пробовал, у меня либо просто не рисуется туман(на скае), либо небо начинает косячить(glclear мутил по всякому, ничего не вышло)
Может есть какие зарисовочки по этой теме?


Отправлено Тренсфер 27-10-2007 в 07:34:

Дядя Миша это меня вчера заглючило Я даже тутор не проверил Исправлю, всё исправлю и переменные и прочее. Вызов для тумана я взял из того французкого тутора.
А вот тип GL_EXP хоть убейте- мне понравился.
Этот тутор живёт только один день и в нём полно глюков.

__________________
Хотелось бы, чтобы не только хотелось...


Отправлено Дядя Миша 27-10-2007 в 09:52:

Troll никак не пофиксить, увы.
Ты имеешь в виду 3d sky ?


Отправлено Ku2zoff 27-10-2007 в 11:12:

очень обидно что туман работает только в комнатке где находится энтитя енв_скай, а в других частях карты, где небо из НУЛЛа не работает


Отправлено Дядя Миша 27-10-2007 в 11:25:

Ku2zoff можно сделать наоборот. если хочется.


Отправлено Ku2zoff 27-10-2007 в 13:06:

Дядя Миша вот мне как-то больше нравится наоборот. А вот чтобы и там и там работало, как я понял нельзя, либо придётся извращаться, мутить кучу разных функций...


Отправлено Troll 27-10-2007 в 22:14:

Да, 3d sky.. Посмотрел - через TriApi валвовцы тоже отключают небо... Так что приходится таким методом действовать..


Отправлено XaeroX 28-10-2007 в 06:19:

Troll на стадартном-то небе туман прекрасно работает...

__________________

xaerox on Vivino


Отправлено Дядя Миша 28-10-2007 в 07:20:

Обычный линейный туман не умеет работать в несколько проходов, к сожалению.
Я видел какую-то замуту с glDrawPixels но по-моему она тормозная.


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

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