|
SpaceEngine TODO - обновлено 11 июля 2016
|
|
| SpaceEngineer | Дата: Пятница, 16.09.2011, 03:37 | Сообщение # 136 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Блин, у меня уже столько статей скопилось, мне на одно их чтение потребуется неделя:) Потом надо выбрать самый подходящий метод для облаков, или собрать по чуть-чуть отовсюду.
|
|
|
| |
| Duke | Дата: Пятница, 16.09.2011, 19:33 | Сообщение # 137 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Quote (SpaceEngineer) Блин, у меня уже столько статей скопилось, мне на одно их чтение потребуется неделя:) Я тогда, наверно, до выхода новой версии пока не буду ничего нового постить :-)
Но напоследок, не пробывал ли ты использовать вместо Perlin Noise Simplex Noise http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf По описанию он требует меньше ресурсов и дает меньше артефактов. Правда существуют некоторые проблемы с реализацией его на GPU и поэтому он пока не дает такого существенного превосходства в скорости над Perlin Noise как на CPU. Однако возможно стоит поэксперементировать с ним, он все же быстрее. Реализации на GLSL видел здесь : http://www.davidcornette.com/glsl/GLSL-noise.zip http://www.geeks3d.com/2011031....-opengl http://staffwww.itn.liu.se/~stegu/simplexnoise/ https://github.com/ashima....src http://ahmedsharif.wordpress.com/2011....nd-glsl
Сообщение отредактировал Duke - Пятница, 16.09.2011, 22:00 |
|
|
| |
| SpaceEngineer | Дата: Пятница, 16.09.2011, 22:40 | Сообщение # 138 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Quote (Duke) Но напоследок, не пробывал ли ты использовать вместо Perlin Noise Simplex Noise Пока не пробовал, не до него. Когда займусь анимацией текстур, он может пригодиться: там нужен будет 4D шум, а Перлин емеет сложность O(2^N), тогда как симплекс всего лишь O(N) - выгода очевидна.
|
|
|
| |
| Duke | Дата: Воскресенье, 18.09.2011, 14:36 | Сообщение # 139 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Quote (SpaceEngineer) Я уже это сделал - разбил на отдельные шейдеры для терры, селены, газового гиганта и т.д. Но всё равно они используют общие функции - Noise, Noise3D, fBm, Multifractal, Cell, Crater и т.д., которые занимают 80% шейдера. А эти общие функции находятся в отдельных файлах и вызываются из шейдеров терры, селены и т.д. или дублируются в каждом из них?
|
|
|
| |
| SpaceEngineer | Дата: Воскресенье, 18.09.2011, 17:51 | Сообщение # 140 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Конечно дублируются. На CPU есть такая фича - динамически подключаемые библиотеки (dll), которые один раз грузятся в память, и могуь быть использованы разными программами. На GPU такого нет.
|
|
|
| |
| Duke | Дата: Понедельник, 19.09.2011, 20:11 | Сообщение # 141 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Видел тему о проблеме коррекции цветов текстур. Взможно что нибудь такое http://http.developer.nvidia.com/GPUGems/gpugems_ch22.html подойдет?
|
|
|
| |
| SpaceEngineer | Дата: Вторник, 20.09.2011, 03:38 | Сообщение # 142 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| О, спасибо, может пригодится.
|
|
|
| |
| Duke | Дата: Понедельник, 26.09.2011, 22:21 | Сообщение # 143 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Видел пост на gamedev насчет воды. Камени здесь http://www.outerra.com/forum/index.php?topic=274.0 и здесь в коментариях http://outerra.blogspot.com/2011/02/ocean-rendering.html писал что в outerra для воды использовал quad-tree. Возможно для нее не потребуется особо детальных уровней меша. Насчет самой воды, попался такой код шейдера http://code.google.com/p....?r=6373 для OpenGL. Насколько я понимаю это перевод на GLSL кода шейдера из этой http://www.gamedev.net/page....t-r2642 статьи, где вода делается как раз как Post-process Effect. Видео OpenGL реализации данного шейдера можно оценить здесь http://jmonkeyengine.org/2011....ngine-3 P.S.: Если захочешь реализовать напрвление волн на берег, возможно пригодится реализаци Sobel filter на glsl отсюда http://www.geeks3d.com/2011020....mo-glsl
Добавлено (22.09.2011, 19:01) --------------------------------------------- Цитата SpaceEngineer О, спасибо, может пригодится. Если не ошибаюсь реализацию этого шейдера можно найти на этой http://developer.download.nvidia.com/shaderl....ry.html странице если дать поиск по "post color curve". Если же поискать по "color conversion" на той же странице можно найти реализации шейдеров "post RGB to HSV" и "post RGB from HSV", возможно пригодится.
Добавлено (24.09.2011, 19:29) --------------------------------------------- Поискал немного информацию насчет проблемы z-fighting. Часто эту проблему поднимали при рендеринге прозрачных и вложенных объектов и рассматривали варианты рендеринга без сортировки треугольников. В этой ветке http://www.opengl.org/discuss....=289998 упоминали несколько алгоритмов с их достоинствами и недостатками. Несколько методов для рендеринга прозрачных объектов от NVIDIA видел в этом документе http://developer.download.nvidia.com/SDK....ing.pdf (исходники и реализация здесь http://developer.download.nvidia.com/SDK....ing.zip ). Так же видел несколько упоминаний этого http://research.microsoft.com/apps/pubs/default.aspx?id=70307 метода.
Добавлено (26.09.2011, 22:21) --------------------------------------------- Наткнулся в интернете на этот ролик http://www.youtube.com/watch?v=asxs8VnhfK8 . Там в комментариях есть описание алгоритма отслеживани столкновения с поверхностью в пиксельном шейдере и дается ссылка на этот сайт http://www.greenleaf.dk/projects/proceduralplanet . На сайте кроме описания реализации детектора столкновения с поверхностью есть еще описание их алгоритма для генерации рек на процедурных планетах. Как я когда-то предлагал, они используют несколько заранее просчитанных вариантов рек и накладывают их на рельеф. Возможно что-то из их идей окажется полезным.
Сообщение отредактировал Duke - Понедельник, 26.09.2011, 22:21 |
|
|
| |
| SpaceEngineer | Дата: Понедельник, 03.10.2011, 15:54 | Сообщение # 144 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| У меня была идея использовать рендер в небольшую текстурку для получения высоты рельефа под кораблём. Но это не решит проблемы проверки столкновения с почти отвесной стеной. В общем, поковыряю их пример. Проблема сразу видна - на большой скорости можно проскочить сквозь поверхность.
|
|
|
| |
| GV_FiQst | Дата: Среда, 05.10.2011, 17:48 | Сообщение # 145 |
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
| Есть одна идея, я не знал куда ее выложить, поэтому пишу сюда.
Если вы собираетесь добавить у Space Engine космические корабли, тогда зделайте уже и космические станции, которые будут обращатся вокруг процедурных планет. Можно ввести новую зменную по имени LifeDevelopment, которая будет принимать значения от 1 до 5. 1 - племенная стадия (в общей сложности от зарождения умной жизни до конца пройдет около 4 000 000 лет) 2 - слабо розвинутая цивилизация (где-то от 50 000 лет до н.э. до 5 000 лет до н.э.) 3 - средне развинутая цивилизация где-то (от 5 000 лет до н.э. до 1 000 лет н.э) 4 - сильно розвинутая цивилизация (от 1 000 лет н.э. до 2500 лет н.э) и наконец 5 - космическая империя (от 2500 лет н.э и до конца существования рассы). Но LifeDevelopment может принимать значение 0 (тогда жизни нет вообще). Если 1 тогда будут пещеры по всей планете где будут они жыть. Если 2 то уже будут города с палатками или еще какими-то жилищами. Если 3 тогда будут города с каменными домами. Если 4 тогда будут уже современные дома и 2-3 космические станции на орбите. Если 5 тогда огромнийшые города с летающими там средствами передвижения, 6-7 огромнийших космических станций на орбите (одна с которых будет портом) все терры етой системы колонизованы этой расой и их спутник тоже колонизован.
Code Begin Randomize; If Life = true then LifeDevelopment:= random(5); If LifeDevelopment = 0 then LifeDevelopment:= random(5); If Life = false then LifeDevelopment:= 0; If LifeDevelopment = 1 then (добавить пещеры); If LifeDevelopment = 1 then (подождать 4 000 000 лет игрового времени); LifeDevelopment:= 2; If LifeDevelopment = 2 then (добавить несколько городов около воды); If LifeDevelopment = 2 then (подождать 45 000 лет игрового времени); LifeDevelopment:= 3; If LifeDevelopment = 3 then (добавить больше городов тоже коло воды); If LifeDevelopment = 3 then (подождать 6 000 лет игрового времени); LifeDevelopment:= 4; If LifeDevelopment = 4 then (добавить еще больше городов. на этот раз можно добавлять города не около воды. добавить 2-3 космические станции на орбите.); If LifeDevelopment = 4 then (подождать 1 500 лет игрового времени); LifeDevelopment:= 5; If LifeDevelopment = 5 then (добавить огромнийшые города с летающими там средствами передвижения, 6-7 огромнийших космических станций на орбите, одна с которых будет портом); If LifeDevelopment = 5 then (на всех террах и спутнике этой планеты (Life:= true) and (LifeDevelopment:= 5)); End;
AMD Phenom II X2 555 3200 MHz; RAM 4GB 1333 Hz; ATI Radeon HD 5670 1024 Mb; ОС Win 7 tabulorasa edition 32 bit
|
|
|
| |
| SpaceEngineer | Дата: Среда, 05.10.2011, 19:31 | Сообщение # 146 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Не, до этого ещё рано. Процедурные города, процедурная жизнь - это очень не просто. Мне бы галактики и туманности сначала доделать
|
|
|
| |
| GV_FiQst | Дата: Понедельник, 10.10.2011, 20:55 | Сообщение # 147 |
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
| А нельзя ли зделать кнопку переименования процедурных планет???. А то сложно коды запоминать. А так легко переименовал у какое-то название и готово. А то с другом я розговариваю: Я: Видел новую планету, забыл сохранить=((( Он: Крутая была??? Я: Ну да. Такая вся зеленая=)) Он: Как називалась??? Я: как-то так RS 216546-4521 5548-455 454-4554 ... а потом не помню. Он: жаль=((( =)))
Если это возможно для меня, зделаю сам, только скажите как. Потом изменненый конфиг или какой там файл пришлю.=))
AMD Phenom II X2 555 3200 MHz; RAM 4GB 1333 Hz; ATI Radeon HD 5670 1024 Mb; ОС Win 7 tabulorasa edition 32 bit
Сообщение отредактировал GV_FiQst - Понедельник, 10.10.2011, 20:56 |
|
|
| |
| SpaceEngineer | Дата: Вторник, 11.10.2011, 01:41 | Сообщение # 148 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| GV_FiQst Сохраняй в локцаии (F6) и копируй в сообщение код из файла config/places.cfg
Постарайся писать посты в правильные треды. Здесь это - оффтоп.
|
|
|
| |
| Duke | Дата: Пятница, 14.10.2011, 20:30 | Сообщение # 149 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Quote (SpaceEngineer) Я уже это сделал - разбил на отдельные шейдеры для терры, селены, газового гиганта и т.д. Но всё равно они используют общие функции - Noise, Noise3D, fBm, Multifractal, Cell, Crater и т.д., которые занимают 80% шейдера. Судя по этим http://objectmix.com/graphic....er.html http://www.opengl.org/discuss....=222219 ссылкам можно выделить некоторые функции в отдельный шейдер. Насколько я понял надо будет только этот шейдер прилинковать, а в том шейдере откуда будут вызываться эти функции их надо объявить. Хотя возможно в SE это уже используется и я просто неправильно понял ответ.
|
|
|
| |
| SpaceEngineer | Дата: Пятница, 14.10.2011, 22:17 | Сообщение # 150 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Да, вот только как это реализовано в железе? Подозреваю, что тупо копированием кода в один большой шейдер. Потому что GPU это не CPU, у него другая архитектура.
|
|
|
| |