Войти
IrrlichtФорум

Пейзажи

#0
11:00, 26 фев. 2010

День добрый!
Пытаюсь сделать реалистичный вид окружающего мира.
Деревья, трава, тени, туман, небо с движущимися облаками, дождь, снег, смену времени суток. В общем все то, что могло бы напомнить природные пейзажи, по возможности, реалистичные. =)

У кого-либо есть идеи, или, возможно, наработки по этим направлениям?


#1
18:38, 26 фев. 2010

Для начала рекомендую ознакомиться с этой статьей. А еще лучше перейти на сайт указанного там проекта, там есть презентация. Там наглядней. А вообще реалистичность зависит от качества моделей и текстур. Плюс шейдеры. Но со статьей желательно все -таки ознакомится. Если будет сложно для понимания, то начинать с чего-нибудь попроще.

#2
10:39, 27 фев. 2010

Статья интересная. Спасибо!

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

К примеру, мне не нужны динамические тени для большинства объектов (как с точки зрения оптимизации, так и идеи), но без теней я обойтись не могу, как сделать чтобы при формированиии сцены вычислить карту теней (лайтмап) и применить её?

#3
11:49, 27 фев. 2010

Можно собрать сцену в IrrEdit. Там есть инструмент для автоматического расчета лайтмапов. Вот туториал по созданию лайтмапов в IrrEdit.

#4
13:26, 27 фев. 2010

попробовал поиграться с IrrEdit 1.5
лайтмап | Пейзажи

А более качественные лайтмапы, можно получить с помощью IrrEdit?

Эта сцена довольно маленькая, но дискретность уже видна, а что будет с большими пространствами?

#5
1:19, 28 фев. 2010

Насчет этого ничего не могу сказать. Я сам пока работаю над камерой от третьего лица и перемещением. Остальное пока меня мало интересует. Над качеством картинки собираюсь заниматься только после освоения механики игры. В любом случае тебе стоит заглянуть на официальный форум на сайте движка. Там конечно все на английском,но туториалов и примеров гораздо больше чем здесь. К примеру вот. Плюс еще есть англоязычное вики.

#6
11:53, 5 мар. 2010

Господа, не подскажите?

Сделал лайтмап в 3ds Max, но не как не могу корректно, использовать его в движке. :/
пробую так:

    IAnimatedMesh* meshaf = smgr->getMesh("../../media/1.3ds");
    IAnimatedMeshSceneNode* nodefs = smgr->addAnimatedMeshSceneNode( meshaf );
    if (nodefs)
    {
        nodefs->setMaterialFlag(EMF_LIGHTING, false);
        nodefs->setMD2Animation(scene::EMAT_STAND);
        nodefs->setMaterialTexture( 0, driver->getTexture("../../media/lightingmap.png") );
        nodefs->setMaterialTexture( 1, driver->getTexture("../../media/texture.jpg") );
        nodefs->setMaterialType(video::EMT_LIGHTMAP_M2);
    }
Если использую EDT_OPENGL - то не корректно привязывается к лайтмап текстуре,
если использую EDT_DIRECT3D9, то вовсе пропадает текстура(diffuse).
лайтмап | Пейзажи
лайтмапы делаю в 3ds Max-е, подскажите что не так?! Как сделать чтобы привязывались корректно?

#7
6:28, 9 мар. 2010

вот что у меня получилось.. (прошу сильно не бить)..
вид | Пейзажи
не хватает естественных теней... =(

#8
1:36, 10 мар. 2010

Evgeniy_Shavrov
Красиво.
На счёт теней. Какое ты используешь освещение? Если стандартное в Иррлихте, то там и тени есть стенсильные. Вполне неплохо смотрятся.
Если будешь освещать на шейдерах, могу посоветовать готовые библиотеки для этого.
Вот ссылка: http://www.irrlicht3d.org/wiki/index.php?n=Main.Shaders
Просто динамические тени не так сложно сделать таким способом.
Плюс возможно имеется смысл добавить модный сейчас блум (http://ru.wikipedia.org/wiki/Bloom). Он тоже есть в тех шейдерах, ссылку на которые я написал.

#9
7:56, 10 мар. 2010

Какое ты используешь освещение?
Вроде стандартное? вот кусок кода..

 //sun 
   irr::scene::ILightSceneNode* sun;
   sun = Device->getSceneManager()->addLightSceneNode(0, 
                  irr::core::vector3df(0, 3, 0), 
                  irr::video::SColorf(0.1f, 0.6f, 0.6f, 0.1f), 1500); 
   sun->setLightType(irr::video::ELT_POINT); 
   Device->getSceneManager()->setAmbientLight( 
                  irr::video::SColorf(0.6f, 0.6f, 0.6f, 0.1f));
Подключил динамические тени как в примере (Example 008 SpecialFX) получил вот такую картинку =/
shadow | Пейзажи
деревья рисуются пересечением двух плоскостей с альфа каналом, но это не самое страшное фпс почти до нуля упал =(

Основная часть сцены состоит из статических объектов и нет смысла постоянно пересчитывать тени, т.е целесообразней использовать лайтмапы, но я никак не могу понять как связать лайтмап сделанный в 3дсМаксе с моделью.
text1 | Пейзажи
Макс разбивает объект на части и делает лайтмап-текстуру, но при ссылке на нее в иррлихте он привязывает её также как основную текстуру. т.е для лайтмапа нужны свои индексы вершин. Как их сделать? или я заблуждаюсь?

#10
16:12, 24 мар. 2010

Вечер добрый!

Кто и как отекстуривает ландшафт?
Использование мега-текстур, не очень удобно, тратит слишком много ресурсов.
Если использовать текстуру с группированными элементами(частями) поверхности (вода, песок, гравий, травка и всевозможных переходов), то это приведет к неудобству создания мэша, и придется отказаться от использования карты высот.

Мне кажется самый приемлемый вариант:
терраин (не важно карта высот или мэш) на который накладывается текстура через шейдер, т.е. создается нечто напоминающее карту высот только передается не высота а альфа для конкретной текстуры к примеру чёрно-белое изображение, содержащее информацию о том, где какая текстура используется. Например, чёрный цвет – первая текстура, белый – вторая. Логично предположить, что градиенты (промежуточные цвета от чёрного к белому) являются совокупностью 2-х текстур, т.е. определяют между ними как бы плавный переход (ширина такой «переходной зоны» и то, насколько цвет в ней интерполирован, влияет на то, насколько плавным будет переход).


К своему стыду, я о шейдерах знаю только то, что они существуют и имеют место быть)

#11
19:50, 24 мар. 2010

Может статья по использованию мегатекстур будет полезна http://www.gamedev.ru/code/articles/Megatexture

#12
22:46, 24 мар. 2010

Спасибо за статью, занимательна) есть над чем подумать..

IrrlichtФорум

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