![](/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) |
> This puzzles me. I'm not disputing you're wrong - usually there's some
> option to set the number of subsamples taken - but since a GPU can *only*
> draw straight lines, you'd think they could just use the closed-form
> formulas for doing mathematically perfect AA on polygon edges. It takes
> about 3 float-ops. No subsamples required.
That method has problems when you are drawing triangles adjacent to each
other. Also how does your method work with a pixel shader? With
multi-sampling type AA it's easy because the scene is just rendered at a
higher resolution and then scaled down, this automatically fixes issues with
adjacent triangles and calculating pixel colours.
> That's what I heard. I also hear that only about 0.1% of the stuff Pixar
> does actually involves any ray tracing, with is kind of unbelievable...
Probably only very few surfaces actually *need* raytracing, the rest can be
scanline rendered.
> I still find it rather hard to believe that you can take a complex shape
> such as the surface of a water splash and automatically tesselate it.
If you're going for physical accuracy then your simulation data will be in
voxels or something anyway, so using marching cubes or similar will get you
your tesselated mesh directly. If you just want an artistic look (and are a
skilled enough artist) then draw a rough mesh by hand and use some form of
sub-divison to smooth it.
Also:
http://graphics.pixar.com/library/Whitewater/paper.pdf
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) |
>>> Yeah, what's the point of having povray raytrace any non-abstract math
>>> scenes?...
>> What, you mean other than the ability to draw truly-curved surfaces,
>> resolution-independent textures, and construct complex shapes easily and
>> intuitively using CSG, blobs, isosurfaces, and so forth? ;-)
>
> Very rare to have complex "real-life" scenes out of this math objects, except
> landscapes due to their fractal nature (but even so, not even trees despite
> their fractal base). Characters and man-made buildings and objects need more
> care detailing than one is willing to put forward out of pure math primitives
> and functions.
>
> It's very hard to go that route, both as an undertaking and waiting for some
> insane render times. Much easier to just approximate with polygons and
> subdivision algorithms. Have you tried subsurf modifier yet in Blender?
Looking around the room I'm sitting in now, most if not all items in it
would be far, far easier to create with POV-Ray.
Man-made objects tend to be particularly easy to construct using CSG. My
telephone, for example. Throw a few cubes and prisms together with a
little CSG and it's done. Takes about a dozen operations. But all those
curves and bevelled edges would take years with triangles.
You want a vase or a wine glass? It's a trivial SoR of a spline in
POV-Ray. Almost impossible to do with flat triangles and straight edges.
Various spikey, wavey or otherwise deformed surfaces are both trivial
and flexible with isosurfaces (provided that the undeformed shape is
fairly simple). A brick with a rough surface is almost a 1-liner in
POV-Ray, but would be ludicrously hard to model with billions of
triangles. (You'd have to fake it with devious texture mapping.)
I could go on...
About the only thing that's really hard in POV-Ray is complex but
non-random shapes - things like the sleek body of a sports car. For that
you really need some kind of 2D spline system.
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) |
Invisible <voi### [at] dev null> wrote:
> > Yeah, what's the point of having povray raytrace any non-abstract math
> > scenes?...
>
> resolution-independent textures,
I might add that while procedural textures do not pixellate, they definitely
don't look as good close up as they do at the resolution they were designed at.
This certainly makes them resolution-dependent from a practical standpoint.
Using a LOD framework, for textures and geometry, is important for any scene you
intend to use at different resolutions/camera positions. Unless you don't mind
waiting 10x longer than you need to for renders to finish ;)
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) |
>>> Yeah, what's the point of having povray raytrace any non-abstract math
>>> scenes?...
>> resolution-independent textures,
>
> I might add that while procedural textures do not pixellate, they definitely
Sure. It's just nice that if you have a bit of floor (or something)
that's slightly nearer to the camera than the rest of the scene, it
doesn't look horrid. (Or a reflection from a curved surface, or...)
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) |
> Looking around the room I'm sitting in now, most if not all items in it
> would be far, far easier to create with POV-Ray.
I beg to differ.
> Man-made objects tend to be particularly easy to construct using CSG. My
> telephone, for example. Throw a few cubes and prisms together with a
> little CSG and it's done.
But it's going to look like 80's CGI because you can't do rounded edges on
anything more complex than a straight edge without *a lot* of math and
patience. Ditto for curved surfaces. And you're stuck with perfectly
cylindrical rounds, IRL they are not usually used on edges because of the
discontinuity in curvature (it doesn't give smooth reflections).
Maybe your phone is different, but my phone looks impossibly hard to do in
POV SDL with all those complex curved surfaces and rounded edges.
> fairly simple). A brick with a rough surface is almost a 1-liner in
> POV-Ray, but would be ludicrously hard to model with billions of
> triangles. (You'd have to fake it with devious texture mapping.)
Or apply a noise texture to the displace modifier if your scene calls for a
brick with real geometry.
BTW what's your 1-line for a rough brick in POV? How long did it take you
to write?
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) |
> Maybe your phone is different, but my phone looks impossibly hard to do in
> POV SDL with all those complex curved surfaces and rounded edges.
Mabye I just suck at POV? I just made this in Blender (sorry for JPEG
compression, shouldn't have chosen red!), it has *9* vertices, followed by
two mirror modifiers and the subdivision modifier. Total time about 10
mins, including adding some lights and materials. No way I could achieve
the same in SDL, even in 1 hour.
Post a reply to this message
Attachments:
Download 'phone.jpg' (21 KB)
Preview of image 'phone.jpg'
![phone.jpg](/povray.off-topic/attachment/%3C4b2a468f%40news.povray.org%3E/phone.jpg?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) |
>> Looking around the room I'm sitting in now, most if not all items in
>> it would be far, far easier to create with POV-Ray.
>
> I beg to differ.
Well, it was written by *me* I guess...
>> Man-made objects tend to be particularly easy to construct using CSG.
>> My telephone, for example. Throw a few cubes and prisms together with
>> a little CSG and it's done.
>
> But it's going to look like 80's CGI because you can't do rounded edges
Or, more correctly, you can't do rounded edges with triangles. You can
only take jaggid geometry and smother it with trickery until it gives
the vague suggestion of roundness.
If I want a round button on my phone, just select a cylinder and it's
done. You could also CSG a cone onto the end for a bevel, or use a torus
for a smooth bevel. Piece of cake.
> And you're stuck with
> perfectly cylindrical rounds, IRL they are not usually used on edges
> because of the discontinuity in curvature (it doesn't give smooth
> reflections).
...it doesn't?
> Maybe your phone is different, but my phone looks impossibly hard to do
> in POV SDL with all those complex curved surfaces and rounded edges.
My phone is pretty squarish, with square and round buttons. Looks quite
easy to do. The coilled cable might be difficult, what with POV not
having real splining tools. (You gotta type in the coordinates by hand.)
About the only remotely tricky part would be the handset.
>> A brick with a rough surface is almost a 1-liner in
>> POV-Ray, but would be ludicrously hard to model with billions of
>> triangles. (You'd have to fake it with devious texture mapping.)
>
> Or apply a noise texture to the displace modifier if your scene calls
> for a brick with real geometry.
...wuh?
> BTW what's your 1-line for a rough brick in POV? How long did it take
> you to write?
You take the equation for a plane, add some noise to it. OK, for a brick
I guess you'd need a seperate isosurface for each side. Still much
easier than trying to model roughness by hand.
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) |
scott wrote:
>> Maybe your phone is different, but my phone looks impossibly hard to
>> do in POV SDL with all those complex curved surfaces and rounded edges.
>
> Mabye I just suck at POV? I just made this in Blender (sorry for JPEG
> compression, shouldn't have chosen red!), it has *9* vertices, followed
> by two mirror modifiers and the subdivision modifier. Total time about
> 10 mins, including adding some lights and materials. No way I could
> achieve the same in SDL, even in 1 hour.
That is actually quite impressive. Normally you'd have to model
something like this with blobs. I have no idea how it's possible to
construct this in a single human lifetime using only straight edges.
I just spent about an hour trying to make a torus in Blender. (Obviously
you can just click "insert torus", but I wanted to see if it's
physically possible to make one manually.) Suffice it to say most of
that time was just spent trying to force Blender to do what I actually
want it to do.
I guess the thing about Blender is that it forces you to think in terms
of surfaces, while POV-Ray allows you to think in terms of *volumes*,
which is far more natural.
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) |
> Or, more correctly, you can't do rounded edges with triangles.
Maybe you can't, but other people can.
> If I want a round button on my phone, just select a cylinder and it's
> done. You could also CSG a cone onto the end for a bevel, or use a torus
> for a smooth bevel. Piece of cake.
Yup, but what if your button is not perfectly cylindrical, how do you do the
bezel/round then?
>> And you're stuck with perfectly cylindrical rounds, IRL they are not
>> usually used on edges because of the discontinuity in curvature (it
>> doesn't give smooth reflections).
>
> ...it doesn't?
No, you get a visible "seam" in the reflection where the cylinder/torus
(which has constant curvature) meets the planar surface (which has zero
curvature). A better way is to use a curved surface where the curvature
gradually increases from zero up and then back to zero again, rather than
abruptly changing to a constant value.
See attached POV image, right side is "Rounded_Box" made from boxes and
cylinders/spheres, left side is a super-ellipsoid, which kind of mimics the
varying curvature technique for the rounds. Notice how on the right side
cube the reflection is sharply broken near all the rounds (especially the
specular highlight just abruptly stops), the left one is much smoother.
Post a reply to this message
Attachments:
Download 'image1.jpg' (92 KB)
Preview of image 'image1.jpg'
![image1.jpg](/povray.off-topic/attachment/%3C4b2a5052%40news.povray.org%3E/image1.jpg?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) |
>> Or, more correctly, you can't do rounded edges with triangles.
>
> Maybe you can't, but other people can.
Nope. You can only fake it.
>> If I want a round button on my phone, just select a cylinder and it's
>> done. You could also CSG a cone onto the end for a bevel, or use a
>> torus for a smooth bevel. Piece of cake.
>
> Yup, but what if your button is not perfectly cylindrical, how do you do
> the bezel/round then?
Depends on exactly which way it isn't perfectly cylindrical in.
Really, you can go a seriously long way using only quadratics and CSG.
There are only a few constructions I've found that you can't do. You
can't model highly organic stuff like (say) cars very easily, but most
man-made stuff has lots of straight edges and simple curves that are
quite easy to do. Think about it - if you wanted to model the Natural
History Museum, would you built it out of a few quadrillion triangles?
Or just cut a few solids out of each other? I know what I'd choose...
>>> And you're stuck with perfectly cylindrical rounds, IRL they are not
>>> usually used on edges because of the discontinuity in curvature (it
>>> doesn't give smooth reflections).
>>
>> ...it doesn't?
>
> No, you get a visible "seam" in the reflection where the cylinder/torus
> (which has constant curvature) meets the planar surface (which has zero
> curvature).
Mmm, interesting. In all the years I've been using POV-Ray, I've never
actually noticed that before...
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) |