Как создать эффект «ночного неба» в OpenGL?


10

Я создаю игру с использованием OpenGL и хочу сделать эффект ночного неба с несколькими звездами.

Я хочу иметь блестящий черный эффект в небе, чтобы он выглядел хорошо. Может ли кто-нибудь помочь в прохождении через него или дать ссылку на хороший учебник?

Ответы:


11

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.