ENG Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 5 из 41«12345674041»
Форум » SpaceEngine » Состояние разработки » SpaceEngine TODO - обновлено 11 июля 2016 (Как будет выглядеть SpaceEngine 10.0)
SpaceEngine TODO - обновлено 11 июля 2016
SpaceEngineerДата: Среда, 10.08.2011, 21:05 | Сообщение # 61
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Quote (Duke)
Еще неплохой материал видел здесь http://www.g-truc.net/post-0256.html

Нет, это про использование стандартной GL функции glGenerateMipmap. Именно она почему-то приводит к крашу на некоторых видеокартах ATI (в этой статье про это сказано кстати). Поэтому я и хочу от неё избавиться, написав собственную функцию генерации мипмапов.

Quote (Duke)
Есть еще интересная статья в GPUGems

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


DukeДата: Среда, 10.08.2011, 21:24 | Сообщение # 62
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Для ATI видел функцию автоматической генерациии мипмапов с примером здесь http://developer.amd.com/archive....lt.aspx

Кстати заметка отсюда http://www.opengl.org/wiki/Common_Mistakes#Automatic_mipmap_generation тоже не помогает?

Просмотрел блог Флавьена. Возможно еще эти ссылки будут полезны
http://www.gamedev.net/blog....plained
http://www.gamedev.net/blog/73/entry-1682713-terrain-texturing/
http://www.gamedev.net/topic....enshots


Сообщение отредактировал Duke - Среда, 10.08.2011, 23:08
SpaceEngineerДата: Четверг, 11.08.2011, 09:03 | Сообщение # 63
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Quote (Duke)
Для ATI видел функцию автоматической генерациии мипмапов с примером здесь

Спасибо, посмотрю

Quote (Duke)
Кстати заметка отсюда тоже не помогает?

Там так и сказано - в дровах ATI баг, glGenerateMipmap не всегда работает. К тому же в примере показан код с загрузкой текстуры из оперативы (например после распаковывания из файла), у меня же генерируемые текстуры никогда не попадают в оперативу, всегда остаются в памяти GPU.

Quote (Duke)
Просмотрел блог Флавьена. Возможно еще эти ссылки будут полезны

Нету. Про генерацию мипов он ничего не писал (я бы запомнил это, я читал весь его блог).


DukeДата: Четверг, 11.08.2011, 13:30 | Сообщение # 64
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Quote (SpaceEngineer)
Там так и сказано - в дровах ATI баг, glGenerateMipmap не всегда работает. К тому же в примере показан код с загрузкой текстуры из оперативы (например после распаковывания из файла), у меня же генерируемые текстуры никогда не попадают в оперативу, всегда остаются в памяти GPU.

Там в Warning явно указан порядок операций для того чтобы на ATI работало:
bind the texture, glEnable(GL_TEXTURE_2D), glGenerateMipmap(GL_TEXTURE_2D)
Тоже самое для glGenerateMipmapEXT.

Quote (SpaceEngineer)
Нету. Про генерацию мипов он ничего не писал (я бы запомнил это, я читал весь его блог).

Я говорил про этот отрывок

This doesn't work with mipmapping, because the hardware uses the 2x2 neighbooring pixels to determine the mipmap level. The fract() instructions kill the coherency between the tiles, and 1-pixel-width seams appear (which are viewer dependent, so extremely visible and annoying).
The solution is to calculate the mipmap level manually. Here is the function I'm using to do that:

/// This function evaluates the mipmap LOD level for a 2D texture using the given texture coordinates
/// and texture size (in pixels)
float mipmapLevel(vec2 uv, vec2 textureSize)
{
vec2 dx = dFdx(uv * textureSize.x);
vec2 dy = dFdy(uv * textureSize.y);
float d = max(dot(dx, dx), dot(dy, dy));
return 0.5 * log2(d);
}

Note that it makes use of the dFdx/dFdy instructions ( also called ddx/ddy ), the derivative of the input function. This pretty much ups the system requirements to a shader model 3.0+ video card.
This function must be called with a texture size that matches the size of the tile. So if the pack is 2048x2048 and each tile is 512x512, you must use a textureSize of 512.

Ну и далее он еще пару вещей объяснял. У него как я понимаю wrapping вместе с mipmaping не работал, он даже ветку на форуме opengl.org создавал здесь http://www.opengl.org/discuss....&page=1
По последней ссылке в предыдущем посте кто-то другой пытался реализовать то что он описывал.


Сообщение отредактировал Duke - Четверг, 11.08.2011, 13:31
SpaceEngineerДата: Четверг, 11.08.2011, 21:06 | Сообщение # 65
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Quote (Duke)
Там в Warning явно указан порядок операций для того чтобы на ATI работало: bind the texture, glEnable(GL_TEXTURE_2D), glGenerateMipmap(GL_TEXTURE_2D) Тоже самое для glGenerateMipmapEXT.

Я так пробовал делать. Дело в том, что на моём ноутбуке (где ATI карточка) баг с падением при вызове glGenerateMipmap то есть, то нету. От положения Луны наверное зависит. Я непомню, добавлял ли я glEnable в предыдущий релиз, скорее всего нет (оно закомментировано в коде). В следующей версии включу, посмотрим как оно будет работать у других.

Quote (Duke)
Я говорил про этот отрывок

Здесь он говорит о том, как правильно сэмплить пиксель из текстурного атласа, чтобы не взять нечайно соседние тайлы в атласе. Это про генерацию текстур для планет в шейдере. Примера того, как генерировать мипы тут нет. Про то что надо генерировать мипы самостоятельно он странную вещь говорит - стандартный фильтр 2*2, применяемый при генерации мипов, никогда не пересечёт границу тайлов, если их разрешение - степень двойки. Только на самых высоких мип-уровнях, котороые и не используются в этом коде. По крайней мере на моих двух видеокартах никаких каёмок не наблюдается.

А, так я использовал его финальный код, поэтому и всё работает без багов:)


DukeДата: Воскресенье, 14.08.2011, 02:34 | Сообщение # 66
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Кстати когда искал информацию по мипмапингу попадалось несколько OpenGL демок, эдаких проб тех или иных технологий. Может когда-нибудь что-то из них пригодится.

1) http://www.youtube.com/watch?v=9N-kgCqy2xs
Real Time 3D Demo written in C++ using OpenGL and GLSL.
More info (french) : http://yannick.gerometta.free.fr/base.php?id=glsldemo
Executable : http://yannick.gerometta.free.fr/files/GLSLDemo_win32_v1.0.zip
Source : http://yannick.gerometta.free.fr/files/GLSLDemo_src_v1.0.zip
Bump Mapping, Parallax Mapping, Parallax Occlusion Mapping (Relief Mapping), Dynamic Cube Environnement Mapping, Cel Shading, Bloom, Depth of Field, Shadow Mapping, Anaglyph Rendering, Fur Rendering, Grass Rendering, Water Reflection / Refraction, Chromatic Aberration.

2) http://www.youtube.com/watch?v=Gj4vvlWuL8E
"Ruin Island" Realtime 3D C++/GLSL/OpenGL demo
A video of a Realtime 3D tech demo we made as a project for our programming course at the IMAC engineering school.
It's contains several effect such as FBO reflexion, shadow mapping, Parallax occlusion and normal mapping, per pixel shading, toon shading, advanced depth of field, post-processed motion blur, bloom/glow, dynamic sky and moving grass.
Source are available here :
http://www.zerto.net/RuinIsland_GLSL_Demo.rar
Took about 3 months of work, from october to december 2009.

3) http://www.youtube.com/watch?v=bMiNPU03o2k&feature=related
GPU particle systems using meshes
A demo of my MSc Dissertation, showing large GPU stateful particle systems using meshes, implemented in OpenGL/GLSL.
- 300K-800K particles (in video)
- variable meshes/rotations/materials
- procedurally coloured/bump-mapped
- particle 'painting' & terrain elevation
- motion blur, screen-space ambient occlusion, crepuscular rays
Source/Executables/Thesis doc : http://www.fileden.com/files/2008/1/8/1687460//PDemoSuite.zip

*******************************************************************************************************
Добавлено (12.08.2011, 21:55)
---------------------------------------------
Просмотрел блогпост про эрозию на планетах.
В интернете встречал посты о реализации одного простого вида эрозии здесь
http://blog.nextrevision.com/?p=161
http://blog.nextrevision.com/?p=162
Насколько я понимаю автор добавил их в свой движок R5 Engine здесь
http://r5ge.googlecode.com/hg/Source/Engine/Noise/Source/Filters.cpp
http://r5ge.googlecode.com/hg/Source/Engine/Noise/Include/_Filters.h

