Войти
ПрограммированиеФорумГрафика

Фрактальный игровой мир (16 стр)

Страницы: 115 16 17 1821 Следующая »
#225
17:07, 20 июня 2011

Вот несколько скриншотов сделал.

Изображение
Изображение
Изображение
Изображение

Я специально подобрал разные типы интрьера. Ну и сделать нечто подобное традиционным способом (моделями) исключительно сложно. Ну разве что кроме второй картинки. Но не забывайте что это только одна формула и сделано все без участия CPU. Скорость везде порядка 10-15 фреймов в секунду. В конце этого года появится Kepler - скорость будет в 2.7 раза выше (ожидаю получить 30 фреймов). Через 2 года выйдет Maxwell - скорость в 16 раз выше. На ней уже проблем с рейтрейсингом быть вообще не должно, все будет генерироваться полностью в реальном времени.


#226
17:17, 20 июня 2011

san
Если в рейтресе выборки для AntiAlias отключить, скорость\качество приемлемое будет? 
Спасибо.

#227
17:30, 20 июня 2011

Ты имееш ввиду делать несколько проходов со сдвигом а потом сливать? Я этот режим и не включаю. Генерирую на экран 1920х1080 и все. Пробовал вставлять - скорость упала, качество заметно не улучшилось, потому просто выкинул это и все.

#228
17:45, 20 июня 2011

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

#229
18:11, 20 июня 2011

san
> несколько скриншотов
Красиво. Третий, имхо, не очень - по сравнению с остальными.

#230
18:32, 20 июня 2011

san
Так все таки... Где можно потрогать демку? Не ту, что оффлайн-рендер с параметрами, а что-нибудь в стиле полета.

#231
18:52, 20 июня 2011

san
Потрясающе!
Я хочу там жить :)

#232
22:11, 20 июня 2011

-Eugene-
> Где можно потрогать демку?

Да нигде пока...  Это все завязано на мой движок который тянет за собой огромную кучу ресурсов (текстур одних почти гиг).  Естественно это можно все выпортошить но если честно, то просто нет времени заниматься этой работой. Я хочу довести все до ума а потом уже показывать кому-то. Ну и карту надо не слабее 480.

Ruslan
> есть ли возможность за счет сокращения некоторых вычислений поднять скорость работы, при этом, что бы качество было не ужасное )

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

P.S. Интересно, первая картинка дико сложная в части геометрии, а считается довольно быстро. Поскольку время для трассировки лучей зависит от не сложности геометрии, а исключительно от наличия большого количества точек на среднем и заднем плане. Но при этом сквозные "дыры" выводятся очень быстро.

#233
16:32, 16 окт. 2011

san
Картинки просто невероятны! Особенно пещера, лианы, ночь на болоте, да и все остальные!
Уже пару лет интересуюсь фракталами и всё думаю как ими построить игровой мир.. Вижу вы хорошо подкованы, как математик и программист!

Какие операции возможно проводить над этими 3д обьектами?
Я понимаю, что это не полигоны, поэтому вопрос скорее в том, как повлиять на локальную зону отображаемого 3д фрактала?
Пробовали что-то подобное?

#234
20:19, 16 окт. 2011

iLyxa
> Какие операции возможно проводить над этими 3д обьектами?

У каждой точки на экране имеются 3 пространственные координаты, т.е. можно вставлять в этот мир обычные 3D обьекты. Для этого надо сохранять координаты точек в некоторой промежуточной текстуре и отрисовку делать в отдельном шейдере. Я таким образом добавил свое лого (подпись) в трехмерную картинку, получилось довольно неплохо - лого перекрывается обьектами которые расположены ближе ее и соответственно перекрывает обьекты лежащие дальше. Ну и разумеется легко делать операции сложения-вычитания самих фракталов, там простая арифметика над расстоянием до точки.

>Я понимаю, что это не полигоны, поэтому вопрос скорее в том, как повлиять на локальную зону отображаемого 3д фрактала?

Не очень понял вопрос. Что значит "как повлиять на локальную зону "?

Вот еще картинка, только вчера сделал:

x1576 | Фрактальный игровой мир

