Re: Космические масштабы в OpenGL
От: HeaveN Россия  
Дата: 04.12.03 13:53
Оценка: 11 (2)
Здравствуйте, Ossto, Вы писали:

O>Всем известно, что в космосе все очень большое (объекты и рассотяния).


Есть немного.

O>Меня интересуют технологии реализации космических простанств.

O>Пока у меня только один вариант — делать все действительно большим.
O>Но возникают проблемы:
O>Глубина буфера не бесконечная,

Большим все должно быть относительно. Скажем, если за единицу расстояния (например, метр) принять 0.001f, то 1.0f будет уже километр. 1000.0f — 1000 км. Никаких проблем с буфером не будет. Если конечно, не собираешься хранить описания всех объектов на многие сотни парсек . Если есть необходимость отслеживать и реализовывать поведение объектов на расстоянии многие миллионы километров, то уже надо шаманить, тут проблемы будут во всем, т.к. объектов в таком объеме немеряно и никакой и вычислительной мощности не хватит. Так лучше не делать, а рассматривать только ограниченное пространство небольшого размера (опять же относительно).

O>На больших расстояниях проглючивает изображение


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

O>И как нарисовать звездное небо так, чтобы до него нельзя было долететь,


Рисуется кубиком или шаром с текстурой. Рисуется перед выводом всей остальной графики с отключенным буфером глубины. Причем размеры куба или шара не обязательно должны быть большими. Достаточно взять длину ребра за 1.0f и при отображении неба помещать камеру в центр.

O>и в случае если звездное небо рисовать окружающей фигурой (кубик с текстуркой), то какого она должна быть размера?!!!


Я когда-то делал 128х128 на каждую грань. Имхо, это много. Достаточно 64x64, а то и 32х32. Там по субъективным ощущениям надо смотреть. Основная проблема, которую я не решил, была в том, чтобы не видно было щелей на стыках граней.
Нет такого закона, что человеку летать нельзя...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.