forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Звёзды. звёзды (небесные в смысле) (http://forum.boolean.name/showthread.php?t=4605)

magpro 29.09.2007 15:54

Звёзды. звёзды (небесные в смысле)
 
В общем такое дело.

Хочу сделать космос с большим кол-вом звёзд (с очень большим колличеством).

Создавать в цикле сферы это ухудшит на много скорость игры.

И вот думаю что делать. Мож кто подскажет?

Я сейчас думаю о материнских и т.п. объектов. Мож это поможет?

Заранее спасибо.

impersonalis 29.09.2007 16:17

Re: Звёзды. звёзды (небесные в смысле)
 
CreateSprite ( [parent] )

magpro 29.09.2007 16:51

Re: Звёзды. звёзды (небесные в смысле)
 
Цитата:

Сообщение от magpro
Я сейчас думаю о материнских и т.п. объектов. Мож это поможет?

это и иммел в веду.

Цитата:

Сообщение от impersonalis
CreateSprite ( [parent] )

спс.

HolyDel 29.09.2007 16:56

Re: Звёзды. звёзды (небесные в смысле)
 
может просто извернуть десяток сфер разного радиуса с нанесеннвми на них текстурами звездного неба?

если уж надо спрайтами, то лучше все ето дело запихнуть в один/два меша, а то тормозить будет.

magpro 29.09.2007 16:59

Всётаки тормозит=(

Цитата:

Сообщение от HolyDel
может просто извернуть десяток сфер разного радиуса с нанесеннвми на них текстурами звездного неба?

если уж надо спрайтами, то лучше все ето дело запихнуть в один/два меша, а то тормозить будет.

спрайтами говоришь?

Надо посмотреть

ЛысыЙ_Чук-Иванчук 29.09.2007 17:37

Re: Звёзды. звёзды (небесные в смысле)
 
Юзай партиклы;)

magpro 29.09.2007 18:26

Re: Звёзды. звёзды (небесные в смысле)
 
Цитата:

Сообщение от ЛысыЙ_Чук-Иванчук
Юзай партиклы;)

Можно подробней как это реализовать?

H@NON 29.09.2007 22:03

Re: Звёзды. звёзды (небесные в смысле)
 
Вот какая система может быть: сначало делаешь обычный skybox(или skyshere=) ) кладешь на нее тексу звездного неба и скалишь ее так чтоб границы совпадали со вторым значением в команде camerarange, то есть с дальностью видимости. Далее делаешь свою систему ЛОДа. На словах она будет такой: если объект ближе чем значение дальности видимости, то показываем спрайт. Если звезда будет слишком близко, чтоб ее можно было рассмотреть, то показываем вместо спрайта сферу.

ЛысыЙ_Чук-Иванчук 29.09.2007 23:36

Re: Звёзды. звёзды (небесные в смысле)
 
Цитата:

Можно подробней как это реализовать?
Да без проблем! создавай много спрайтов(можно заюзать либу для большого кол-ва объектов) и рандомно расставляеш спрайты по окружению!

Crystal 29.09.2007 23:38

Re: Звёзды. звёзды (небесные в смысле)
 
Всегда звёзды это текстура скай бокса. нинадо ничего лишнего грузящего комп выдумывать.

HolyDel 29.09.2007 23:45

Re: Звёзды. звёзды (небесные в смысле)
 
Crystal, а если недо к этой звезде подлететь?
А если ето космический симулятор, и там от одной звезды до другой пролетаеш за 10 секунд, при этом "пролетая" окола 10 других звезд?

magpro 30.09.2007 13:02

Re: Звёзды. звёзды (небесные в смысле)
 
Скай боксами там не отделаться.

Я хочу сделать такой эффект что ты реально летишь по звёздному небу который напичкан звёздами, Звёздной пылью, каметами, астеройдами.


а в дали естественно будет бокс с текстурой звёзд.

Пока что нашёл такой выход.

