HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Туман и прозрачность
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



Туман и прозрачность

Пытаясь добавить в игру туман, столкнулся с маленькойпроблемкой, большинство прозрачных текстур перестают такими быть.

Код хукнутой glEnable функции

C++ Source Code:
1
void APIENTRY Mine_glEnable(GLenum mode)  {
2
 
3
  //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //непомогает
4
  //GLfloat density = 0.3;
5
 
6
  GLfloat fogColor[4] = {0.8, 0.8, 0.8, 0.0};
7
 
8
  //rendering global fog
9
  glEnable(GL_FOG);      //рисуем?
10
  glFogf(GL_FOG_DENSITY, 255.0f);
11
  glFogi(GL_FOG_MODE, GL_LINEAR);
12
  glFogfv(GL_FOG_COLOR, fogColor);
13
  glFogf(GL_FOG_START, 1190);      //начало
14
  glFogf(GL_FOG_END, 2400);       //конец
15
  glHint(GL_FOG_HINT, GL_NICEST);
16
 
17
  Real_glEnable(mode);
18
}


В игре получаем следующее -

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 05-12-2010 21:27
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



ToMMuK туман надо выключать перед началом рендеринга полупрозрачных поверхностей. Ну это же элементарно.
Погляди как в спирите 1.7 устроено.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-12-2010 21:31
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



Цитата:
ToMMuK туман надо выключать перед началом рендеринга полупрозрачных поверхностей. Ну это же элементарно.
Погляди как в спирите 1.7 устроено.


Учитывая что я могу только хукать функции, а сурса игры нету =)

Добавлено 05-12-2010 в 23:41:

Цитата:

Погляди как в спирите 1.7 устроено.


Сервер или клиент? =)

Добавлено 06-12-2010 в 00:00:

Дядя Миша спасибо за подсказку. Всё оказалось куда проще чем я ожидал.

code:
if(mode == GL_BLEND) glDisable(GL_FOG); // glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GLfloat density = 0.3; GLfloat fogColor[4] = {0.8, 0.8, 0.8, 0.0}; //rendering global fog glEnable(GL_FOG); glFogf(GL_FOG_DENSITY, 255.0f); glFogi(GL_FOG_MODE, GL_LINEAR); glFogfv(GL_FOG_COLOR, fogColor); glFogf(GL_FOG_START, 1190); glFogf(GL_FOG_END, 2400); glHint(GL_FOG_HINT, GL_NICEST); if(mode == GL_BLEND) glDisable(GL_FOG);


И всё заработало =)

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

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

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

Рейтинг



ToMMuK ты куда от нас пропал? Возвращайся, ты нужен америке форуму.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 06-12-2010 11:28
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



Никуда я не пропадал =) Ещё хотел спросить, можно ли как-то например таким же способом как и туман сделать Glow моделек и АнтиАлиасинг, а то картинка в игре кажется ужасной и зазубреной. Просто видел кучу туторов как делать в приложениях, а вот как именно в уже готовом приложении сиё чудо реализовать и какие функции смотреть не понятно. =)

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 06-12-2010 12:57
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



надо хукнутую opengl32.dll Там всё можно

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 06-12-2010 14:27
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



Она хукнута, ведь именно с её помощью я и добавил туман

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 06-12-2010 14:42
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



ToMMuK ты не знаешь как включить анти-алиасинг?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 06-12-2010 15:26
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



Цитата:
ToMMuK ты не знаешь как включить анти-алиасинг?


Мои знания OGL заканчиваются функцией glFog =)

Добавлено 06-12-2010 в 19:41:

Порыскал Гугл

Нашёл сиё чудо

C++ Source Code:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);


Испробовал, вот что получилось :

http://s57.radikal.ru/i155/1012/9f/0b54fc1b4294.jpg - сглаживание есть
http://s39.radikal.ru/i084/1012/c7/399914cd0fa3.jpg - сглаживания нету

Я так понимаю это и есть то самое сглаживание, или бывает другое? =)

А что насчёт Глоу(или как он там называется Blur,Bloom? oO)

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 06-12-2010 17:41
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



не путай сглаживание с анизотропной фильтрацией.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 06-12-2010 17:46
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



http://www.gamedev.ru/code/faq/?id=3571 - тама написано сглаживание, откуда-ж мне знать було . А как тогда сглаживание выглядит? =)

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 06-12-2010 17:47
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


ToMMuK
Там написана глупость. Что ты хочешь от геймдев.ру?
Не сглаживание, а фильтрация (билинейная или трилинейная).
А сглаживание - это мультисемплинг, надо пересоздавать контекст и окно с нужным (и поддерживаемым) числом WGL_SAMPLES, чтобы его активировать.

__________________

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

Старое сообщение 06-12-2010 18:07
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



А это реально сделать с тем что я имею? =)

Добавлено 06-12-2010 в 20:10:

И вообще, для той графики что в той игре - нужно ли? =)

Больше интересует какойнить красивый размытый эффект(может блюр) - а то графика кажется топорной.

Ииии самый волнующий вопрос, в игре фон чёрный - реально ли его как то сменить, и как он задаётся?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 06-12-2010 18:10
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Скорее всего, нет.
Но это и не нужно. Сглаживание обычно можно принудительно включить в настройках драйвера (ССС или NvCpl)

Добавлено 07-12-2010 в 00:14:

Цитата:
ToMMuK писал:
в игре фон чёрный - реально ли его как то сменить, и как он задаётся?

Попробуй хакнуть glClearColor.
Но вполне возможно, что он по-другому задается, например, непосредственно рисованием квада нужного цвета.

__________________

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

Старое сообщение 06-12-2010 18:14
-
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



А вот если я хочу нарисовать свою так сказать стенку вместо этого фона(ну я незнаю как назвать правильно) с цветом который я задам что мне использовать нужно?

glTexCoord2f и glVertex3d, ужасно лагуют когда пытаюсь отрисовать прямоугольник закрывающий этот фон, да и цвет не задаётся, надо текстуру, а мне бы просто обычный цветной квадрат =)

Добавлено 06-12-2010 в 20:32:

Цитата:
Попробуй хакнуть glClearColor.


Спасибо, помогло

Цитата:
А вот если я хочу нарисовать свою так сказать стенку вместо этого фона(ну я незнаю как назвать правильно) с цветом который я задам что мне использовать нужно?
- Вопрос отпал.

А что насчёт Bloom,Blur?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 06-12-2010 18:32
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

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

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

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

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

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