Войти
ПроектыФорумОцените

SpaceWay: Вселенная без границ (4 стр)

Страницы: 13 4 5 628 Следующая »
#45
19:10, 13 сен. 2009

  На скриншотах, на склонах кратеров, видна какя-то "зубастость" текстуры.  Такое ощущение, что раскраска поверхность осуществляется не текстурой, а просто заданием цвета вершины. Я прав? Или просто разрешение текстуры низкое?
  Если верно первое, то устранить "зубастость" можно, сохраняя не цвет вершины, а координаты в некой цветовой текстуре, а в пиксельном шейдере вычислять высоту пикселя (или расстояние от центра планеты) и брать нужный цвет из текстуры, корректируя те "цветовые координаты". Тогда например линия снега будет строго горизонтальной. Небольшие флуктуации можно легко добавить, зашумив координаты, или просто размазав цветовую текстуру.


#46
19:33, 13 сен. 2009

Обновил демо, от 13.9.2009:
http://orbides.1gb.ru/sway/sway-090913-win32_bin.zip (3.7 Мб)
Оптимизировано для многоядерных систем, на одноядерных возможны детерминированные тормоза.

Neptune
> На скриншотах, на склонах кратеров, видна какя-то "зубастость" текстуры.
> Такое ощущение, что раскраска поверхность осуществляется не текстурой, а просто
> заданием цвета вершины. Я прав? Или просто разрешение текстуры низкое?
Нет, цвета задаются текстурами, 32х32 на блок.
Генерация раскраски идёт по некой фрактальной функции, вывод из которой и становится текстурами.
Некая зубастость как поверхности кратеров, так и резких изменений цвета - издержки алгоритма.

При разглядывании поверхности в упор, функции цвета распадаются и расплываются, делая поверхность невнятной. Это частично исправляется наложением детальной текстуры на основную, но пока сделано невнятно и с ощутимым переходом.

#47
20:03, 13 сен. 2009

А просто увеличить разрешение текстуры? Или это чревато слишком большими тормозами? Имхо, 32х32 это очень мало, много потеряешь на переключении текстур. А какой размер сетки рельефа?
В моем движке текстуры 512х512, рельеф 32х32 вершины.

#48
20:04, 13 сен. 2009

Кстати, как делаешь стыковку текстур, чтоб не было видно шва? Дополнительными пикселями по периметру?

#49
22:04, 13 сен. 2009

Блоки - 9 на 9 вершин. Если есть шов с соседним блоком - то высота каждой чётной вершины приравнивается к значению соседнего блока.
И логика разбивки предотвращает возникновение швов с разницей более чем в 1 подраздел.

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

#50
21:11, 14 сен. 2009

Artlav
> Блоки - 9 на 9 вершин.
А не маловато-ли? Современному железу 10к вершин одним блоком подавай)))
Я имел в виду стыковки текстур: http://www.gamedev.ru/code/forum/?id=123283

> На переключениях теряется немного - вычисления всёравно занимают несравнимо больше.
У тебя что, в каждом кадре какие-то вычисления?

#51
21:59, 14 сен. 2009

Neptune
> А не маловато-ли? Современному железу 10к вершин одним блоком подавай)))
А толку? Текстура на блок одна, разрешением 32х32. Если блоки делать больше, то разрешение текстур будет падать относительно рельефа.
Если же увеличить и то и это - стоит попробовать...

> Я имел в виду стыковки текстур: http://www.gamedev.ru/code/forum/?id=123283
Всё равно не понял, в чём проблема.
Может скрины в той теме выложишь?
Текстуры у меня одна к другой подходят по определению - одной функции дети всётаки.

> У тебя что, в каждом кадре какие-то вычисления?
Работает вторая нить, или если ядро одно - то да, на каждом кадре в течении заданного в настройках времени идёт рассчёт текстур.

#52
0:11, 15 сен. 2009

Вот была еще тема про стыковку текстур, там есть скрины:
http://www.gamedev.ru/code/forum/?id=95197

Ты не замерял, сколько времени работают функции генерации текстур? Мне тоже нужны процедурные планеты, причем движок сильно переделывать не хочется, было бы классно просто заменить функцию загрузки текстуры из файла на функцию генерации.
У меня при приземлении на Землю (детализация примерно 0.3 км на пиксель) загрузка занимает 4-5 сек, при этом грузится 80 текстур, занимая 192 метра, и создается 60 мешей, занимая 12 метров:) (Просто отсечение невидимой геометрии кривовато работает:) Если бы генерация так же шустро работала, было бы круто))

#53
21:12, 17 сен. 2009

Маленькие ли планеты?
Если кому ещё интересно - постараюсь показать масштаб движка, как впрочем и пару новых фич.
Тени на поверхностях особенно подчёркивают масштаб, ну и небо улучшено.

Итак, общий вид с планете в системе с тремя солнцами:
Изображение

Припаркованный у звёздных врат истребитель:
Изображение

Висящий над ним крейсер и упавший разведчик:
Изображение

Крейсер на фоне горы:
Изображение

Гора на фоне гряды:
Изображение

Гряда на фоне района:
Изображение

Район на фоне полушария:
Изображение

Полушарие на фоне космоса:
Изображение

Что скажите?
Можно из этого игру сваять, или пустая трата времени?

Neptune
> Вот была еще тема про стыковку текстур, там есть скрины:
Не знаю. У меня как-то такой проблемы не возникало.
Может, дело в самих текстурах?
Может выключит заворот текстур:

   glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE);
   glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE); 
