Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.043 c
14-1100727843
Marser
2004-11-18 00:44
2004.12.12
Отбор на ЧМ-2006


14-1101183994
VMcL
2004-11-23 07:26
2004.12.12
Tech. support


10-1070985161
lionson
2003-12-09 18:52
2004.12.12
утечка памяти в корба-сервере


1-1101310313
Frozzen
2004-11-24 18:31
2004.12.12
Освобождение памяти


6-1096680587
Аноним
2004-10-02 05:29
2004.12.12
Как узнать мак-адрес сетевой карты?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский