![](/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) |
On Sun, 09 Jun 2002 00:50:12 +0930, John VanSickle wrote:
> PoD wrote:
>>
>> On Sat, 08 Jun 2002 07:29:16 +0930, John VanSickle wrote:
>>
>> > A number of times I find that I would like certain objects to be
>> > anti-aliased, but not the whole scene, or for some objects to be
>> > anti-aliased at a higher level than the rest of the scene.
>> >
>> > What would be the difficulty in programming anti-aliasing regions,
>> > such that any pixel whose ray was shot into the region would be
>> > anti-aliased at a certain level? I picture syntax such as:
>> >
>> > antialias {
>> > box { <-1,1,1>,<2,4,4> }
>> > depth 3
>> > precision .1
>> > }
>> > }
>> Technically feasible, I think but I suspect that the edges of the box
>> would often become visible as the antialiasing of the background would
>> change as well.
>
> Well, if increasing the AA of the background changes the way it looks,
> then maybe that background should have AA as well.
>
> Regards,
> John
But it defeats the purpose of localised AA somewhat if you use the same settings
for the background as for your (possibly small) object.
I'm not saying that it couldn't or shouldn't be done, just that I have a
gut feeling that it would not be useful very often.
PoD.
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) |
On Sun, 09 Jun 2002 01:09:43 +0930, Apache wrote:
> Technically a really hard thing to do. If POV-Ray is going to do this,
> it should be able to trace the edges of objects on the screen. Try doing
> this with isosurfaces ;-)
>
> --
> Apache
> POV-Ray Cloth experiments: http://geitenkaas.dns2go.com/experiments/
> Email: apa### [at] yahoo com
> ICQ: 146690431
I don't think it would be that hard. It's not a matter of detecting
edges of objects, just detecting that a ray has hit a bounding type
object and changing the AA settings.
PoD.
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) |
PoD <pod### [at] internode on net> wrote:
> I don't think it would be that hard. It's not a matter of detecting
> edges of objects, just detecting that a ray has hit a bounding type
> object and changing the AA settings.
I think that it would require that if the ray hits the object which has
to be antialieased for the first time in the current line, we have to go
back one pixel and render it again antialiased.
And thinking about it, it would also require rendering the same pixel in the
previous line again the first time we hit the object vertically.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
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) |
John VanSickle wrote:
> What would be the difficulty in programming anti-aliasing regions,
such that
> any pixel whose ray was shot into the region would be anti-aliased at a
> certain level? I picture syntax such as:
>
> antialias {
> box { <-1,1,1>,<2,4,4> }
> depth 3
> precision .1
> }
Warp wrote:
> I think that it would require that if the ray hits the object which has
> to be antialieased for the first time in the current line, we have to go
> back one pixel and render it again antialiased.
> And thinking about it, it would also require rendering the same pixel in the
> previous line again the first time we hit the object vertically.
>
If we realy wanted such a feature, wouldn't it be better to define
it based on pixel rows/columns, analogous to the "partial render"
feature alredy found in POV?
And then, of course, there could be a preprocessing step
to derive the columns/rows of the bounding box of a given object.
Hermann Vosseler
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) |
Yes, I think that this kind of selective antialiasing would need
a 2-pass approach: The first pass would be a regular rendering with
no antialiasing, which marks pixels as "this pixel and its surrounding
pixels need to be antialiased" and "this pixel is not antialiased".
The second pass would raytrace the required pixels antialiased.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
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) |
PoD wrote:
> But it defeats the purpose of localised AA somewhat
> if you use the same settings for the background as
> for your (possibly small) object.
First, it would not always be the case that the background would even
require any AA at all. With soft backgrounds I think that object
specific AA could work pretty seamlessly.
Second, if a little AA was required for the background too, there can
still be a huge difference between low-quality AA and high-quality AA.
I think object-specific AA could work well. The biggest problem as I see
it would be to make bounding objects that were tight enough so that not
too many calculations are wasted...
Rune
--
3D images and anims, include files, tutorials and more:
Rune's World: http://rsj.mobilixnet.dk (updated May 20)
POV-Ray Users: http://rsj.mobilixnet.dk/povrayusers/
POV-Ray Ring: http://webring.povray.co.uk
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) |
Rune wrote:
>
> I think object-specific AA could work well. The biggest problem as I
> see it would be to make bounding objects that were tight enough so
> that not too many calculations are wasted...
Which is why the user would have to specify a specific aa-bound;
that way the user could be precise in selecting the areas that need
it; he could even select a portion of the object, if it were just
that one portion that was the problem.
Regards,
John
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) |
Apache wrote:
>
> Technically a really hard thing to do.
> If POV-Ray is going to do this, it should be able to trace the edges
> of objects on the screen. Try doing this with isosurfaces ;-)
There is no need to trace the edges. It merely tests to see if the
bounding object covers the pixel currently being traced. POV-Ray
already uses bounding objects heavily. If so, the *pixel* is anti-
aliased at a higher level.
Regards,
John
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) |
Warp wrote:
>
> I think that it would require that if the ray hits the object
> which has to be antialieased for the first time in the current line,
> we have to go back one pixel and render it again antialiased.
> And thinking about it, it would also require rendering the same pixel
> in the previous line again the first time we hit the object
> vertically.
This would be an issue with sampling method 2. Sampling method 1
doesn't worry as much about neighboring pixels.
Regards,
John
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) |
> Warp wrote:
>> I think that it would require that if the ray hits the object
>>which has to be antialieased for the first time in the current line,
>>we have to go back one pixel and render it again antialiased.
>>And thinking about it, it would also require rendering the same pixel
>>in the previous line again the first time we hit the object
>>vertically.
John VanSickle wrote:
> This would be an issue with sampling method 2. Sampling method 1
> doesn't worry as much about neighboring pixels.
No, to the contrary: method 1 has to go back if it detects a need of AA.
method 2 always keeps the current and the last generation of pixels
(of a square) and thus is always prepared for kicking in the AA.
Regards,
Hermann
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |