POV-Ray : Newsgroups : povray.binaries.images : Use of Sam Benge's strand utility Server Time
30 Jul 2024 14:23:41 EDT (-0400)
  Use of Sam Benge's strand utility (Message 5 to 14 of 14)  
<<< Previous 4 Messages Goto Initial 10 Messages
From: Thomas de Groot
Subject: Re: Use of Sam Benge's strand utility
Date: 25 Jan 2012 03:40:06
Message: <4f1fbfe6$1@news.povray.org>
On 24-1-2012 20:06, Samuel Benge wrote:
> Other than height fields, mesh displacement and isosurfaces, I can't really
> think of too many other applications where 16-bit precision would be useful.
> Normals. The patterns themselves work well for texturing; you can get some
> really interesting cracked paint going. I do have this frosted glass idea I've
> kept in a box for years. Since it's winter, I should dig it back out :)

Yes, I guess those are the main features. I shall have to play with 
those ideas and see where I end up...

> Oh yeah, there is a way, and I've even got some DF3 code (Warp's, IIRC) which
> would make things easier, but I'm not about to try it now. My queue is too full
> ATM ;) But if I /were/ to do something like that, I'd probably use a 3D array
> only to mark filled areas, and just generate cylinders or sphere_sweeps as it
> works itself out. No DF3 needed for that. The result would look like webs, or
> something, and could be displaced with functions...

That sounds interesting indeed.

>
>>> I'll try to post some stuff generated by the utility soon. Hopefully I won't get
>>> sidetracked like I usually do :)
>>
>> Very good! Nothing wrong with sidetracking though ;-)
>
> Not at all! But I've got so many things I have never posted, just lots of parts
> floating around on the HD. I keep telling myself I'll eventually assemble some
> of them into a scene, but there's always another interesting concept to explore
> :D

Excellent, Sam! Keep up the good work.

Thomas


Post a reply to this message

From: Samuel Benge
Subject: Re: Use of Sam Benge's strand utility
Date: 26 Jan 2012 17:05:01
Message: <web.4f21ce0031e146109f4d10f90@news.povray.org>
Thomas de Groot <tenDOTlnDOTretniATtoorgedDOTt> wrote:
> On 24-1-2012 2:12, Samuel Benge wrote:
> > I'll try to post some stuff generated by the utility soon. Hopefully I won't get
> > sidetracked like I usually do :)
>
> Very good! Nothing wrong with sidetracking though ;-)

OK, here's one.

For this image, I took the output from strands.exe and expanded the height data
outward from its own density several times using a function similar to the
vector analysis stuff in math.inc, lowering the resulting value and recombining
it with the original image at each step (I finally found out how to perform this
process during an animation without producing a folder full of numbered images:
..bat files are created at each frame and called after each, in order to delete
and rename previous images). This "filled out" the original lines and eliminated
nasty artifacts without removing all of the smaller details. The height data
used throughout had a resolution of only 512x512 pixels, except for the texture
baking step which was twice that. The texture employed a 2D proximity pattern to
deepen the areas between the "roots," and fake subsurface scattering
(diffuse-occluding absorbing media) to help give it that living look. The HF was
copied nine times, so what you see is actually tiled, and repeats.

The water's meniscus was created by taking the height data at the water line,
making it white, and blurring it. The blurred image was simply mapped to a
watery plane and used in a normal block with a few tweaks. The interior of the
water uses absorbing media.

For both the proximity pattern and blurred height data, I used points created
with Fermat's spiral, which I've discovered produces better results for 2D
pattern blurring than other arrangements, and is more flexible.

The result is... kinda gross. Possibly more animal than plant :/


Post a reply to this message


Attachments:
Download 'tubers.jpg' (217 KB)

Preview of image 'tubers.jpg'
tubers.jpg


 

From: Thomas de Groot
Subject: Re: Use of Sam Benge's strand utility
Date: 27 Jan 2012 02:53:34
Message: <4f2257fe$1@news.povray.org>
On 26-1-2012 23:04, Samuel Benge wrote:
> OK, here's one.

Oooooooh.....!

You really are a magician, Sam!

I am certain I do not follow half of your method but it shows me that 
what I was dreaming of is really possible to achieve. I am literally 
blown off my feet.

Thomas


Post a reply to this message

From: Jaime Vives Piqueres
Subject: Re: Use of Sam Benge's strand utility
Date: 27 Jan 2012 02:58:02
Message: <4f22590a$1@news.povray.org>
On 26/01/12 23:04, Samuel Benge wrote:
> OK, here's one.

   I almost fell off my chair... as usual.

> For this image, I took....

   I did understand almost nothing... as usual. ;)

--
Jaime


Post a reply to this message

From: Bill Pragnell
Subject: Re: Use of Sam Benge's strand utility
Date: 27 Jan 2012 03:10:01
Message: <web.4f225ad831e146106dd25f0b0@news.povray.org>
"Samuel Benge" <stb### [at] hotmailcom> wrote:
> The result is... kinda gross. Possibly more animal than plant :/

Awesome. Excellent meniscus technique too, I must remember that. It really makes
the image for me.

It's not really gross, either - looks just like those thick weeds you get in
slow-moving rivers, but tubular.

Bill


Post a reply to this message

From: Jaime Vives Piqueres
Subject: Re: Use of Sam Benge's strand utility
Date: 27 Jan 2012 03:55:37
Message: <4f226689$1@news.povray.org>
On 27/01/12 09:05, Bill Pragnell wrote:
> "Samuel Benge"<stb### [at] hotmailcom>  wrote:
>> The result is... kinda gross. Possibly more animal than plant :/
>
> It's not really gross, either - looks just like those thick weeds you get in
> slow-moving rivers, but tubular.
>

