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

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

Страницы: 13 4 5 621 Следующая »
#45
22:02, 24 апр. 2011

san
это не было примером технологии... а примером правильного подхода, творческого и просто - понимая...  поэтому, как обычно, nas понял - то, что хотел понять... и рисануться не забыл - "связями")))... это уж тоже - как обычно)))...

а уж если формальничать: то надо знать - шо к фракталам относят самоподобные преобразования, а не конкретные формулы... наборы правил, например, - тоже относят к фракталам - если результат дает повторяющиеся гармоники, даже в одном уровне масштаба... и т.д. и т.п. картинки от руки - покаж?)))...


#46
22:22, 24 апр. 2011

nbkolchin
> идея использования фракталов для генерации анимированных моделей, мягко говоря не нова

Вы похоже не поняли суть метода. Никто не говорит о генерации МОДЕЛЕЙ или их анимации. Моделей тут вообще нет. Все что ты видите - это работа одного ПИКСЕЛЬНОГО шейдера на вход которого поступает ОДИН квад. Была предложена не абстрактная идея "а хорошо бы генерировать модели на основе фракталов", а конкретный метод и програмная реализация трехмерных фрактальных объектов. Метод принципиально отличается от традиционного подхода основанного на использовании 3D моделей. Полет по такому миру я показал.

Arlekit
> Фрактальный игровой мир не нужен.
Дрогой Arlekit , вы забыли добавить одно слово - МНЕ. Далее по тексту :)
Что до "автоматизации", то я не очень понял что вы имели ввиду. Как это можно использовать - тут уже говорилось. И в любом случае это не "вместо" а "в дополнение к".

igo
Я не хочу с вами дискутироват в любой форме. Вы открыли тред где учите программистов рисовать картинки - флаг вам в руку. Зачем демонстрировать свое невежество и лезть в вопросы в которых вы совершенно не разбираетесь? Что бы просто заявить о себе? Хватит уже, успокойтесь. Вы все сказали и много раз.

#47
22:42, 24 апр. 2011