Создаю 10'000 спрайтов звёзд + 10'000 сфер разного цвета и радиуса и размещаю их рандомно.

Вроде у меня не очень тормозит.

и мне 20 тыс маловато)
Хочу больше но когда делаешь больше 10 тыс объектов одного типа то он выдаёт ошибку рендинга.

ЧТобы всё не очень тормозило делаю у камеры фог.

HolyDel 30.09.2007 13:31

Re: Звёзды. звёзды (небесные в смысле)
 
АФИГЕТЬ КАМРАД!!!
Это же похоронит рендер не тока блица, но и любого другого движка ко всем чертям!
Размерность 3д?
То есть летать можно во всех трех направленях, или достаточно в 2-ух?

Какая нах разница, что ты делаеш фог? все равно ВСЕ эти 20000 оюъектов должны быть проверенны (каждый их вертес причем), на расстояние до камеры.

Алгоритм такой:
есть список объектов - которые следует удалить
есть список всех звезд - если звезда дальше определнного расстояние, то запихиваем ее в первй список.
каждая звезда это спрайт и сфера, что из показывать, а что спрятать определяеш через расстояние (Проверяеш ето естественно не каждый такт)
далее. у тебя есть массив!( не type) точек, с 20000 тысячью надо выжимать помаксимуму. типа такого starpos#(40000,3).
Далее, джопустим за 1 игровой цикл проверяеш 1000 таких точек, если они появились достаточно близко к камере, то стаивш на ето место звезду.

magpro 30.09.2007 15:28

Re: Звёзды. звёзды (небесные в смысле)
 
Цитата:

Сообщение от HolyDel
АФИГЕТЬ КАМРАД!!!
Это же похоронит рендер не тока блица, но и любого другого движка ко всем чертям!
Размерность 3д?
То есть летать можно во всех трех направленях, или достаточно в 2-ух?

Какая нах разница, что ты делаеш фог? все равно ВСЕ эти 20000 оюъектов должны быть проверенны (каждый их вертес причем), на расстояние до камеры.

Алгоритм такой:
есть список объектов - которые следует удалить
есть список всех звезд - если звезда дальше определнного расстояние, то запихиваем ее в первй список.
каждая звезда это спрайт и сфера, что из показывать, а что спрятать определяеш через расстояние (Проверяеш ето естественно не каждый такт)
далее. у тебя есть массив!( не type) точек, с 20000 тысячью надо выжимать помаксимуму. типа такого starpos#(40000,3).
Далее, джопустим за 1 игровой цикл проверяеш 1000 таких точек, если они появились достаточно близко к камере, то стаивш на ето место звезду.

Заставил задуматься.

спс.

Delta_Q 30.09.2007 17:18

Re: Звёзды. звёзды (небесные в смысле)
 
Вот пару способов:
1) Звезды будут не сферами, а точками со светимостью и если игрок приближеться к такой точки на дистанцию реиндеренга то трансформировать точьку в сферу и текстуру.
2) Сделать сферу на границе реиндеренга и генерировать текстуру на сферу по вектору от препологаемой звезды. Т.е. Вы будите видеть не саму звезду а ее проекцию на сферу. Но как тока вы приблизитесь к объекту на растояние видимости то прекращать отрисовывать объект на сфере а уже в сцену прорисовывать CreateSprite с натянутыми на нее текстурами.

HolyDel 30.09.2007 19:59

Re: Звёзды. звёзды (небесные в смысле)
 
20000 точек блиц тоже не выдержит.

tormoz 30.09.2007 22:27

Re: Звёзды. звёзды (небесные в смысле)
 
фон- скай сфера с текстурой
и 2 массива по 200 объектов.
звезды и астероиды.
система непрерывного полета: расставляются рандомно вокруг камеры.
и проверяй в цикле на расстояние от камеры. если расстояние больше определенного. то: разворачиваешь объект на камеру (пойнт ентити) и двигаешь на 2 радиуса.
Еще можно сделать эффект ускорения:
скейлиш объект по квадрату(кубу) расстояния от камеры.

