Рендеринг огня в OpenGL - PullRequest
       59

Рендеринг огня в OpenGL

5 голосов
/ 15 декабря 2010

Я хочу сделать эффект огня в OpenGL на основе симуляции частиц. У меня есть сотни частиц, которые имеют положение и температуру (и, следовательно, цвет), а также со всеми другими их свойствами. Простой рендеринг solidSphere с использованием перенасыщения не выглядит очень реалистичным, так как частицы распространяются слишком широко. Как я могу нарисовать огонь на основе информации о частицах?

Ответы [ 2 ]

5 голосов
/ 15 декабря 2010

Если вы просто пытаетесь создать реалистичный эффект огня, я бы использовал какую-нибудь существующую библиотеку, как рекомендовано в других ответах.Но мне кажется, что вы после демонстрации симуляции.

Прямое решение, которое стоит попробовать, может заменить ваши текущие сферы рекламными щитами (то есть графическим изображением, которое всегда обращено к камере), которые являются чисто белымив середине и постепенно исчезают до прозрачности по краям - очевидно, позиционируя и окрашивая изображения в соответствии с вашими частицами.

Лучшее решение, которое я чувствую, состоит в том, чтобы приблизиться к пламени в виде набора 2D сеток, с помощью которых вы можете управлятьпрозрачность и цвет каждой вершины в сетке.Это можно сделать в OpenGL, построив плоскость из четырехугольников и используя систему частиц, чтобы вычислить (путем интерполяции из ближайших частиц, которые у вас есть) цвет и прозрачность каждой вершины.OpenGL интерполирует каждый пиксель между вершинами для вас и дает вам гладкую картину «средних частиц в области».

5 голосов
/ 15 декабря 2010

Возможно, вы хотите использовать систему частиц для создания эффекта огня, вот руководство NeHe о том, как это сделать: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19

...