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 с натянутыми на нее текстурами.


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

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