Have you tried the crater() function in Wilbur? It generates perfectly round craters, but applying it to an existing random field with a multiply operation will give you something like what you describe (see attachment). If you want the rim distance to wander a bit then I'd have to put back in the fbm function that you could use to modify the crater function argument.
Internally, the crater() function looks like
if (arg <= RimDist)
return pow((sin(1.5*M_PI+arg/RimDist*M_PI)+1)*0.5,BowlSteep)*(RimHeight-BowlBase)+BowlBase;
else
return (1-(arg-RimDist)/(1-RimDist))*RimHeight;
A wilbur function that does the same should look like
if (le(arg,RimDist),pow((sin(1.5*pi+arg/RimDist*pi)+1)*0.5,BowlSteep)*(RimHeight-BowlBase)+BowlBase,(1-(arg-RimDist)/(1-RimDist))*RimHeight)
with appropriate expressions substituted for the named arguments (for example, arg replaced with r/4, RimDist replaced with 0.5, and so on).



LinkBack URL
About LinkBacks








Reply With Quote

)

