Эффекты окружения: туман в C# + OpenGL

Блоговая публикация пользователя: amid Эта публикация была перенесена из личного блога пользователя в общие разделы уровок сайта.
Почти все существующие статьи по созданию тумана написаны под C++. Изучив разности синтаксиса C# OpenGL и C++ OpenGL, я догадался, как сделать туман в C# + OpenGL.
Уроки OpenGL различных тематик: туман в C# + OpenGL Рисунок 1. Туман в C# + OpenGL.
Сначала необходимо создать массив, хранящий в себе цвет "тумана".

Ниже представлен готовый код:

Код:
/*http://esate.ru, amid*/

float[] fogColor=new float[4] {0.5f, 0.5f, 0.5f, 1.0f}; // Цвет тумана 

Для изменения цвета очистки экрана на цвет тумана воспользуйтесь следующим кодом:

Код:
/*http://esate.ru, amid*/

Gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); // Будем очищать экран, заполняя его цветом тумана.

Сразу после этого, необходимо прописать следующий код:

Код:
/*http://esate.ru, amid*/

Gl.glEnable(Gl.GL_FOG); // Включает туман (GL_FOG) 
Gl.glFogi(Gl.GL_FOG_MODE, Gl.GL_LINEAR);// Выбираем тип тумана 
Gl.glFogfv(Gl.GL_FOG_COLOR, fogColor); // Устанавливаем цвет тумана 
Gl.glFogf(Gl.GL_FOG_DENSITY, 0.35f); // Насколько густым будет туман 
Gl.glHint(Gl.GL_FOG_HINT, Gl.GL_DONT_CARE); // Вспомогательная установка тумана 
Gl.glFogf(Gl.GL_FOG_START, 1.0f); // Глубина, с которой начинается туман 
Gl.glFogf(Gl.GL_FOG_END, 5.0f); // Глубина, где туман заканчивается. 

glFogi может быть представлен следующими видами тумана:
  1. Gl.GL_EXP - обычный туман, заполняющий весь экран;
  2. Gl.GL_EXP2 - затуманит весь экран, зато придает больше глубины всей сцене;
  3. Gl.GL_LINEAR - лучший режим прорисовки тумана.
Вот и всё!

Нет доступа к просмотру комментариев.

^
Регистрация
Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 
×
Восстановление пароля
Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш Email. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
×
Авторизация
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.
Авторизуйтесь с помощью соц. сети или с помощью аккаунта на сайте:
×