OpenGL моделирование ракетного пламени и паровых следов с частицами - PullRequest
4 голосов
/ 05 марта 2010

Есть ли у кого-нибудь руководство по кодированию приближения для потока частиц, выходящего из реактивного двигателя (с форсажной камерой) в opengl с использованием рисования частиц с использованием буферов вершин / цветовых буферов 4f?

Я полагаю, что есть двааспекты этой проблемы:

  1. Цвет света, когда частицы выходят из реактивного двигателя, в зависимости от температуры и некоторых констант, относящихся к типу сжигаемого газа. Эта статья наводит меня на мысль, что мне понадобится какой-то массив для кривой преобразования температуры / цвета.По-видимому, водород горит при 2660 ° С в кислороде и 2045 ° С в воздухе, тогда как реактивное топливо горит при 287,5 ° С в воздухе.(но температура форсажной камеры реактивного истребителя может как-то достигать 1700С)

  2. След пара за ракетой / струей, который будет либо белым, либо альфа для следа водяного пара, если ракетав атмосфере.Также я полагаю, что мое предположение верно, что это не было бы необходимо для ракеты, сжигающей топливо в космосе.След пара будет моделироваться как крошечные капли воды, которые намного больше, чем длина волны видимого света, поэтому они будут рассеивать свет ахроматически.Поскольку вода сама по себе бесцветна, получающийся в результате цвет будет белым?

Также я собираюсь смоделировать это с точки зрения птичьего полета, поэтому она не должна быть полной трехмерной моделью.Так, например, положение примерно 10 пилотных огней вокруг конуса форсажной камеры можно было бы просто аппроксимировать как 5 линейных точек.

1 Ответ

3 голосов
/ 07 марта 2010

В зависимости от уровня детализации, который вам требуется, вы можете просто использовать текстурированный конус, выходящий из еще не работающего двигателя.Если вы хотите использовать полноразмерную систему частиц (которая для реактивного двигателя мне не нужна), вы можете придать каждой частице в стеке такие свойства, как скорость (vec3), размер, тип газаи возраст.

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

В самом простом случае это может привести к выцветанию, увеличению и ускорению цветных частиц по мере их старения.Это то, что вы ищете?

...