Форум: "Игры";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизПример 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.048 c