![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
....or, "The Hard Way to make Flash Animations"
A big THANK-YOU to the developers. Some time ago I was trying to figure out how
to emphasize the outlines of objects (actually for clearer technical
illustrations), but put it aside when I realized I needed something like what
the aoi and normal patterns provide. Now, here they are!
Any chance of adding a "curvature" pattern? (A central difference of the slope
from two parallel rays should do it.) This pattern might also help those who
like to dirty up their crevices and polish down their edges.
[Thanks to Chris B for the very nice pumpkins in the object collection.]
Post a reply to this message
Attachments:
Download 'draw_pumpkin_2011-12-21.png' (62 KB)
Preview of image 'draw_pumpkin_2011-12-21.png'
![draw_pumpkin_2011-12-21.png](/povray.binaries.images/attachment/%3Cweb.4ef2280cb6f97869726a3c10%40news.povray.org%3E/draw_pumpkin_2011-12-21.png?ttop=443866&toff=1900&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Le 21/12/2011 19:40, waggy nous fit lire :
> Any chance of adding a "curvature" pattern?
That sound like a proximity pattern.
I have one (search threads here around july 2011), but addition of
features to 3.7 are closed.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Am 21.12.2011 19:40, schrieb waggy:
> Any chance of adding a "curvature" pattern? (A central difference of the slope
> from two parallel rays should do it.) This pattern might also help those who
> like to dirty up their crevices and polish down their edges.
If you want a true curvature pattern in the strict sense, that might
well be feasible simply by computing the curvature from the mathematical
parameters of the respective geometric primitive. But I doubt whether
that's what you really want, as it would color your worlds on a
per-primitive basis (in the case of meshes that would even be a
per-triangle basis), meaning that crevices and edges created by CSG
would look boring.
As for the idea of comparing the slope computed from two parallel rays,
that doesn't seem feasible to me, as POV-Ray evaluates each ray
separately (you'd need more than two rays BTW). There are other
approaches to achieve the desired effect though (usually referred to as
"proximity patterns") - some based on ambient occlusion algorithms
(sampling the distance to nearby surfaces), others based on "blurred
object patterns" - that seem much more promising.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Thomas de Groot
Subject: Re: Fun with aoi and slope Patterns...
Date: 22 Dec 2011 03:00:14
Message: <4ef2e38e@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 21-12-2011 19:40, waggy wrote:
> ....or, "The Hard Way to make Flash Animations"
>
> A big THANK-YOU to the developers. Some time ago I was trying to figure out how
> to emphasize the outlines of objects (actually for clearer technical
> illustrations), but put it aside when I realized I needed something like what
> the aoi and normal patterns provide. Now, here they are!
>
You could also try PovEdge by tuabiht.
Thomas
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
clipka: Actually, a true curvature pattern is what I really want (despite
boring CSG seams) and you're correct that it would be better to calculate it
precisely for each of the two-dozen or so primitives, basically following the
same idea as how the surface normal is calculated at a ray-object intersection
point. As with the slope pattern, I was thinking in terms of a directional
derivative, so the slopes at two nearby points on a surface are sufficient to
calculate the curvature in that direction. (That's pretty much the definition
of curvature in the limit as the distance between the points approaches zero.)
I'll admit that, for many reasons, my idea of doing this by finite differencing
is generally not a good one, (except for isosurface and parametric objects). In
any case, it would be a boatload of work to integrate it into the POV-Ray
source, and if few others are likely to use it, probably not worthwhile.
Although I could use it for cartoon-style images (the pumpkins, for examples,
are blobs and should be C2-continuous), my main intention is to use a curvature
pattern to bring out more detail in 3D fractals. Since I have these formulas,
this is something I can probably do in SDL, at worst on a per-function basis.
Mr. de Groot: Besides edge rendering, I was also looking for a way to shade
objects by hatching, as illustrated by the image of a simple sphere attached.
Note that the hatching is done by surface normal perturbation, and can give the
impression of an object's surface normal by variations in line thickness.
(Although this works, I do not yet have an image I'm happy with to illustrate
it.) I like very much that this capability is part of POV-Ray.
Good times.
Post a reply to this message
Attachments:
Download 'hatch_sphere_2011-12-22.png' (38 KB)
Preview of image 'hatch_sphere_2011-12-22.png'
![hatch_sphere_2011-12-22.png](/povray.binaries.images/attachment/%3Cweb.4ef39391834013999726a3c10%40news.povray.org%3E/hatch_sphere_2011-12-22.png?ttop=443866&toff=1900&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
waggy wrote:
> Mr. de Groot: Besides edge rendering, I was also looking for a way to shade
> objects by hatching, as illustrated by the image of a simple sphere attached.
I once tried something similar to this:
http://news.povray.org/povray.binaries.images/thread/%3C4bc4f2ea@news.povray.org%3E/?ttop=358803&toff=250
Basically, this was using shading by aoi pattern from a fixed point
to emulate a point light source. Once you have a basic shading pattern,
you can use a texture map to provide different black-and-white textures
for different shades of gray.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christian Froeschlin wrote:
> Basically, this was using shading by aoi pattern from a fixed point
> to emulate a point light source. Once you have a basic shading pattern,
> you can use a texture map to provide different black-and-white textures
> for different shades of gray.
That's the basic idea. I'm using a fixed point at the light's location for the
slope pattern and the usual aoi, so reflections work.
"Do these hatches make my hips look big?"
"No, dear. And the Moire pattern becomes you."
Post a reply to this message
Attachments:
Download 'hatch_sphere_2011-12-22d.png' (149 KB)
Preview of image 'hatch_sphere_2011-12-22d.png'
![hatch_sphere_2011-12-22d.png](/povray.binaries.images/attachment/%3Cweb.4ef3b4e9834013999726a3c10%40news.povray.org%3E/hatch_sphere_2011-12-22d.png?ttop=443866&toff=1900&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I should clarify. Each hatch pattern is mostly transparent and simply layered
atop one another to retain the "hand-drawn" look.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Am 22.12.2011 21:31, schrieb waggy:
> clipka: Actually, a true curvature pattern is what I really want (despite
> boring CSG seams) and you're correct that it would be better to calculate it
> precisely for each of the two-dozen or so primitives, basically following the
> same idea as how the surface normal is calculated at a ray-object intersection
> point. As with the slope pattern, I was thinking in terms of a directional
> derivative, so the slopes at two nearby points on a surface are sufficient to
> calculate the curvature in that direction. (That's pretty much the definition
> of curvature in the limit as the distance between the points approaches zero.)
Be aware that curvature in 3D space can be (and in most cases is)
anisotropic, so you'll need to measure the surface normal of at least
three points. (Note how this is similar to approximating the surface
normal by measuring the position of three nearby points; two points
won't do there either.)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Am 22.12.2011 23:53, schrieb waggy:
> Christian Froeschlin wrote:
>> Basically, this was using shading by aoi pattern from a fixed point
>> to emulate a point light source. Once you have a basic shading pattern,
>> you can use a texture map to provide different black-and-white textures
>> for different shades of gray.
>
> That's the basic idea. I'm using a fixed point at the light's location for the
> slope pattern and the usual aoi, so reflections work.
My, I think that's really cool.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |