Генерация случайного фона для игры - PullRequest
1 голос
/ 21 марта 2012

Я разрабатываю 2D-игру с OpenGL (OpenTK) и C #.Мне нравится иметь случайный фон, состоящий из звезд и тумана.

В середине моей проекции находится космический корабль.Звездолет может двигаться в любом направлении.Фон будет генерироваться динамически в любом направлении.Моя проблема в производительности.Я рендерил 48000 вершин (6000 прямоугольников с текстурой .png) для небольшой области.И область будет расти, потому что мой космический корабль движется.Мой ПК: процессор 4 Core x 2300 МГц, GeForce 9800 GTX + и он все еще работает медленно.Это нормально?

Есть 1 решение в моей голове.Рендеринг области и создание растрового изображения для backgroundtexture.

Возможно, у вас есть лучшее решение.Или вы можете сказать мне недостатки создания динамической фоновой текстуры.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

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

Что касается звезд, я бы использовал GL_POINTS. Как только звезда «упадет» с края видимого экрана, сделайте так, чтобы она появилась на другой стороне. Еще раз вы можете иметь их больше с разной скоростью, потому что, как мы знаем, звезды не все на одинаковом расстоянии.

Извините, я не могу быть более конкретным, но я на работе.

1 голос
/ 21 марта 2012

Пусть вы подали в поле зрения 4х4.

Таким образом, вы должны визуализировать изображение 5x5, состоящее из кусочков 1x1, и расположить его по центру на экране.

Чем, когда ваш космический корабль движется, вы должны сгенерировать кусок картинки 1x5 (5 маленьких кубиков размером 1x1) и поместить его перед вашим кораблем, и вы должны удалить кусок картинки с другого направления. Если корабль движется влево, вы должны поместить новую часть пространства слева и удалить часть справа. и т.д.

...