Есть еще генерация ландшафтов по специфическим фракталам например как здесь
http://dmytry.com/mojoworld/erosion_fractal/home.html
но Дмитрий, за эти годы, так нигде описание своего алгоритма не привел.

В Infinity используется ridged noise для генерации ландшафтов и эрозия движком, насколько мне известно, не поддерживается. Их минус скорость генерации и отсюда вытекает ограничение на скорость над поверхностью.
Еще автор описывал computed noise с возможностью генерации на GPU здесь http://www.gamedev.net/topic/502913-fast-computed-noise/
А какой тип noise-а используется в SpaceEngine?

P.S. В добавление к предыдущему посту о объемных облаках видел еще пару интересных статей в интересных блогах здесь
https://mmack.wordpress.com/2010/11/01/adventures-in-fluid-simulation/
http://graphicsrunner.blogspot.com/2008/03/volumetric-clouds.html

*******************************************************************************************************
Добавлено (14.08.2011, 02:34)
---------------------------------------------
По вопросу об астероидном кольце и octree попадалось несколько публикаций, некотоорые совсем старые
http://avellano.fis.usal.es/~bcurto....ten.pdf
http://citeseerx.ist.psu.edu/viewdoc....ype=pdf
http://citeseerx.ist.psu.edu/viewdoc....ype=pdf
http://www.isd.mel.nist.gov/documents/hong/Loc_49.pdf


Сообщение отредактировал Duke - Воскресенье, 14.08.2011, 02:35
SpaceEngineerДата: Воскресенье, 14.08.2011, 04:02 | Сообщение # 67
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Quote (Duke)
Есть еще генерация ландшафтов по специфическим фракталам например как здесь http://dmytry.com/mojoworld/erosion_fractal/home.html но Дмитрий, за эти годы, так нигде описание своего алгоритма не привел.

Интересно, когда же он напишет статью. Выглядит очень реалистично.

Quote (Duke)
А какой тип noise-а используется в SpaceEngine?

У меня куча всяких нойсов. Для гор - тоже ridged.

Quote (Duke)
P.S. В добавление к предыдущему посту о объемных облаках видел еще пару интересных статей в интересных блогах здесь

Интересный подход в первой ссылке - нарисовать облако обычными непрозрачными шариками, Потом размыть и исказить картинку. Но при полёте мимо облака и внутри него будет видно, что это фейк.


DukeДата: Воскресенье, 14.08.2011, 17:54 | Сообщение # 68
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Quote (SpaceEngineer)
Интересно, когда же он напишет статью. Выглядит очень реалистично.

Я поговорил с Дмитрием (к сожелению до конца договорить не смог так как скайп слетел и теперь не хочет ни в какую запускаться), он пока думает будет ли публиковать алгоритм или возможно сделает на его основе какую нибудь программу. Судя по поверхностному описанию алгоритма он требует множество выборок соседних регионов и генерируется поверх существующего ландшафта. Похоже на текущем оборудовании с приемлемой скоростью его использовать к сожелению не удастся.
Digit1990Дата: Воскресенье, 14.08.2011, 21:32 | Сообщение # 69
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
SpaceEngineer
...похоже он делает это так, как мы обсуждали...


Per aspera ad Astra
SpaceEngineerДата: Воскресенье, 14.08.2011, 23:20 | Сообщение # 70
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Duke, так может это вовсе и не фрактал, а просто симуляция эрозии?

DukeДата: Четверг, 18.08.2011, 03:14 | Сообщение # 71
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Судя по его описанию, это похоже на симуляцию процесса образования эрозии.

*******************************************************************************************************
Добавлено (15.08.2011, 21:33)
---------------------------------------------
Попалось еще одно описание реализации некоторых типов эрозии (Erosion by rain (rivers and pools), by sea (cliffs and beaches) and by "biology" (smoothing angles)) вместе с исходниками (правда на Delphi+OpenGL) здесь:
http://www2.unil.ch/biomapper/opengl/Landscapes.html
http://www2.unil.ch/biomapper/opengl/FractalLandscape_exe.zip
http://www2.unil.ch/biomapper/opengl/FractalLandscape_source.zip
ну и там же есть ссылка на исходники всех проектов из той статьи
http://www2.unil.ch/biomapper/opengl/LandscapePackage.zip