To me it looks more like soaked yarns:

http://www.christynelson.net/wp-content/uploads/2011/03/purple-yarn.jpg

--
Jaime


Post a reply to this message

From: Cousin Ricky
Subject: Re: Use of Sam Benge's strand utility
Date: 27 Jan 2012 10:25:00
Message: <web.4f22c0c331e1461085de7b680@news.povray.org>
"Samuel Benge" <stb### [at] hotmailcom> wrote:
> The result is... kinda gross. Possibly more animal than plant :/

Reminds me of Cthulhu.


Post a reply to this message

From: Jim Holsenback
Subject: Re: Use of Sam Benge's strand utility
Date: 27 Jan 2012 12:50:05
Message: <4f22e3cd$1@news.povray.org>
On 01/27/2012 02:53 AM, Thomas de Groot wrote:
> On 26-1-2012 23:04, Samuel Benge wrote:
>> OK, here's one.
>
> Oooooooh.....!
>
> You really are a magician, Sam!

LOL ... yes we're not worthy ;-) Nice job Sam!


Post a reply to this message

From: Christian Froeschlin
Subject: Re: Use of Sam Benge's strand utility
Date: 30 Jan 2012 20:55:53
Message: <4f274a29$1@news.povray.org>
Samuel Benge wrote:

> For this image

... very cool image ...

> I took the output from strands.exe and 

... with almost incomprehensible explanation ... ;)

Did I understand correctly that you used povray animation
to implement an iterative 2d filter for thickening the strands
in the height field produces by your strands.exe tool?

> fake subsurface scattering (diffuse-occluding absorbing media)

Sounds interesting, how does it work?

> The water's meniscus

Nice trick ;) Did you compare it to simply rendering the height
data near the water line as water? I suppose the blurring makes
it smoother to give a curved appearance.

> For both the proximity pattern and blurred height data, I used points
> created with Fermat's spiral

Is your proximity pattern sampling in 2d? Or do you generate
points on a sphere for tracing the surface of a 3d object?


Post a reply to this message

From: Samuel Benge
Subject: Re: Use of Sam Benge's strand utility
Date: 31 Jan 2012 17:55:01
Message: <web.4f286ff631e146104264af6e0@news.povray.org>
Thanks for the replies, everyone!

Christian Froeschlin <chr### [at] chrfrde> wrote:
> Samuel Benge wrote:
>
> > I took the output from strands.exe and
>
> ... with almost incomprehensible explanation ... ;)

It's what I do ;)

Let me try again... If you've ever taken a look at the vector analysis macros in
math.inc, you'll have an idea how it works. Those macros pretty much allow you
to determine a gradient's normal or even its falloff rate at any point. When
applied to a function, a variety of effects can be achieved. Since it's better
explained as code, here's the basic setup for pushing a pattern away from
itself:

    #declare PixelSize = 1/image_width;
    #declare Accuracy = 2*PixelSize;
    #declare Amount = 8.0;
    FPgmt(
        x+2*Amount*PixelSize*(FPgmt(x+Accuracy,y,0)-FPgmt(x-Accuracy,y,0)),
        y+2*Amount*PixelSize*(FPgmt(x,y+Accuracy,0)-FPgmt(x,y-Accuracy,0)),
        0
    )

As you can imagine, using five samples quickly becomes expensive if applied
again and again to a function in a single render, which is why I iterate over
pre-rendered data instead.

> Did I understand correctly that you used povray animation
> to implement an iterative 2d filter for thickening the strands
> in the height field produces by your strands.exe tool?

Yep. Same thing I've been doing for a while now, but without all the useless
images stealing HD space :D

> > fake subsurface scattering (diffuse-occluding absorbing media)
>
> Sounds interesting, how does it work?

Absorbing media from one object occludes the diffuse reflection of another:

    sphere{
        0, 1
        pigment{rgb 1}
        finish{brilliance 0}
        double_illuminate
        no_shadow
        hollow
    }

    sphere{
        0, 1.001
        pigment{rgbt 1}
        interior{
            media{
                absorption 4
            }
        }
        hollow
    }

It renders very quickly, but generally doesn't look too great unless big
area_lights are used, which obviously doesn't work for all scenes. There's
probably some light_group trickery that would allow for more flexibility, but I
haven't tried anything along those lines yet. It doesn't play well with
radiosity. And there's also the fact that it requires two objects, one shifted
outward from the other. This makes the technique difficult to use for complex
objects :(

> > The water's meniscus
>
> Nice trick ;) Did you compare it to simply rendering the height
> data near the water line as water? I suppose the blurring makes
> it smoother to give a curved appearance.

I think I've tried that before by placing the height data into an object
pigment, putting that into a normal block, and giving it a highish accuracy. But
the effect just wasn't as nice.

> > For both the proximity pattern and blurred height data, I used points
> > created with Fermat's spiral
>
> Is your proximity pattern sampling in 2d? Or do you generate
> points on a sphere for tracing the surface of a 3d object?

It starts with a sharp, black/white plane function. This is displaced using
height data to make a "height field" function. It is then blurred in 2D (using a
2D point set) and reverse-displaced to make it flat once again. A planar warp is
then applied to make it infinite along the z-axis.

I'll be releasing some new proximity patterns soon, and the 2D version will be
among them so you'll be able to see how it works.

Sam


Post a reply to this message

<<< Previous 4 Messages Goto Initial 10 Messages

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