На определённом уровне глубины, всё в сферы(атомы) превращается и дёргается (
Видемо размерность переменных мала, глубоко не погрузиться ((

#48
23:12, 24 апр. 2011

lightmap
> На определённом уровне глубины, всё в сферы(атомы) превращается и дёргается (
> Видемо размерность переменных мала, глубоко не погрузиться ((

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

#49
23:20, 24 апр. 2011

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

#50
23:26, 24 апр. 2011

igo, извини, я немного побурчу в ответ на твои ответы. :)

До того, как я задал свой вопрос о реализациях, в этой теме уже успели засветиться ссылки и на авторов, и на пейперы. Т.е. я как бы подразумевал наличие этих материалов и спрашивал не про их авторов (мне кажется, это естественная логичная догадка, без вариантов). А про кого же я спрашивал? Как минимум про тех, кто пытался реализовать эту технологию на gpu (этот вывод вытекает из замечания san-а, в котором он говорит, что для игрового применения надо считать на gpu, что б получить приемлемую скорость). Итак, у нас уже два факта - это не товарищи, которые упоминаются в ссылках и не те, кто рендерит на cpu. Варинаты?

И да, мне показалось логично, что вопрос будет воспринят именно как "кто нибудь из форумчан пытался?". Вроде как: создаёт кто-нибудь на автофоруме тему "фрактальная покраска машины" и рассказывает, что можно своими руками офигенную покраску на свой автос заколбасить. Все начинают обсуждать, мол и вправду интересно. А я прихожу в эту тему, и спрашиваю "а кто-нибудь еще пытался?" Ну и про кого я спрашиваю? Конечно же про дядек из шоу OverHaulin, неужели вы не догадались? :)

Теперь про конфликты и прочее, есть такая тема - чем больший вклад художник хочет осуществить в искусство, тем больше он должен пиариться и конфликтовать с другими художниками. Цинично, но факт. Выводится при подробном изучении истории искусств, например. Именно поэтому мне, как НЕ художнику, непозволительна роскошь принимать участие в конфликтах личных вкусов, пиаров и прочего около-личностного контента, разводимого художниками вокруг себя. Мне интересуют технологии, желательно прекрасные, доступные и обнаженные.

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

#51
0:22, 25 апр. 2011

.Синий Дракон
Да нет смысла что либо объяснять igo.  Его не интересует что ему отвечают, он только флудит. Этот тред к нему отношения не имеет а пишет он только поскольку лично ко мне неравнодушен. Зависть в тяжелой форме.  Конфликта с ним я не вижу, поскольку спора нет - есть только тупой и завистливый троль который лезет во все дыры со своими бессвязными каментами. Кстати вопрос к модераторам - может пора его забанить? Ведь достал уже.

Отвечу только на "рисунки от руки покажи" (поскольку это он уже в третий раз постит).
Во первых мы на форуме ПРОГРАММИСТОВ, если ты еще не понял. Я не вижу связи между темой треда и моими работами.
Во вторых - я не собираюсь отчитываться перед любым дураком на форуме.  Гугл тебе в руку - на вебе моих работ достаточно.
В третьих - посмотри мою биографию на вебе если у тебя еще есть вопросы. Кроме тебя это никого здесь не интересует.

#52
0:22, 25 апр. 2011

господа, серьёзно. достаточно.

давайте вы будете постить либо по теме, либо не будете постить.

san
написать рейтрейс по пространству, в котором задан модуль градиента плотности(случай с mandelbox'ом), слишком просто(:читай: мне лень переделывать шаг рейтрейса :). можешь подкинуть подобную халявную формулу для фрактала, описывающего плотность? то есть функция

float GetValue(float3 point);
если она, например, меньше нуля, то находится внутри фрактала. больше - снаружи. не обязательно мандельбокс, любую. у меня рейтрейсер натаскан именно на такого рода вольюм дэйту(тут надо самому считать шаг рейтрейса, а не просто прибавлять производную), я не хочу менять код на данные о производных. заранее пасип.

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

#53
0:45, 25 апр. 2011

Suslik
>если она, например, меньше нуля, то находится внутри фрактала. больше - снаружи.

Там не так :)

Вот формула mandelbox'а:
float DE(vec3 pos)
{
  vec4 scale = 12.0;
    vec4 p = vec4(pos,1.0), p0 = p; 
  int iters=10;

    for (int i=0;i<iters; i++)
  {
    p.xyz=clamp(p.xyz,-1,1)*2.0-p.xyz;
        float r2 = dot(p.xyz, p.xyz);
    p *= clamp(max(0.25/r2, 0.25), 0.0, 1.0);
        p = p*scale + p0;
    }

  return length(p.xyz)/p.w;
}

А вот так считается расстояное до точки:

    float eps = minDist*( length(zoom)/0.02);

    for (steps=0; steps<MaxRaySteps; steps++)
    {
      vec3 p = from + totalDist * direction;

      dist = DE(p);
      dist = clamp(dist, 0.0, MaxDist);

      totalDist += dist;

      if (dist < eps)
        break;
      if(totalDist>MaxDist)
        break;
    }

Теперь зная totalDist ты уже сам можешь сконвертировать это в булевое значение.

#54
1:26, 25 апр. 2011

san
поздно, я уже сделал по-своему
Изображение

зато, зато у меня края более чёткие! и драйвер видюхи дважды падал во время написания шейдера, лол.

#55
1:40, 25 апр. 2011

честный рендеринг плотности:
Изображение

#56
1:45, 25 апр. 2011

А формула какая?

#57
1:47, 25 апр. 2011

считаю, что плотность равна 0.01f / DE(pos). таким образом вблизи поверхности плотность высокая, вдали - низкая. хочу мондельбульбу.

#58
2:02, 25 апр. 2011

манделбульба вот:

float DE(vec3 pos)
{
  vec3 z=pos;

  float r;
  float dr=1.0;
  int i=0;

  r=length(z);

  for(i=0;r<Bailout && i<20;i++)
  {
    vec3 z0=z;

    z=powN3(z,r,dr,Power)*atr2.w*2.0;

    z+=pos;
    r=length(z);
    z=z*rot;
    i++;
  }
 
  return 0.3*log(r)*r/dr; 

}


vec3 powN3(vec3 z, float r0, inout float dr, float Power)
{
 
  float r=length(z);
    float theta  = acos(z.y/r)+param[20].x*6.0;
    float phi    = atan(z.x,z.z)+param[21].y*6.0;


    float radius = pow( r, Power);
    float t = theta * Power;
    float p = phi * Power;

  dr*=radius*Power+1.0;

    z.x = sin(t)*sin(p);
    z.z = sin(t)*cos(p);
    z.y = cos(t);

  z*=radius*r;

  return z;
}

Кстати посмотри что я с манделбоксом сделал:
Изображение

Это какой то город летучий.

Изображение

А это что-то вроде китайского храма циклопических размеров.

Что плохо - как только вводишь в формулы синусы - фпс падает до 5-6 :)

#59
2:27, 25 апр. 2011

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

Страницы: 13 4 5 621 Следующая »
ПрограммированиеФорумГрафика

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