openGL之API学习(一四零)分形布朗运动FBM

分形布朗运动FBM(Fractal Brown Motion)是1968年Mandelbrot和Ness两人提出的一种数学模型,它主要用于描述自然界的山脉、云层、地形地貌以及模拟星球表面等不规则形状阶。

布朗运动是1827年英国植物学家R.Brown发现的,它是一种随机运动,粒子的运动方向随时改变,其运动轨迹是一条无规则的折线,不受什么约束和支配。

opengl中使用fbm

//----------------------------------------------------------------------
float noise( in vec3 x )
{
    vec3 p = floor(x);
    vec3 f = fract(x);
	f = f*f*(3.0-2.0*f);
	
	vec2 uv = (p.xy+vec2(37.0,17.0)*p.z) + f.xy;
	vec2 rg = textureLod( iChannel1, (uv+ 0.5)/256.0, 0.0 ).yx;
	return mix( rg.x, rg.y, f.z );
}

//----------------------------------------------------------------------
float fbm( vec3 p )
{
    float f;
    f  = 1.600*noise( p ); p = p*2.02;
    f += 0.3500*noise( p ); p = p*2.33;
    f += 0.2250*noise( p ); p = p*2.01;
    return f;
}

d = min(d, Cylinder(post-vec3(0.2, -12.0, .4), vec2(1.8, 8.5)- fbm(post*5.0)*.1));

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值