|
3D-программирование Вопросы, касающиеся программирования 3D мира |
29.09.2007, 15:54
|
#1
|
Разработчик
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений (для 7 пользователей)
|
Звёзды. звёзды (небесные в смысле)
В общем такое дело.
Хочу сделать космос с большим кол-вом звёзд (с очень большим колличеством).
Создавать в цикле сферы это ухудшит на много скорость игры.
И вот думаю что делать. Мож кто подскажет?
Я сейчас думаю о материнских и т.п. объектов. Мож это поможет?
Заранее спасибо.
__________________
Никто не запомнит тебя за твои мысли...
|
(Offline)
|
|
29.09.2007, 16:17
|
#2
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
CreateSprite ( [parent] )
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
29.09.2007, 16:51
|
#3
|
Разработчик
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Сообщение от magpro
Я сейчас думаю о материнских и т.п. объектов. Мож это поможет?
|
это и иммел в веду.
Сообщение от impersonalis
CreateSprite ( [parent] )
|
спс.
__________________
Никто не запомнит тебя за твои мысли...
|
(Offline)
|
|
29.09.2007, 16:56
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
может просто извернуть десяток сфер разного радиуса с нанесеннвми на них текстурами звездного неба?
если уж надо спрайтами, то лучше все ето дело запихнуть в один/два меша, а то тормозить будет.
|
(Offline)
|
|
29.09.2007, 16:59
|
#5
|
Разработчик
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений (для 7 пользователей)
|
Всётаки тормозит=(
Сообщение от HolyDel
может просто извернуть десяток сфер разного радиуса с нанесеннвми на них текстурами звездного неба?
если уж надо спрайтами, то лучше все ето дело запихнуть в один/два меша, а то тормозить будет.
|
спрайтами говоришь?
Надо посмотреть
__________________
Никто не запомнит тебя за твои мысли...
|
(Offline)
|
|
29.09.2007, 17:37
|
#6
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Юзай партиклы
|
(Offline)
|
|
29.09.2007, 18:26
|
#7
|
Разработчик
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Сообщение от ЛысыЙ_Чук-Иванчук
Юзай партиклы
|
Можно подробней как это реализовать?
__________________
Никто не запомнит тебя за твои мысли...
|
(Offline)
|
|
29.09.2007, 22:03
|
#8
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Вот какая система может быть: сначало делаешь обычный skybox(или skyshere=) ) кладешь на нее тексу звездного неба и скалишь ее так чтоб границы совпадали со вторым значением в команде camerarange, то есть с дальностью видимости. Далее делаешь свою систему ЛОДа. На словах она будет такой: если объект ближе чем значение дальности видимости, то показываем спрайт. Если звезда будет слишком близко, чтоб ее можно было рассмотреть, то показываем вместо спрайта сферу.
|
(Offline)
|
|
29.09.2007, 23:36
|
#9
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Можно подробней как это реализовать?
|
Да без проблем! создавай много спрайтов(можно заюзать либу для большого кол-ва объектов) и рандомно расставляеш спрайты по окружению!
|
(Offline)
|
|
29.09.2007, 23:38
|
#10
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Всегда звёзды это текстура скай бокса. нинадо ничего лишнего грузящего комп выдумывать.
|
(Offline)
|
|
29.09.2007, 23:45
|
#11
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Crystal, а если недо к этой звезде подлететь?
А если ето космический симулятор, и там от одной звезды до другой пролетаеш за 10 секунд, при этом "пролетая" окола 10 других звезд?
|
(Offline)
|
|
30.09.2007, 13:02
|
#12
|
Разработчик
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Скай боксами там не отделаться.
Я хочу сделать такой эффект что ты реально летишь по звёздному небу который напичкан звёздами, Звёздной пылью, каметами, астеройдами.
а в дали естественно будет бокс с текстурой звёзд.
Пока что нашёл такой выход.
Создаю 10'000 спрайтов звёзд + 10'000 сфер разного цвета и радиуса и размещаю их рандомно.
Вроде у меня не очень тормозит.
и мне 20 тыс маловато)
Хочу больше но когда делаешь больше 10 тыс объектов одного типа то он выдаёт ошибку рендинга.
ЧТобы всё не очень тормозило делаю у камеры фог.
__________________
Никто не запомнит тебя за твои мысли...
|
(Offline)
|
|
30.09.2007, 13:31
|
#13
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
АФИГЕТЬ КАМРАД!!!
Это же похоронит рендер не тока блица, но и любого другого движка ко всем чертям!
Размерность 3д?
То есть летать можно во всех трех направленях, или достаточно в 2-ух?
Какая нах разница, что ты делаеш фог? все равно ВСЕ эти 20000 оюъектов должны быть проверенны (каждый их вертес причем), на расстояние до камеры.
Алгоритм такой:
есть список объектов - которые следует удалить
есть список всех звезд - если звезда дальше определнного расстояние, то запихиваем ее в первй список.
каждая звезда это спрайт и сфера, что из показывать, а что спрятать определяеш через расстояние (Проверяеш ето естественно не каждый такт)
далее. у тебя есть массив!( не type) точек, с 20000 тысячью надо выжимать помаксимуму. типа такого starpos#(40000,3).
Далее, джопустим за 1 игровой цикл проверяеш 1000 таких точек, если они появились достаточно близко к камере, то стаивш на ето место звезду.
|
(Offline)
|
|
30.09.2007, 15:28
|
#14
|
Разработчик
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Сообщение от HolyDel
АФИГЕТЬ КАМРАД!!!
Это же похоронит рендер не тока блица, но и любого другого движка ко всем чертям!
Размерность 3д?
То есть летать можно во всех трех направленях, или достаточно в 2-ух?
Какая нах разница, что ты делаеш фог? все равно ВСЕ эти 20000 оюъектов должны быть проверенны (каждый их вертес причем), на расстояние до камеры.
Алгоритм такой:
есть список объектов - которые следует удалить
есть список всех звезд - если звезда дальше определнного расстояние, то запихиваем ее в первй список.
каждая звезда это спрайт и сфера, что из показывать, а что спрятать определяеш через расстояние (Проверяеш ето естественно не каждый такт)
далее. у тебя есть массив!( не type) точек, с 20000 тысячью надо выжимать помаксимуму. типа такого starpos#(40000,3).
Далее, джопустим за 1 игровой цикл проверяеш 1000 таких точек, если они появились достаточно близко к камере, то стаивш на ето место звезду.
|
Заставил задуматься.
спс.
__________________
Никто не запомнит тебя за твои мысли...
|
(Offline)
|
|
30.09.2007, 17:18
|
#15
|
Нуждающийся
Регистрация: 23.09.2007
Сообщений: 62
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Звёзды. звёзды (небесные в смысле)
Вот пару способов:
1) Звезды будут не сферами, а точками со светимостью и если игрок приближеться к такой точки на дистанцию реиндеренга то трансформировать точьку в сферу и текстуру.
2) Сделать сферу на границе реиндеренга и генерировать текстуру на сферу по вектору от препологаемой звезды. Т.е. Вы будите видеть не саму звезду а ее проекцию на сферу. Но как тока вы приблизитесь к объекту на растояние видимости то прекращать отрисовывать объект на сфере а уже в сцену прорисовывать CreateSprite с натянутыми на нее текстурами.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:29.
|