HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > проблема с туманом
Страницы (4): « 1 2 [3] 4 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Troll
Частый гость

Дата регистрации: May 2007
Проживает: (void)
Сообщений: 40

Рейтинг



Потому что иногда такой код может вылететь, так как будут обращения к библиотеке opengl. Даже на d3d может вылететь. Поэтому самое правильное это проверка -
if(!IEngineStudio.IsHardware())
return 0;
И после сделать туман через pTriApi. Тогда полётов точно не будет.

Сообщить модератору | | IP: Записан
Сообщение: 21619

Старое сообщение 25-10-2007 09:57
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32285
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Поэтому самое правильное это проверка -
if(!IEngineStudio.IsHardware())
return 0;

Неправильная это проверка. Hardware еще не указывает явно рендерим мы в d3d или в gl.
вот так проверять надо
code:
//Check video mode if (glGetString(GL_RENDERER)) { }


Добавлено 25-10-2007 в 15:20:

Troll туман для триапи один чорт не работает в d3d, к тому же в гл можно настроить больше опций, по сравнению с триапи.
А вообще - лучше всего табличный туман

Сообщить модератору | | IP: Записан
Сообщение: 21623

Старое сообщение 25-10-2007 11:20
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34568
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
А вообще - лучше всего табличный туман

__________________

Сообщить модератору | | IP: Записан
Сообщение: 21631

Старое сообщение 25-10-2007 11:47
-
Troll
Частый гость

Дата регистрации: May 2007
Проживает: (void)
Сообщений: 40

Рейтинг



Правильная это проверка!
Туман через ТриАпи не будут работать в d3d но и не будет летать как в случае с просто вызовом gl функций.
А вообще лучше сделать булевое разделение и сделать разделение d3d/gl, рендерить туман и прочие фишки поотдельности для каждого рендера.
glGetString - работает только в опенгл.

Сообщить модератору | | IP: Записан
Сообщение: 21640

Старое сообщение 25-10-2007 12:22
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32285
Нанёс повреждений: 392 ед.

Рейтинг



Troll вообще-то d3d render в халфе нет.
есть FakeGL клиент, преобразующий ogl запросы в d3d команды.
И проверка это неправильная в данном случае, я уже объяснил почему.

Сообщить модератору | | IP: Записан
Сообщение: 21647

Старое сообщение 25-10-2007 13:24
-
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Ну раз не будет на том режиме работать так зачем проверять? Тогода ведь игрок может и не заметить наш туман не влючив опегл и тогда все старания с туманом будут равны 0. Или отключить намеренно, пройдя игру слишком просто.
Я видал кучу обзоров на сити 17 где Иоанн часто говорил о том что замечал туман только когда проходил моды на третий раз влючив опегл.
Но тут уже личные требвания программиста, о вскусах не спорят Кто-то гонится за размером диллок, кто то за скоростью выполнения, кто-то за серх графикой, кто-то за физикой... Каждый вибирает то что ему нравится, на пример лично для одного меня больше нравится без проверок , вылет на совт варе для меня лучше чем невидимыйтуман.

Добавлено 25-10-2007 в 18:25:

Дядя Миша Спасибо за проверку -учту в туторе.

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

Сообщить модератору | | IP: Записан
Сообщение: 21651

Старое сообщение 25-10-2007 14:25
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34568
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
вообще-то d3d render в халфе нет.
есть FakeGL клиент, преобразующий ogl запросы в d3d команды.

да есть он там, есть
никто там огл запросы не преобразует, что ты за ерунду пишешь

__________________

Сообщить модератору | | IP: Записан
Сообщение: 21665

Старое сообщение 25-10-2007 16:03
-
Troll
Частый гость

Дата регистрации: May 2007
Проживает: (void)
Сообщений: 40

Рейтинг



Цитата:
XaeroX писал:
Цитата:
Дядя Миша писал:
вообще-то d3d render в халфе нет.
есть FakeGL клиент, преобразующий ogl запросы в d3d команды.

да есть он там, есть
никто там огл запросы не преобразует, что ты за ерунду пишешь


Во-во, у меня аж вот так произошло

Цитата:
Дядя Миша писал:
Неправильная это проверка. Hardware еще не указывает явно рендерим мы в d3d или в gl.
вот так проверять надо

code:
//Check video mode
if (glGetString(GL_RENDERER))
{
}