?

Neptune
> Ты не замерял, сколько времени работают функции генерации текстур? Мне тоже
> нужны процедурные планеты, причем движок сильно переделывать не хочется, было
> бы классно просто заменить функцию загрузки текстуры из файла на функцию
> генерации.
Текстуры 8192х4096 всей планеты генерируются много минут.
Если их генерировать поблочно - у поверхности равновесие достигается секунд за 10.

Просто заменить функцию загрузки на генерацию врядли выйдет, нужно многое переделывать.

#54
23:12, 17 сен. 2009

1) Почему корона от красного солнца - белая? :)
2) Этот зверский ambient специально сделан, чтоб все было видно, или это освещение третьим солнцем? (Ты кажется раньше говорил, что множественные источники света не поддерживаются полноценно)
3) Просто скажи, какой радиус планеты в км:)
4) Правка: И какой минимальный размер деталей в см:)

По поводу текстур: вот у тебя на скрина видны то ли щели в геометрии, то ли нестыковка нормал мапов (особенно на скрине номер 4). А на втором скрине кажется даже сами текстуры цвета не стыкуются, видна линия перед вратами, а детали вблизи нее как-то читерски сходят на нет:)

>Текстуры 8192х4096 всей планеты генерируются много минут.
Не пробовал кэшировать их на диск? А то ждать столько...

>Просто заменить функцию загрузки на генерацию врядли выйдет, нужно многое переделывать.
А как ты делал загрузку реальных данных (скрины в теме про раскраску планет для чайников)? Это же получается обратная задача...

#55
23:14, 17 сен. 2009

Кстати, я чё-то не могу разобраться с управлением в демке. Там можно включить свободный полет камеры, без физики? А то корабль быстро пролетает, ничего не успеваю разглядеть...

#56
0:11, 18 сен. 2009

Neptune
> 1) Почему корона от красного солнца - белая? :)
Шут его знает.
Но, покрасить не сложно:
Изображение

Neptune
> 2) Этот зверский ambient специально сделан, чтоб все было видно, или это
> освещение третьим солнцем?
Чтоб было видно. Свет идёт только от ближайшего солнца.
Тут ещё такая беда - поверхность то белая, свет отражает обратно, да? Значит, амбиент нужен.

Neptune
> По поводу текстур: вот у тебя на скрина видны то ли щели в геометрии, то ли
> нестыковка нормал мапов (особенно на скрине номер 4). А на втором скрине
> кажется даже сами текстуры цвета не стыкуются, видна линия перед вратами, а
> детали вблизи нее как-то читерски сходят на нет:)
Большой желоб и выступы - это не состыкуются плиты между сторонами базового куба, глюк локализованный и не достаточно пока навязчивый, чтобы с ним колупаться.
Текстуры деталей не состыкуются, верно (как видно и на новой картинке). Тут дело просто в том, что они пока грузятся с диска, а не генерируются, потому и не подходят друг к другу. Опять таки, деталь с низким приоритетом.

> Не пробовал кэшировать их на диск? А то ждать столько...
Такого размера текстуры генерировались только для экспорта систем в симулятор Orbiter, в игре этого не делается. Максимальная целая текстура - 512х256, генерируется секунд 5 параллельно со всем остальным.

> А как ты делал загрузку реальных данных (скрины в теме про раскраску планет для
> чайников)? Это же получается обратная задача...
Обратная задача часто имеет совсем иной порядок сложности. В данном случае делается элементарно - задаётся функция, выводящая файл с диска (понятное дело, из буфера в памяти).

> Кстати, я чё-то не могу разобраться с управлением в демке. Там можно включить
> свободный полет камеры, без физики? А то корабль быстро пролетает, ничего не
> успеваю разглядеть...
Надо удалить data/scn/current.state
Тогда при запуске будет режим по умолчанию - астрономический вид, система B0x0.
(Тормоза для гипердвигателя - Shift+-)

#57
17:54, 18 сен. 2009

Artlav
>Можно из этого игру сваять, или пустая трата времени?
Да можно, если озаботиться геймплеем, а не бесполезными фичами.

#58
20:30, 18 сен. 2009

Artlav
> Тут ещё такая беда - поверхность то белая, свет отражает обратно, да? Значит, амбиент нужен.
Точнее нужен radiosity:))) Да и неплохо было бы цвет солнца учитывать при освещении планеты. Раз самое яркое солнце красное, что и свет от него красный.
Несколько солнц лекго учесть, надо просто написать версии всех шейдеров для 1,2,3 и т.д. источников. У меня тоже такая проблема стоит, плюс еще по версии для наличия и отсутствия атмосферы, колец, и лун, отбрасывающих тени. Вот хотел написать генератор шейдеров, но посоветовали юзать CgFX...
Как тени от корабля делал, стенсил или шадоу мап?

#59
3:29, 2 ноя. 2009

Рекомендую к прочтению серию Ливадного "Экспансия": http://livadnyy.ru/index.php?id=15 . Если нужно, могу посоветовать где взять просто почитать, без покупки, всё-таки 50 произведений. Если что - могу подсоветовать какие из книг взять за основу (там динамичнее и эпичнее). А для начала рекомендую "Дабог". Тама как раз Первая Галактическая началась. Может заинтересует в качестве сюжетной линии.

Страницы: 13 4 5 628 Следующая »
ПроектыФорумОцените

Тема в архиве.