P.S.: Там в демке FractalLandscape был баг, при переходе с закладки на закладку они не прорисовываются, надо подвигать окно за заголовок после выбора закладки.

*******************************************************************************************************
Добавлено (16.08.2011, 13:34)
---------------------------------------------
Насчет астероидного кольца родилась одна мысль. В последнее время много разговоров идет о воксельных движках. А ведь они представляют собой большой масив точек которые часто хранятся в специфических деревьях. Возможно стоит изучить опыт анимации и движения объектов созданных на их основе. С ходу нашлась эта статья http://bautembach.de/wordpress/wp-content/uploads/asvo.pdf в которой описываются проблемы анимации.

*******************************************************************************************************
Добавлено (18.08.2011, 03:14)
---------------------------------------------
Планируется ли в проекте использовать продвинутые симуляции эффектов дыма и огня?
Пример реализации эффекта дыма видел здесь http://www.cs.unm.edu/~mskarim/fluid_smoke_gpu.htm
Исходники и скомпилированный проект здесь
http://www.cs.unm.edu/~mskarim/fluid/mskarim_smokesim_project.zip
http://www.cs.unm.edu/~mskarim/code/mskarim_src_cg_smokesim.zip
(здесь http://www.cs.unm.edu/~mskarim/fluid/ у него более новая версия есть, но ссылку он на нее в статье почему-то не дал)


Сообщение отредактировал Duke - Четверг, 18.08.2011, 03:23
SpaceEngineerДата: Четверг, 18.08.2011, 08:41 | Сообщение # 72
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Дым и огонь? Для вулканов, падений астероидов и т.д. Думаю, это весьма отдалённая перспектива.

DukeДата: Воскресенье, 21.08.2011, 16:51 | Сообщение # 73
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Наткнулся на еще один метод процедурной генерации астероидного кольца здесь
http://www.sea-of-memes.com/LetsCode18/LetsCode18.html
Насколько я понимаю из описания на их сайте исходники этого проекта находятся здесь
https://github.com/mgoodfel/SeaOfMemes/tree/master/SeaOfMemes/Source

P.S.: Симуляцией столкновения астероида с планетой в реальном времени почти никто не занимался (единственное видео которое мне попалось http://www.youtube.com/watch?v=b6riDFOobEw датируется 2000 годом). Так же симуляцию поверхности звезд в реальном времени тоже почти никто не делал. По этим темам врядли что то в ближайшее время появится.
SpaceEngineerДата: Понедельник, 22.08.2011, 12:22 | Сообщение # 74
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Quote (Duke)
Наткнулся на еще один метод процедурной генерации астероидного кольца здесь

Да это очередное статическое скопление астероидов. Похоже придётся мне придумать собственный алгоритм.

Quote (Duke)
P.S.: Симуляцией столкновения астероида с планетой в реальном времени почти никто не занимался (единственное видео которое мне попалось http://www.youtube.com/watch?v=b6riDFOobEw датируется 2000 годом).

Да это какая-то примитивная анимация, а не симуляция. Под симуляцией я понимаю численный рассчёт. Уже естьдовольно много статей на эту тему, а в фильме "Чужие миры" качественно показана визуализация рассчётов по столкновению планет.

Quote (Duke)
Так же симуляцию поверхности звезд в реальном времени тоже почти никто не делал. По этим темам врядли что то в ближайшее время появится.

http://spaceengine.org/forum/21-44-1


CrabДата: Понедельник, 22.08.2011, 13:00 | Сообщение # 75
Первооткрыватель
Группа: Модераторы
Российская Федерация
Сообщений: 444
Награды: 1
Статус: Offline
Кстати видел в фильме от Discovery, показывали женщину-учёного у которой на компе была симуляция столкновения Земли с Тейей. Выглядело красиво если найду скину видео.

Windows 8 x64
Intel Core2 Duo CPU E7500 2.93GHz.
4 GB RAM.
Nvidia GeForce 550Ti 1024mb.
Форум » SpaceEngine » Состояние разработки » SpaceEngine TODO - обновлено 11 июля 2016 (Как будет выглядеть SpaceEngine 10.0)
Страница 5 из 41«12345674041»
Поиск:

>