Сейчас я очень активно занимаюсь стереоскопическими картинами (смотрю запись на 3D телевизоре в очках).  Надо сказать, что в стереоскопическом изображении все смотрятся на порядок интереснее. На двухмерной картинке скрадывается глубина, ее видно только при движении, но и в этом случае реальная глубина ощущается плохо. В 3D очках совершенно другое дело. Изображение реально оживает.

#235
20:46, 16 окт. 2011

В игрострое ещё долго фракталы применяться не будут, тк получается очень однообразный повторяющийся мир. В каждом приближении он одинаков. Фрактальная генерация - частный случай процедурной генерации.

Чтобы понять, как фракталы можно использовать в игре - нужно понять, как их использует природа:
Первая часть фильма о фракталах в природе. Естественно нужно посмотреть всё.

#236
21:37, 16 окт. 2011

Lamer007
> В игрострое ещё долго фракталы применяться не будут, тк получается очень однообразный повторяющийся мир. В каждом приближении он одинаков.

Похоже  у вас довольно поверхностное представление о фракталах. Разнообразить их довольно просто, для этого существуют как минимум два метода:
1. Можно поставить некоторый параметр (параметры) в зависимость от пространственной координаты точки. В этом случае "мир" в каждой точке будет уникален.
2. Можно менять параметры от времени. В этом случае "мир" начнет постоянно изменяться.

Я записал несколько роликов с полетом по фрактальному миру (на ютуб пока не выкладывал), последний длительностью 10 минут.  Во время полета все врeмя видишь что-то новое. Причем картинки отличаются весьма значительно, все 10 минут смотятся с интересом.

Кстати вот стереокартинки оттуда:

stereo | Фрактальный игровой мир
stereo2 | Фрактальный игровой мир

(взгляд - паралельный. Лучше было бы перекрестный, но я так привык).

>Фрактальная генерация - частный случай процедурной генерации.

Разумеется. Ни у что?

#237
21:52, 16 окт. 2011

san
> Разнообразить их довольно просто, для этого существуют как минимум два метода:
Это очевидно, но это уже не фрактал. Хотя, я не спорю, что применять обычные фракталы в чистом виде - глупо.

> на ютуб пока не выкладывал
Ждем. :)

#238
22:02, 16 окт. 2011

Lamer007
> Это очевидно, но это уже не фрактал.
Ну какая разница как это назвать? Суть в том, что вся формула для картинки которую я привел выше, это:

float Land(vec3 pos)
{
    vec4 p = vec4(pos,1.0);
  p.y+=0.1*sin(p.z*3.0)*sin(p.x*3.0); 
  float scale=0.7+0.1428+(param[26].x-0.5)*0.4; 

  for(int i=0;i<10;i++)
  {
    float k=0.6+0.509*0.8+(param[41].x-0.5)*0.3;
    p.xyz=clamp(p.xyz, -k, k)*2.0-p.xyz;
    float r2=dot(p.xyz,p.xyz);
    k=max(1.0/r2,0.0);
    p*=k*scale;
    p.xz+=0.9866*2.0-(param[19].y);
    if(i==7)
      p.xyz*=sin(p.yzx)*1.9;
  }
  return 0.13*(abs(p.y+0.01))/p.w;
}

#239
22:26, 16 окт. 2011

san
> Не очень понял вопрос. Что значит "как повлиять на локальную зону "?

Например взять какую-то область пространства, и создать там эффект черной дыры: чтобы всё что находиться вокруг заданной области "тянулось" к центру черной дыры.. Или наоборот, указать точку, вокруг которой обьекты будут раздуваться, как шарик надуваться (пример модификатор из 3dMax http://www.youtube.com/watch?v=AehWbexfzyM


Я так понимаю, что это должно быть не сложно, по идеи просто задать какой-то области пространства какой-то дополнительный модификатор, поверх существующего расчета.

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

Понимаете о чем я? Как думаете, это просто реализовать?
Тогда можно будет фракталами рисовать миры (игровые, локации)..

Страницы: 115 16 17 1821 Следующая »
ПрограммированиеФорумГрафика

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