Эффекты окружения: туман в 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 - лучший режим прорисовки тумана.
Вот и всё!

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

^