POV-Ray : Newsgroups : povray.binaries.images : Moon rendering (prototype) : Re: Moon rendering (prototype) Server Time
24 Jun 2024 07:49:47 EDT (-0400)
  Re: Moon rendering (prototype)  
From: clipka
Date: 2 Oct 2015 17:41:37
Message: <560efa11$1@news.povray.org>
Am 02.10.2015 um 22:54 schrieb David Given:

> I'm actually having a great deal of difficulty getting the surface to
> render cleanly after bolting on procedural noise; it goes all fuzzy
> close up, which implies my isosurface doesn't have a well-defined
> surface. (Enclosed.) I would suspect my multifractal routine, but it's
> stolen from libnoise, and so should work...

To me it looks fine, except that you're doing it wrong.

It looks to me like you're just perturbing your terrain function, using
something like:

    f(x,y,z) = f_terrain(f_noise(x,y,z))

when what you actually want is more like:

    f(x,y,z) = f_terrain(x,y,z)+f_detail(x,y,z)*detail_amplitude

Also note that if you just plug in some generic noise function as
f_detail, you are prone to turn your isosurface into some foam or "swiss
cheese", when all you really want is a radial offset of the surface; you
probably don't want caves, nor even overhangs.

To avoid this problem, you need to make sure that f_detail(x,y,z) is
constant along any ray from the center outward; you can achieve this by
defining f_detail as follows:

    f_detail(x,y,z) = f_detail_(x,y,z,sqrt(x*x,y*y,z*z))
    f_detail_(x,y,z,l) = f_noise(x/l,y/l,z/l)

Also, my personal suggestion is to not hard-code this into your DLL, but
rather define the detail function in POV-Ray, making use of POV-Ray's
pigment function feature and one or more of POV-Ray's noise-based
patterns (such as "bumps").


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.