Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Пример Jan Horn-a + Космос   Найти похожие ветки 

 
john black   (2004-08-09 16:39) [0]

http://www.endorus.ru/cosmo.zip (463 Kb)
http://www.endorus.ru/shot.jpg (32 Kb)
Космос - как в homeworld -
сфера и спрайтовые звезды. Если кому интересно - посмотрите
Жду коментариев и критики


 
Sapersky   (2004-08-10 01:40) [1]

Ну, посмотрел...
То, что называется - неплохо для начала.
Из всех объектов более-менее прилично смотрится Земля - и то непонятно, зачем ей текстура такого высокого разрешения. Непонятно, зачем эта же текстура натянута на "пол" космоса. Непонятно, зачем в комплекте имеется ещё куча всяких текстур, которые не используются.
Текстура небулы (или как оно называется) не очень хорошо стыкуется сама с собой (впрочем, заметно только при большой яркости). И вот ей-то как раз не хватает разрешения (точнее, чёткости).
Хорошо работает алгоритм удаления невидимых граней - в смысле, удаляет хорошо, так что из всех звёзд видно только 2-3 полигона, и те не постоянно (моргают).
Скорость - 30 FPS.

Можешь попинать мой "Homeworld" :) -

http://delphigfx.mastak.ru/samples6.htm

см. BTG Viewer.


 
john black   (2004-08-10 22:58) [2]

to Sapersky:
Пара вопросов (может быть тупых)
1.Как сделать так, чтобы не отсекались звезды?
2.Какие есть формулы для расчета нормалей (по 4-м вершинам)
3.как построить поверхность по карте высот НЕ полосками (пример есть такой. там y полосок длины x и это очень хорошо заметно)
Заранее спасибо

P.S. я стормозил, исходники закачал старые, а текстуры закачал все, потому как влом было смотреть какие нужны, а какие нет. Сорри за зря скачаные килобайты


 
Sapersky   (2004-08-11 12:38) [3]

Зависит от того, как делаются звёзды (сейчас под рукой тех исходников нет). И как в принципе их лучше делать... В том же Homeworld 1 (и у меня в демке) это отдельные спрайтики (биллборды - квадраты, всё время повёрнутые к зрителю). Если звёзд относительно немного (в Homeworld 1 в среднем около 50, но он вышел, если не ошибаюсь, в 99 г; сейчас можно больше :)), получается довольно быстро. Ну или просто точки - это быстрее, хотя выглядит хуже (и по-разному в разных разрешениях).
Если лепить всё одной текстурой, то она должна быть очень большой, чтобы звёзды получились чётко (зацикливать текстуру - нереалистично). Хотя, если использовать куб, т.е. 6 текстур, наверное, можно ограничиться и 512 * 512.

Нормали... как найти перпендикулярный вектор к двум векторам - этому в школе учат, называется векторное произведение (или Cross Product).

function VectorCrossProduct(const v1, v2: TVector) : TVector;
begin
 result.x := (v1.y*v2.z) - (v1.z*v2.y);
 result.y := (v1.z*v2.x) - (v1.x*v2.z);
 result.z := (v1.x*v2.y) - (v1.y*v2.x);
end;

v1 и v2 берутся как разности между точками грани, для которой считается нормаль:

nm:=VectorNormalize( VectorCrossProduct ( VectorSub (v[1], v[0]), VectorSub(v[2], v[1]) ));

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

Относительно построения поверхностей - м-да, не очень понимаю, как оно строится полосками (рисуется полосками, т.е. triangle strip"ами, может быть?). В принципе, если правильно посчитать нормали, можно и полосками рисовать. Хотя это не самый эффективный метод - обычно используют индексы, но как их задействовать в OGL, я не в курсе.


 
NailMan ©   (2004-08-11 17:32) [4]

Точками хорошо получается если задать им плавающий размер(в D3D это возможно, в OGL кажется тоже). Скажем 1.2 пикселя. Получается легкий эффект мерцания пр движении.

Распределение лучше всего делать не по сферическим координатам(Alpha, Phi, Radius) а по кубическому гауссовому.
Генерируется координата XYZ через функцию RandG из Math в кубе, т.е
X:=RandG(0,100)
Y:=RandG(0,100)
Z:=RandG(0,100)
И полученный вектор(координата) нормализуется. Получается проектированная из куба на поверхность сферы точка. И в буфер вершин это дело вместе с цветом.

---
WBR, NailMan aka 2:5020/3337.13


 
Ландграф Павел ©   (2004-08-11 22:15) [5]

у меня одна притензия (вроде так слово пишется)... дикая скорость управления... нажал на кнопочку... а земли уже не видно... или это гиперпрыжки?=)



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
1-1101815685
Tack
2004-11-30 14:54
2004.12.12
TSpinEdit и Delphi 7


14-1101192348
NewDelpher
2004-11-23 09:45
2004.12.12
Есть ли защита от СМС-спама


3-1100169075
Kerk
2004-11-11 13:31
2004.12.12
Аналог DECODE в MSAccess


14-1101389497
Dima_K
2004-11-25 16:31
2004.12.12
Помогите.вопрос по математике


1-1101900116
ANDREI
2004-12-01 14:21
2004.12.12
sos