I'm surprised that he does not mention that, if you can compute FFT really fast, then you can implement all these textures without a loop along the octaves, by simply specifying the spectral decay and using random phases.
Fractional Brownian Motion for Terrain Generation
11–20 of 29 posts
Re: Fractional Brownian Motion for Terrain Generation
#12I feel like a terrible adult for chuckling at the appropriateness of BM as the abbreviation for Brownian Motion.
Re: Fractional Brownian Motion for Terrain Generation
#13Re: Fractional Brownian Motion for Terrain Generation
#14> These movements define paths that are random yet (statistically) selfsimilar, ie, a zoomed-in version of the path resembles the whole path This goes a bit against my intuition of self-similar, but I guess I should interpret "resembles" as *statistically resembles" here as well? Does it mean something like the distribution being the same at all zoom levels?
Re: Fractional Brownian Motion for Terrain Generation
#15If anyone isn't aware of who Iniqo Quilez is, then explore the entire site and follow it up by looking at his work over at Shadertoy (username: iq) and any of his demoscene contributions at http://www.pouet.net and maybe read this fascinating article about his work with Pixar on Brave: http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-J...
Re: Fractional Brownian Motion for Terrain Generation
#16Earlier quoted context omitted.
do you mean ifft?
yes, but it's the same algorithm
Re: Fractional Brownian Motion for Terrain Generation
#17Earlier quoted context omitted.
yes, but it's the same algorithm
yes but i'm asking about what you were really trying to say - are you trying to say one can generate these textures by specifying a filter (transfer function or whatever you want to call it) with a random phase component? and then take ifft to get the definition in space?
Re: Fractional Brownian Motion for Terrain Generation
#18Re: Fractional Brownian Motion for Terrain Generation
#19I guess the provided code examples must return values which are ordered somehow by properties of the `noise` function, which must involve some memory of previously given values. But this function is described as:
>some noise function of our choice... the choice doesn't matter much
The nature of that function is really essential, if it has any independent random distribution, the examples will just return values with an independent random distribution that is bell or triangular or spike shaped.
The basic method of creating a sequence which has different variability at difference scales is to create separate random walks, scale (resample) them and then sum them together. This can be optimized by generating the component walks (with different scales) on the fly, but there is no way to create such a sequence on the fly from a function which returns values which are independent of the sequences previous values.