Вы не авторизованы.

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Fragmenarium. Обсуждение, решение проблем.

ТЕМА: Fragmentarium - что это такое?

Fragmentarium - что это такое? 5 года 11 мес. назад #55

  • SCORPION
  • SCORPION аватар
  • Вне сайта
  • Модератор я...
  • Всё получилось, а никто не заметил...(
  • Сообщений: 530
  • Сказали Отлично!: 464
  • Репутация: 38
Здравствуйте, друзья!
...Долго думал, прежде чем создать тему. Прежде всего - с чего начать? В принципе, о фрагментариуме сказано и написано достаточно. Но тем не менее, многие пользователи, начав работать с программой, довольно быстро теряют к ней интерес. И это несмотря на то, что фрагментариум обладает рядом ключевых преимуществ, одним из которых является быстрый рендер изображений очень большого разрешения. Так в чём же дело? Я долго думал над этим вопросом, пока не пришёл к определённому выводу. Уж не знаю, верен он или нет, но попробую озвучить.
Для начала откроем страницу на нашем ресурсе и прочитаем:
fractalus.ru/lessons/3d-redaktory/item/1...entarium-rukovodstvo
Очень хорошее руководство, изложение доходчиво и понятно. Но знаете, какие строки в нём вызывают лично у меня недоумение и досаду?
А вот эти:Дмитрий шахов пишет:
Как стало понятно, перед нами новый фракталогенератор, имеет поддержку 2Д и 3Д.
Ну вот откуда такой скоропалительный вывод? Почему "стало понятно"?
А вот что пишет автор программы Микаэль Кристенсен:'Микаэль пишет:
Fragmentarium is just a GUI for making it easier to experiment with GLSL code...(Фрагментариум - это просто графический интерфейс для облегчения работы с GLSL кодом.
Опаньки! Ну и где здесь фрактальный, да ещё генератор? Но ведь многие пользователи, взяв на вооружение фразу о фрактальном генераторе, именно пытаются работать с фрагментариумом как с фратальным генератором! А натыкаясь на недостаточное количество пресетов и "неоперативность" и "неудобство работы" программу очень быстро забрасывают. То есть налицо неверные предпосылки.
Называть фрагментариум фрактальным генератором - это как называть музыкальный инструмент баян ТОЛЬКО инструментом для исполнения произведений Мишеля Леграна, например. Такое утверждение неверно и ошибочно в принципе.
Вы уж извините меня друзья, но я должен был развеять ложное представление о программе фрагментариум. Просто - наболело!
Фрагментариум может "делать" фракталы, но это лишь малая часть возможностей программы!
Для примера приведу небольшой скрипт, где с помощью фрагментариума моделируются капли дождя на воде.
#include "Progressive2D.frag"
uniform float time;
vec3 Resol = vec3(1.0/pixelSize.x, 1.0/pixelSize.y, 1.0);
 
#group texture
uniform sampler2D texture0; file[texture.jpg]
uniform sampler2D texture1; file[texture.jpg]
uniform sampler2D texture2; file[texture.jpg]
uniform vec2 SizeTex; slider[(0,0),(1,1),(1,1)]
uniform vec2 RotTex; slider[(0,0),(1,1),(1,1)]
 
 
float bias(float x, float b) {
	return  x/((1./b-2.)*(1.-x)+1.);
}
 
float gain(float x, float g) {
	float t = (1./g-2.)*(1.-(2.*x));	
	return x<0.5 ? (x/(t+1.)) : (t-x)/(t-1.);
}
 
vec3 degamma(vec3 c)
{
	return pow(c,vec3(2.2));
}
vec3 gamma(vec3 c)
{
	return pow(c,vec3(1./1.6));
}
 
#define pi 3.1415927

vec3 color(vec2 j)
{
	vec2 uv = j / Resol;
	uv.y=1.-uv.y;
	uv.x *= Resol.x / Resol.y;
 
	float h = 0.;
 
#if 1
	
#else
	//go forwards and backwards!	
	float time = mod(iGlobalTime,30.);
	if (time > 15.) time = 30.-time;
#endif
	
 
#define DIVS	8
	
	for (int iy=0; iy<DIVS; iy++)
	{
		for (int ix=0; ix<DIVS*2; ix++)
		{
			//random variations for droplet
			vec4 t = texture2D(texture1,(4./256.)*vec2(float(ix),float(iy)),-100.);
 
 
			//stratify droplet positions
			vec2 p = vec2(ix,iy)*(1./float(DIVS-1));
			p += (0.75/float(DIVS-1))*(t.xy*2.-1.);
 
			//radius
			vec2 v = uv-p;
			float d = dot(v,v);
			d = pow(d,.7);
			float life = 10.;
 
			float n = time*5.*(t.w+0.2) - t.z*6.;
			n *= 0.1+ t.w;
			n = mod(n,life+t.z*3.+10.);				//repeat, plus a pause
			float x = d*99.;
			float T = x<(2.*pi*n) ? 1. : 0.;	//clip to 0 after end
			float e = max(1. - (n/life),0.);		//entirely fade out by now
			float F = e*x/(2.*pi*n);				//leading edge stronger and decay
 
			float s = sin(x-(2.*pi*n)-pi*0.5);						   
			s = s*0.5+0.5;		//bias needs [0,1]
			s = bias(s,.6);	//shape the ripple profile			
			s = (F*s)/(x+1.1)*T;
			h+=s*100.*(0.5+t.w);			
 
		}
	}	
	vec3 n = vec3(dFdx(h),17.,dFdy(h));		
	n = normalize(n);	
	vec3 E = normalize(vec3(-uv.y*2.-1.,1.,uv.x*2.-1.));	//fake up an eye vector
	vec3 rv = reflect(-E,n);
	vec3 reflect_color = degamma(texture2D(texture2,rv).xyz);
	vec3 fn = refract(vec3(0,1,0),n,2.5);
	uv += fn.xz*0.1;	
	float lod = length(fn.xz)*10.;	
	vec3 c = vec3(0.);
	c += degamma(texture2D(texture0,uv*vec2(SizeTex)-vec2(RotTex),lod).xyz);
	c *= 1.-4h*0.0125;
	c += reflect_color*.3;
	vec3 L = normalize(vec3(1,1,1));
	float dl = max(dot(n,L),0.)*.7+.3;
	c *= dl;	
	c = gamma(c);
	return vec4(vec3(c),1.);
}
 
#preset default
Center = 543.221,216.801
Zoom = 0.00282287
Gamma = 2.2
ToneMapping = 1
Exposure = 1.7046
Brightness = 1
Contrast = 1
Saturation = 1
AARange = 2
AAExp = 1
GaussianAA = true
texture0 = D:/Texture Water ripple/stones.png
texture1 = D:/Texture Water ripple/tex16.png
texture2 = D:/Texture Water ripple/cube02_2.jpg
SizeTex = 0.35577,0.58654
RotTex = 0.90476,0.81905
#endpreset

Текстуры, необходимые для скрипта:

yadi.sk/d/9hH5KTVaTQqRF

Если вы распакуете текстуры на диск "D' - то программа сама их найдёт после запуска скрипта. Включите анимацию и полюбуйтесь на картинку.
Ничего общего с фракталами, верно?
Надеюсь, теперь вы понимаете, какой феноменально мощьный инструмент у вас в руках?
Появится интерес - будем работать дальше! В этой теме, а лучше в других. так что, друзья, всё зависит от вас!
Кому это надо?
- Никому не надо...
Кому это нужно?
- Никому не нужно...
Последнее редактирование: 5 года 11 мес. назад от SCORPION.
Администратор запретил публиковать записи гостям.

Fragmentarium - что это такое? 5 года 11 мес. назад #58

  • adminus
  • adminus аватар
  • Вне сайта
  • Администратор
  • consequat quis extralabile
  • Сообщений: 748
  • Сказали Отлично!: 544
  • Репутация: 17
А вот эти:Дмитрий шахов пишет:
Как стало понятно, перед нами новый фракталогенератор, имеет поддержку 2Д и 3Д.

Так это же руководство было написано еще на Деми, еще на m-rush.ru, года 2 назад приблизительно, переносилось оно без редакции.
Естественно, что со временем узнается и осознается гораздо более, чем было известно в начале, сейчас я согласен, что это не генератор фракталов. Но еще тогда основными пресетами были именно фрактальные множества и формулы, как было его расценивать?
Смотря твои и Crist работы, видео, естественно, убеждаешься, что Фраг - великая штука. К сожалению, до сих пор, я отношусь к нему как к генератору и работаю только с встроенными пресетами, никак не привнося новое.
Все ждут, что вот, найдется волшебная кнопка, после нажатия на которую, из компа будут вылетать великолепные ролики и рендеры, это, конечно, не так.
Надо учиться этому, надеюсь, не только я, но и другие заинтересованы в этом, поэтому просьба нас научить...
Я знаю, что на деми есть материалы, если есть возможность их портировать сюда - будет отлично.
consequat quis extralabile
Администратор запретил публиковать записи гостям.
Модераторы: SCORPION
Время создания страницы: 0.171 секунд
1. Erik_Wollo-Blue_Radiance Play
2. Astropilot_Solar Walk IV Play
3. GERMIND _ Cosmicleaf Records Series Vol.14 Play
4. Kyoto_-_Bodhisattva_(Original_Mix) Play
5. Play