![](/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) |
"stbenge" <THI### [at] hotmail com> wrote in message
news:49361034@news.povray.org...
> Dre wrote:
>> Actually while we are on the topic, how do people generally build
>> objects. Do you make your complete object first and then bevel the edges?
>> or do you do it piece by piece, making each piece right with edges before
>> moving onto the next finally finishing up with a completely assembled
>> object?
>
> A little of both for me, but maybe more of the latter. It's helpful to
> declare edge radii in advance, so you can make a global change if you
> decide you don't like the current look. I don't always do this, but it
> really makes changing the code easier later on.
>
> Sam
Thanks!
I fully agree with the global edge radii, the last few scenes I've been
doing have had a hell of a lot of definitions at the top of the scene for
things like this. Previously I've only been testing stuff/code/ideas so I
haven't bothered. Now that I've started some more serious scenes I've
wanted to make them as clever as possible so using *lots* of variables...
Cheers Dre
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) |
stbenge <THI### [at] hotmail com> wrote:
> currently impossible to use any proximity patterns with meshes. That's
> right, impossible!
What are proximity patterns? Is it like AO or radiosity?
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) |
"Trevor G Quayle" <Tin### [at] hotmail com> schreef in bericht
news:web.493594d862d2e22181c811d20@news.povray.org...
>
> A *quick* render. I have made it very shiny!
>
LOL
Now let that baby ROAR....
(and black smoke, please....) :-)
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) |
nemesis wrote:
> stbenge <THI### [at] hotmail com> wrote:
>> currently impossible to use any proximity patterns with meshes. That's
>> right, impossible!
>
> What are proximity patterns? Is it like AO or radiosity?
I'm not sure if the term "proximity pattern" ever existed before
MegaPOV. I remember seeing it a long time ago as a new feature, but
never got to play with it.
Basically a proximity pattern is like a gradient indicating the distance
from a surface in 3D space. Imagine making an object pattern from some
object and applying a 3D blur to it. What you get is a fuzzy
representation of your object, but in pattern form. As a special bonus,
the inside edges and vacations end up black, the outside edges and
protrusions end up white, and all the flat parts in between end up a
gray color.
I have created two versions which I use for different things. I have
released one of them bundled with the fastSSS macros, but I think I will
release another include with just the proximity macros.
Sam
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) |
stbenge wrote:
> The biggest reason I didn't model this as a mesh is because it's
> currently impossible to use any proximity patterns with meshes.
you never know when a wax tractor might come in handy ;)
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) |
stbenge wrote:
> Basically a proximity pattern is like a gradient indicating the distance
> from a surface in 3D space. Imagine making an object pattern from some
> object and applying a 3D blur to it. What you get is a fuzzy
> representation of your object, but in pattern form. As a special bonus,
> the inside edges and vacations end up black, the outside edges and
> protrusions end up white, and all the flat parts in between end up a
> gray color.
Sounds like AO. The occlusion effect is likewise achieved by taking
into account surrounding geometry, not angle of incidence or position of
light sources. Your image looks very AO like.
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) |
stbenge <THI### [at] hotmail com> wrote:
> They are manually rounded off using cylinders, torii and spheres.
> There's an object pattern trick for making edges look rounded using
> surface normals, but it doesn't work too well with most objects.
Gosh. I did that with a piano a few years back. It was a *lot* of work and it
wasn't nearly this complex. That's very impressive.
- Ricky
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) |
nemesis wrote:
> stbenge wrote:
>> Basically a proximity pattern is like a gradient indicating the
>> distance from a surface in 3D space. Imagine making an object pattern
>> from some object and applying a 3D blur to it. What you get is a fuzzy
>> representation of your object, but in pattern form. As a special
>> bonus, the inside edges and vacations end up black, the outside edges
>> and protrusions end up white, and all the flat parts in between end up
>> a gray color.
>
> Sounds like AO. The occlusion effect is likewise achieved by taking
> into account surrounding geometry, not angle of incidence or position of
> light sources. Your image looks very AO like.
AO and proximity patterns give different results. Proximity patterns can
give you access to *outside* edge data as well as inside edge data. AO
just makes inside edges dark. Proximity patterns also make thin objects
lighter in color, and thicker ones slightly darker. When I combine my
proximity macros, I'll post examples to this group so you can see for
yourself how it looks.
Sam
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) |
triple_r wrote:
> Gosh. I did that with a piano a few years back. It was a *lot* of work and it
> wasn't nearly this complex. That's very impressive.
It's time consuming, that's for sure :/
Sam
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) |
stbenge <THI### [at] hotmail com> wrote:
>
> The biggest reason I didn't model this as a mesh is because it's
> currently impossible to use any proximity patterns with meshes. That's
> right, impossible! Actually, if somebody can figure out how to get a
> proximity pattern working with meshes, I would really appreciate it :)
Just write your own inside() function. I gave it a go with the following, and it
seems to work pretty well. It should really be improved with the equivalent of
an inside_vector, so you can usefully use it with open meshes, but it's OK for
a quick attempt.
#macro inside_m( obj, pos )
#local current = pos;
#local dir = x;
#local done = 0;
#local num = 0;
#while ( done != 1 )
#local norm = <0,0,0>;
#local inter = trace( obj, current, dir, norm );
#if ( vlength( norm ) != 0 )
#local num = num + 1;
#local current = inter + <0.0001,0,0>;
#else
#local done = 1;
#end
#end
(mod( num, 2 ) = 1)
#end
Cheers,
Edouard.
Post a reply to this message
Attachments:
Download 'fastprox_bunny.jpg' (19 KB)
Preview of image 'fastprox_bunny.jpg'
![fastprox_bunny.jpg](/povray.binaries.images/attachment/%3Cweb.493b60e562d2e2216349cc2c0%40news.povray.org%3E/fastprox_bunny.jpg?preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |