2017-02-05 6 views
0

У меня есть 3D-сцена, с бухтой Я могу ходить первым человеком, а планета видна из окна, принимая все виды. Как рисовать планету, чтобы она отображалась правильно?Шаблон для правильного отображения планет

Размеры моего залива 10x10x7. И у меня есть три варианта, у всех есть недостатки:

  1. Просто радиус радиуса = 8 планет около окна. Ну, это воспринимается как свиной сыр, когда я смотрю в окно и нажимаю вперед или назад, я вижу его масштабирование. Худший

  2. Сделайте две сцены и две камеры, одну для залива, вторую для планеты. Выглядит лучше, но только если я не повернусь. Если я повернусь, ясно видно, что планета - это просто фона skybox

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

ответ

0

Во многих отношениях ваша проблема имеет те же требования, что и Skyboxes. Итак, вы можете немного узнать о том, как они работают, и применить на основе этого решение. Например:

  1. Вы всегда хотите, чтобы сделать планету первой, так что в конечном итоге за все остальное. Это позволяет разместить его рядом (и, следовательно, избегать z-обрезки).

  2. Вы хотите, чтобы он всегда отображался на одинаковом расстоянии от плеера. Для этого вы можете применить технику, найденную здесь: http://ogldev.atspace.co.uk/www/tutorial25/tutorial25.html У них есть собственный шейдер вершин, который заменяет значение z, поэтому он не масштабируется. Я уверен, что вы можете найти другие способы, если не хотите использовать шейдер.

Edit: Я думаю, что самый наивный метод должен был бы компенсировать положение планеты на позиции игроков каждый кадр. В сочетании с 1. планета казалась бы неподвижной и еще далекой.

 Смежные вопросы

  • Нет связанных вопросов^_^