Это у тебя она совершенно неправильная. Читай прошлую страницу - мы сначала проверяем на то что этот код будет исполнятся хотябы в одном из трёх рендеров.
Он правилен у тебя лишь тем что он просто невыполнится, так как не эта "gl" ненайдётся, об этом чуть ниже.

if(!IEngineStudio.IsHardware())
return 0;

Если true то мы разумеется исполняем код дальше и у нас остаётся только два рендера + плюс движок не делает лишнюю работу. Дальше почему я говорил использовать
oEngfuncs.pTriAPI->Fog(fogColor,fStart,fEnd,1);
Поскольку если протрейсить этот< туман то можно увидеть что в d3d он возвращает ноль (невыполняется функция).
Вызывая любую gl функцию на d3d мы получим либо крах либо ничего не получим, поскольку библиотека даже и не находится в процессе HL.

Вообще как я делаю -
Есть два буля
static bool d3d = true;
static bool opengl = false;
Если в модуле HL я обнаруживаю модуль opengl32.dll, то следовательно я выставляю их наоборот.
Далее пример функции -
void DrawGlFog();
void DrawD3dFog();
if(opengl)
DrawFog();
else if(d3d)
DrawD3dFog();

Что-то такого рода. Да и если мне говорится что EngStudio.IsHardware == false, я просто кидаю юзеру мессаджбокс: мол, переставь режим детка

Сообщить модератору | | IP: Записан
Сообщение: 21685

Старое сообщение 25-10-2007 20:38
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34568
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Troll писал:
Он правилен у тебя лишь тем что он просто невыполнится, так как не эта "gl" ненайдётся, об этом чуть ниже

Не понял смысла утверждения. Кто не выполнится? Это один из вариантов проверки, запущен ли OpenGL, если нет, то glGetString вернет NULL.

Добавлено 26-10-2007 в 09:09:

Цитата:
Troll писал:
DrawD3dFog

А как ты рисуешь D3D Fog? Вроде как нельзя получить доступ к халфовским СОМ-интерфейсам типа IDirect3DDevice7 и т.п.?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 21689

Старое сообщение 26-10-2007 02:09
-
Troll
Частый гость

Дата регистрации: May 2007
Проживает: (void)
Сообщений: 40

Рейтинг



Короче говоря это я спросоня писал, опять таки забыл про то что у меня в этой области занятий иная специализация, вот вам и кричал яросто про то что неправильно. У меня и летают все gl
А так в вашем случае - да пожалуйста можно и так.

Цитата:
XaeroX писал:
А как ты рисуешь D3D Fog? Вроде как нельзя получить доступ к халфовским СОМ-интерфейсам типа IDirect3DDevice7 и т.п.?

Незнаю, я как уже говорил - хукаю.

Сообщить модератору | | IP: Записан
Сообщение: 21692

Старое сообщение 26-10-2007 04:21
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34568
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Troll хукаешь вызовы СОМ-интерфейсов??

__________________

Сообщить модератору | | IP: Записан
Сообщение: 21693

Старое сообщение 26-10-2007 06:11
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32285
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX докажи обратное ))))

Цитата:
Читай прошлую страницу - мы сначала проверяем на то что этот код будет исполнятся хотябы в одном из трёх рендеров.

нам его нужно выполнять лишь в одном рендерере, для которого мы его и проверям собсно.
Цитата:
Он правилен у тебя лишь тем что он просто невыполнится, так как не эта "gl" ненайдётся

смиялсо

Сообщить модератору | | IP: Записан
Сообщение: 21696

Старое сообщение 26-10-2007 07:45
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34568
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
докажи обратное ))))

Теоретически можно сделать декомпиляцию хв.длл старых версий, где она была нормальной дллкой... Но мне некогда

__________________

Сообщить модератору | | IP: Записан
Сообщение: 21705

Старое сообщение 26-10-2007 12:50
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32285
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX держи образчик fakeGL клиента, чтобы не быть голословным.

Вложение: gl_fakegl.zip (25.2 кб)
Этот файл был скачан 588 раз.
ForestGirl проверилa это вложение на вирусы 26-10-2007 в 14:18

Сообщить модератору | | IP: Записан
Сообщение: 21711

Старое сообщение 26-10-2007 14:16
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34568
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Дядя Миша если ты это имел в виду, то да, согласен, скорее всего в хл так и сделано

__________________

Сообщить модератору | | IP: Записан
Сообщение: 21715

Старое сообщение 26-10-2007 15:11
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 18:55. Новая тема    Ответить
Страницы (4): « 1 2 [3] 4 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > проблема с туманом
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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