magpro 01.10.2007 00:14

Re: Звёзды. звёзды (небесные в смысле)
 
есть ещё вариант создать модель в максе. Звёзды.

Только маленькие сферы в огромном колличестве.

Загрузить этот мешь + спрайты + сферы и думаю колличество будет норм.

Crystal 02.10.2007 00:02

Re: Звёзды. звёзды (небесные в смысле)
 
Мне кажется играть в бога и тварить вселенную в блитце не очень удачная затея. Ты хоть поиграй в другие космические симуляторы посмотри как там всё. Никто нигде не захламляет всё пространство звёздами. И вообще мир на локации надо разбивать по системам или созвездиям.

Ты хоть космическую леталку делаеш или что?
На кой чёрт тебе 20 тыщ звёзд? Главная звезда в центре системы в определённой локации, а всё остальное скай бокс надо делать.

magpro 02.10.2007 11:13

Re: Звёзды. звёзды (небесные в смысле)
 
Цитата:

Сообщение от Crystal
Мне кажется играть в бога и тварить вселенную в блитце не очень удачная затея. Ты хоть поиграй в другие космические симуляторы посмотри как там всё. Никто нигде не захламляет всё пространство звёздами. И вообще мир на локации надо разбивать по системам или созвездиям.

Ты хоть космическую леталку делаеш или что?
На кой чёрт тебе 20 тыщ звёзд? Главная звезда в центре системы в определённой локации, а всё остальное скай бокс надо делать.


Знаешь что такое опыт?
Так вот я себе хочу получить опыт. Делая что получится. ставля цели и добиваясь их.
На данный момент мне интересно как организовать огромное колличество объектов и чтоб ПК не тормозил от этого.



Вот к примеру на данном этапе думаю о:

-Выстреле при нажатию на кнопку;
-О размытии;
-И пламени из сопла.


Если кто может помочь, с радастью приму помощь. заранее спасибо.

Crystal 02.10.2007 11:44

Re: Звёзды. звёзды (небесные в смысле)
 
Чем больше объектов ставиш тем больше тормозит и ничё ты с этим не сделаеш, чем больше объектов тем выше должны быть характеристики компа на котором ты это запустиш.

А насчёт как сделать выстрел тебе сюда
http://www.boolean.name/showthread.php?t=4123


И вообще ты что там делаеш? Скрины выложи в этой теме:
http://www.boolean.name/showthread.php?t=4121&page=16

jimon 02.10.2007 18:59

Re: Звёзды. звёзды (небесные в смысле)
 
для большого количества одинаковых обьектов лутче юзать
тогда geometry instancing , но апаратно он есть тока в directx 9

в принципе делается только локальная система обьектами
остальное делается усложненой скайсферой

размытие - простым blurом делается

след от корабля - не сложными партиклами

HolyDel 03.10.2007 00:55

Re: Звёзды. звёзды (небесные в смысле)
 
след от корабля можно сюрфейсом, в котором просто меянются вертексы, позиция, цвет, текстурные координаты, таким же макаром можно делать шлейф от ракет.

-=SCiP=- 03.10.2007 01:57

Re: Звёзды. звёзды (небесные в смысле)
 
Ну насчет следа от коробля я еще одну идейку подкину!
Только несмейтись!
Я брал бокс натягивал текстуру огня делал EntityAlpha при нажатии вперед бокс или даже можно целиндр делал ScaleE кагбуто огонь растягивается анимировал текстуру и получался огони (кросивый)
а насчет следа от коробля виде дыма можно создовать спрайты в определенный промежуток времени фиксировать позицию коробля и создать спрайт...

magpro 03.10.2007 23:58

Re: Звёзды. звёзды (небесные в смысле)
 
Ясно. спасибо. Буду думать


Часовой пояс GMT +4, время: 22:49.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot