Войти
ПроектыФорумУтилиты

Космический симулятор SpaceEngine (152 стр)

Страницы: 1151 152 153 154217 Следующая »
#2265
22:43, 7 дек 2011

В принципе я сделал нормали без данных с соседей, но смотрится не очень хорошо! С высоты видны косяки. Кстати а в ситуации когда один меш стыкуется к другому, но у них детализации разные и я уменьшаю детализацию по краям у нужного меша - какую там ставить нормаль? То есть там надо сделать вид буд-то вершины и нет, но какая тогда будет нормаль? Средняя между двумя соседними на грани?


#2266
1:35, 8 дек 2011

Artlav
> Однако...
> Блин, шустро же такое у тебя работает.
При том что вычисляется десяток разных шумовых функций по 10-15 октав, куча IF-ов и математики... GPU рулит однако:)

AIIIBAP
> самая жесть у тебя - это взятие соседних пикселей с соседних патчей.
У меня нет такого - я просто генерирую карту высот на пиксель шире, как сказал Mefistofel. Так и нормали правильно строятся, и при рендере устраняется шов между текстурами. Правда косяк в том, что текстуру всё равно надо делать степень двойки (256*256), иначе видюха неэффективно расходует память на хранение текстур 258*258. Так что приходится масштабировать всё так, чтобы "рабочая" часть текстуры была 254*254, а ряд пикселей по периметру - для стыковки с соседними (при рендере они не видны, зато трилинейная фильтрация даёт правильный результат - стык не виден). Из-за того что меш 33*33, а текстура 254*254, у меня косяк - на краю текстуры по три вершины дублируются, и появляется заметная полоса на ландшафте, плоский "карниз" такой.

AIIIBAP
> Я просто решил схитрить. У меня планета в памяти ничего почти не занимает и
> генерится на лету - я пользуюсь своей собственной функцией для случайных чисел,
> и мне вообще не надо хранить ничего кроме того что уже на экране или вскоре на
> нём появится.
Это как? Трассировкой луча с генерацией высоты и цвета на лету или что? У меня вот например довольно сложный шейдер генерирует 256*256 высот за 1-10 мс. А у тебя сколько вершин в кадре? И всё успевает генериться на лету? А цвет генерируется повершинный или попиксельный?

Mefistofel
> Я кстати тоже буквально вчера попробовал сделать все на гпу - процессор просто
> выводит меши сферы с нужной детализацией, а шейдер поднимает поверхность и
> генерирует диффуз(простой градиент) по функции шума. Работает бодро, но если
> считать нормали+нормальную текстуру поверхности+тени+постэффекты, я думаю будет
> не экономично, буду делать сохранение в текстуры.
Хм... Я вот тоже думаю отказаться от построения мешей на CPU, а использовать один и тот же меш, и поднимать вершины в вершинном шейдере при рендере планеты. Тогда не надо будет перекачивать карту высот на CPU. А для физики ведь не нужны все карты высот сразу, только те, где находится объект, причём можно сразу сгенерить самый детальный патч, специально для объекта, хотя детализация рендера этого участка поверхности может быть ещё низкой, или его вообще ещё может не быть на экране и в памяти.
Но кэшировать в текстуры имхо обязательно. Простой 10-октавный Перлин может ещё и шустро работает в реал-тайме, но красивую поверхность с ним не получить. А потом захочется рассчитывать эрозию, а это пара сотен проходов над текстурой/массивом - в реал-тайме такое юудет возможно где-то к 2020 году :-) А с кэшированием - без проблем работает уже сейчас, причём даже на CPU.

Mefistofel
> Можно попробовать считать нормали без карты высот сразу по шуму, тогда не надо
> возится с краями.
Можно, но это медленно, особенно если функция высот сложная как у меня. Я рантше карту цвета генерировал без высот - вычислял их заново точно такой же функцией. Хотя высоту можно было взять из карты нормалей (она у меня в альфе хранится). Просто думал что 8-битной точности будет мало, но оказалось вполне достаточно - ведь к значению высоты всё равно прибавляется небольшой плавнй шум, чтобы снеговая линия и т.п. не получалась идеально горизонтальной. Убрал повторное вычисление высот при генерации цвета - всё стало генерироваться в 1.5-2 раза быстрее.


Mefistofel
> а как карту высот считываешь в память CPU? Текстуру можно вернуть как массив?
glGetTexImage

AIIIBAP
> Кстати а в ситуации когда один меш стыкуется к другому, но у них детализации
> разные и я уменьшаю детализацию по краям у нужного меша - какую там ставить
> нормаль? То есть там надо сделать вид буд-то вершины и нет, но какая тогда
> будет нормаль? Средняя между двумя соседними на грани?
Я забил на эти тонкости. Меши разных детализаций стыкуются вдалеке, и в большинстве случаев наблюдаются под острым углом (взгляд вдоль поверхности), поэтому это не заметно.

Гораздо большая проблема - далёкие горы идут треугольными зубами из-за недостаточной детализации меша, ну и геоморфинга нет - при движении детализация переключается резко, это бросается в глаза. Если делать поднятие вершин во фрагментном шейдере, можно почти нахаляву и геоморфинг сделать.

#2267
2:09, 8 дек 2011

Neptune

В ролике такие крутые трехмерные облака и ландшафт, а у меня почему-то все плоскостями без текстур. Что я делаю не так?

Win7 32 / i7 / 4Gb RAM / GTX285 1Gb / Последние драйвера

#2268
4:03, 8 дек 2011

DEN
> В ролике такие крутые трехмерные облака и ландшафт, а у меня почему-то все
> плоскостями без текстур. Что я делаю не так?
Покажи скриншот.
ЗЫ: облака как раз плоские и должны быть.

#2269
4:23, 8 дек 2011

Neptune

Ну не то чтобы без текстур. Просто по сравнению с видео, у меня такой лоу-дитейл, что на экране просто какая-то размазня.

Изображение
#2270
17:21, 8 дек 2011

DEN
> Ну не то чтобы без текстур. Просто по сравнению с видео, у меня такой
> лоу-дитейл, что на экране просто какая-то размазня.
Я так и знал))) Земля, Марс, Луна и т.д. - не процедурные планеты, у них текстуры грузятся из файлов. Лети к другим звёздам, у их планет будет процедурный ландшафт как на видео.

#2271
17:26, 8 дек 2011

Neptune
как обстоят дела с оживлением планет?
какие нибудь города/леса/поля и реки планируются?

#2272
19:18, 8 дек 2011

koaa310
Не приоритет пока.

#2273
1:11, 9 дек 2011

Neptune

Летал наверно пол часа, но планету с травой (как в начале ролика) так и не нашел. Не подскажешь способ найти похожую планету? :)

#2274
1:59, 9 дек 2011

DEN
> Летал наверно пол часа, но планету с травой (как в начале ролика) так и не
> нашел. Не подскажешь способ найти похожую планету? :)
Ищи комфортные терры с жизнью. Они бывают у звёзд жёлтых и красных карликов.

#2275
9:21, 11 дек 2011

Neptune
Я правильно понимаю, что у тебя (как и у целестии) сделан только Virgo Supercluster? пикча (16 метров)

#2276
9:25, 11 дек 2011

Это не Virgo Supercluster, а все галактики каталога NGC/IC. Кроме скопления Девы (Virgo), там есть скопление Волосы Вероники и другие. Всего около 12000 галактик.

#2277
14:42, 11 дек 2011

Вот, картинка которую имел ввиду Ден.
сделал её поменьше, что бы в экран по высоте влезала :)
а то там она уж больно огромная
http://aigenerator.net/Games/Galaxy/universe_map.jpg

кстати, хороший формат для карты навигации.

#2278
18:09, 11 дек 2011

Neptune
> Всего около 12000 галактик.
Насколько я помню, в наблюдаемой части вселенной ~100 миллиардов галактик. Планируешь расширять базу?
Алсо да, все забываю сказать: SpaceEngine - это круто :)

#2279
20:45, 11 дек 2011

>> Всего около 12000 галактик.
>Насколько я помню, в наблюдаемой части вселенной ~100 миллиардов галактик. Планируешь расширять базу?
Ты уже всё облетал и тебе мало? :)

Страницы: 1151 152 153 154217 Следующая »
ПроектыФорумУтилиты