 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Nothing new, but:
In FAQ at
http://tag.povray.org/povQandT/languageQandT.html#blurredreflection it
is suggested that a good blurred reflection can be achieved using
averaged textures. That is true, but they can also be achieved a lot
faster using normals, for example:
finish {reflection 0.6}
normal {
bumps 0.16 // This obviously controls the amount of blur
scale 0.00001 // This must be small enough compared to scene scale
}
The key issue is to use good antialiasing with enough depth. Without AA
it looks very, very bad no matter what values given above. With AA
method 2 and depth=4 it starts to look very good. I think this should be
added to FAQ?
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Severi Salminen wrote:
> The key issue is to use good antialiasing with enough depth. Without AA
> it looks very, very bad no matter what values given above. With AA
> method 2 and depth=4 it starts to look very good. I think this should be
> added to FAQ?
How about everaging normals? And using focal blur to round out the
whole effect. It's what I'm using for my current project's lineoleum
texture... XD
--
Tim Cook
http://home.bellsouth.net/p/PWP-empyrean
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3ff89eaa$1@news.povray.org>,
Severi Salminen <sev### [at] NOT_THISsiba fi> wrote:
> In FAQ at
> http://tag.povray.org/povQandT/languageQandT.html#blurredreflection it
> is suggested that a good blurred reflection can be achieved using
> averaged textures. That is true, but they can also be achieved a lot
> faster using normals, for example:
This method tends to produce grainy results, and can be quite slow,
which is why the average texture method was developed. The average
texture method generally produces smoother results with fewer samples,
and doesn't require that the entire image be rendered with high
antialiasing settings.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3ff8c0c9$1@news.povray.org>,
Tim Cook <z99### [at] bellsouth net> wrote:
> How about everaging normals? And using focal blur to round out the
> whole effect. It's what I'm using for my current project's lineoleum
> texture... XD
Averaging normals gives a very different effect. The result of the
averaged normal is a single perturbed normal, which is then used for the
texturing and lighting calculations. The result is not blurred at all.
An average texture computes the texture for each normal and averages the
final colors, the antialiasing method just uses normals to generate fine
detail which is averaged by high antialiasing settings.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Severi Salminen <sev### [at] not_thissiba fi> wrote:
> In FAQ at
> http://tag.povray.org/povQandT/languageQandT.html#blurredreflection it
> is suggested that a good blurred reflection can be achieved using
> averaged textures. That is true, but they can also be achieved a lot
> faster using normals, for example:
The blur trick uses normals as well, but it has a couple of advantages
compared to your suggested method:
- Your suggestion requires quite heavy antialiasing to look good.
This is a nuisance for several reasons. It makes rendering slower
than necessary, and not only when rendering the object in question
(your suggestion is *not* faster than the averaged textures trick due
to this) but in the whole scene: Everything else will be antialiased
heavily as well (which sometimes is good, but more often than not it
will just be a waste of time since a lighter antialiasing often gives
a result which is good enough).
The trick works even without antialiasing (and antialiasing only
makes it look better) and achieves the same result (because it also
is based on normals) or even better.
- Your suggestion produces a grainy blur. Sometimes this is the desired
effect, but such grainy blur is also possible with the trick (but
without the need for heavy antialiasing).
The good thing is, however, that also smooth blur is possible (which
is achieved by making all the normals go to the same directions in all
points, which is achieved by scaling the normals large instead of small).
- It's easy to control how many reflected rays are sent to calculate the
blurred reflection with the trick. With your suggestion you don't have
practically any control on this. (The only way to be sure that a certain
number of reflected rays is always calculated would be to force
antialiasing on each pixel, but that would be quite extreme since it
would be done on the whole image and not only on the part where the
reflecting object is located.)
--
plane{-x+y,-1pigment{bozo color_map{[0rgb x][1rgb x+y]}turbulence 1}}
sphere{0,2pigment{rgbt 1}interior{media{emission 1density{spherical
density_map{[0rgb 0][.5rgb<1,.5>][1rgb 1]}turbulence.9}}}scale
<1,1,3>hollow}text{ttf"timrom""Warp".1,0translate<-1,-.1,2>}// - Warp -
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Warp wrote:
> The blur trick uses normals as well, but it has a couple of advantages
> compared to your suggested method:
>
> - Your suggestion requires quite heavy antialiasing to look good.
Yes, I thought this to be non-issue as I want to use quite heavy AA
normally. But for test renderings it will be an issue. And you are
correct that the heavy AA makes this otherwise fast method not so fast
afterall :(
> - Your suggestion produces a grainy blur.
It will be _totally_ smooth but only with heavy AA. Now I'm doing a test
rendering with "+a0.0 +am2 +r5" and yes, it is very smooth :) And
slooooowww...
> - It's easy to control how many reflected rays are sent to calculate the
> blurred reflection with the trick.
Also true. I think it I like(d) this single bumps method more because of
the simpler looking syntax. Averaging textures looks uglier in the scene
file and with "my" method one only has to alter one value to alter the
smoothness. And if there was a way to apply object related AA settings
it would be maybe more usable. If I can propose a new feature, this
would be it: object based AA. That way one could define high AA to very
small detailed objects without affecting the whole scene.
The single bumps method also works well if one does not want to make
_very_ reflective surface. I'm now constructing a decent parquet and the
simpler method looks good even without very heavy AA. It all depends
on the case. But most likely the averaging method is/can be allways
faster with more control. I have to try that one too.
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
There is a clear tendency that using one normal scaled very small with good
AA, is much faster than averaging a lot of textures. Sure, in theory, the
opposite is true. The micro-normal method isn't efficent because of the AA
that covers the entire scene, but nevertheless, in all my scenes it IS the
fastest method - by far!
The result is a little grainy, assuming you use only +r2 (which is 25
samples pr pixel) but this may not bother anyone. By using the other method
(averaging textures) there is a price to pay as well: It can produce very
inaccurate results, at least when the normals have random directions and you
don't average all 255 possible textures.
Severi: Use the method you think is best, and fastest.
Try this pov file that illustrates what I mean:
http://news.povray.org/povray.binaries.scene-files/29562/
Regards,
Hugo
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Severi Salminen" <sev### [at] NOT_THISsiba fi> wrote in message
news:3ff95bd4$1@news.povray.org...
> If I can propose a new feature, this
> would be it: object based AA. That way one could define high AA to
very
> small detailed objects without affecting the whole scene.
Now wouldn't that be good! Nice idea.
Steve
> Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> If I can propose a new feature, this
> would be it: object based AA. That way one could define high AA to very
> small detailed objects without affecting the whole scene.
The word I was looking for was of course "specific": object specific AA.
Severi
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Severi Salminen wrote:
> Warp wrote:
>
>> The blur trick uses normals as well, but it has a couple of advantages
>> compared to your suggested method:
>>
>> - Your suggestion requires quite heavy antialiasing to look good.
>
>
> Yes, I thought this to be non-issue as I want to use quite heavy AA
> normally. But for test renderings it will be an issue. And you are
> correct that the heavy AA makes this otherwise fast method not so fast
> afterall :(
If I may make an addition. If one DOES use heavy AA usually then the
single bumps method produces, of course, a lot faster reflections. Using
AA and many averaged textures slows thing down _a lot_! This depends
also the amount of reflecting surfaces in final image: the more area
there is, the faster the single bumps method will be. And I still think
the averaging and creating randomly moved normals looks and feels very
ugly in scene sources.
Newerthless, I strongly suggest that _both_ methods should be covered in
Pov-FAQ and TAG-Pov-FAQ as both methods have distinct advantages and
disadvantages depending on the actual situation. Would this be possible,
Warp?
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Severi Salminen" <sev### [at] NOT_THISsiba fi> a écrit dans le message
de news:3ff95bd4$1@news.povray.org...
> it would be maybe more usable. If I can propose a new feature, this
> would be it: object based AA. That way one could define high AA to very
> small detailed objects without affecting the whole scene.
For the record, this very feature exists in Cinema 4D (I'm compiling a list
of C4D vs POV-Ray features to be released soon): one defines AA at scene
level but each object can have a special tag attached that allows it to have
a higher AA quality (among other things that can be set at object level,
like radiosity). And yes, this is a big time saver (and an eye opener about
the type of optimisations that could be done in POV-Ray).
G.
--
**********************
http://www.oyonale.com
**********************
- Graphic experiments
- POV-Ray and Poser computer images
- Posters
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On Mon, 5 Jan 2004 21:16:53 +0100, "Gilles Tran" <gitran_nospam_@wanadoo.fr>
wrote:
> > it would be maybe more usable. If I can propose a new feature, this
> > would be it: object based AA. That way one could define high AA to very
> > small detailed objects without affecting the whole scene.
>
> For the record, this very feature exists in Cinema 4D (I'm compiling a list
> of C4D vs POV-Ray features to be released soon): one defines AA at scene
> level but each object can have a special tag attached that allows it to have
> a higher AA quality (among other things that can be set at object level,
> like radiosity). And yes, this is a big time saver (and an eye opener about
> the type of optimisations that could be done in POV-Ray).
I made a patch with postprocessing based on the functions. Using functions
makes it possible to postprocess only selected selected parts of outputed
image. Mixing it with camera_view pigment I made or with projection pattern it
is possible to create selection with areas represented by views of object. In
other words it looks possible to do such effect with my patches thought I
would need some tests. Will post some images to p.b.i I hope, thought I think
first implementation will not be large time saver.
ABX
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hugo Asm <hua### [at] post3 tele dk> wrote:
> there is a price to pay as well: It can produce very
> inaccurate results, at least when the normals have random directions and you
> don't average all 255 possible textures.
I don't understand how it is more inaccurate than using one normal scaled
very small + antialiasing, which also shoots reflected rays in random
directions.
--
#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
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Severi Salminen <sev### [at] not_thissiba fi> wrote:
> If I may make an addition. If one DOES use heavy AA usually then the
> single bumps method produces, of course, a lot faster reflections. Using
> AA and many averaged textures slows thing down _a lot_!
Then you are using it wrong.
If you want to use heavy antialiasing, you don't need to average so
many textures (supposing you are scaling the normals small).
If eg. 100 averaged textures look good without antialiasing, but you
are going to use heavy antialiasing for the final image, you can decrease
that count to eg. 20 or 10 or whatever.
The advantage is that it will produce a better result than a single
normal with the same antialiasing settings. Even two averaged textures will.
--
#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 don't understand how it is more inaccurate than using one normal
scaled
> very small + antialiasing, which also shoots reflected rays in random
> directions.
Perhaps I should add, that I was thinking of averaging textures with their
normals scaled very big. Otherwise there is no difference.
When random normals are scaled very big, they reveal a 'banding' effect that
I would say is more inaccurate than 'noise' because it catches the eye and
is perceived as "this looks wrong" rather than "this image has a little
noise".
Regards,
Hugo
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3ffaafe1$1@news.povray.org>,
"Hugo Asm" <hua### [at] post3 tele dk> wrote:
> When random normals are scaled very big, they reveal a 'banding' effect that
> I would say is more inaccurate than 'noise' because it catches the eye and
> is perceived as "this looks wrong" rather than "this image has a little
> noise".
It is no less accurate...what you are talking about is a sampling
artifact. The actual inaccuracy is the same, the errors in the small
normal method are just less spatially organized. The banding is usually
easier to eliminate than noise...the situation is very similar to the
tradeoffs between method 1 and method 2 or 3 media.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Gilles Tran wrote:
> "Severi Salminen" <sev### [at] NOT_THISsiba fi> a écrit dans le m
essage
> de news:3ff95bd4$1@news.povray.org...
>
>>it would be maybe more usable. If I can propose a new feature, this
>>would be it: object based AA. That way one could define high AA to very
>>small detailed objects without affecting the whole scene.
>
>
> For the record, this very feature exists in Cinema 4D (I'm compiling a
list
> of C4D vs POV-Ray features to be released soon): one defines AA at scen
e
> level but each object can have a special tag attached that allows it to
have
> a higher AA quality [...]
I would like to point out a few things:
first of all 'per object aa settings' is not a clearly defined feature
at all, it would be if we only had opaque non-reflective surfaces in the
scene. In all other cases the color of a sample is not just determined
by a single object so you can't find a general solution for this (no
matter how you implement it there will always be cases where it does not
do what you want).
second: the idea that you need higher aa settings for 'small and
detailed objects' to me seems to show a misunderstanding of the concept
of adaptive antialiasing - you automatically get better antialiasing for
such objects. The reason you want per object settings in case of
blurred reflection is because you abuse aa for something it never was
designed for.
Of course variable antialiasing settings might still be interesting for
mere speed reasons - you have a scene with quite slow periferial parts
and you want to reduce aa settings there for a faster render but need
the high quality settings for a central region to look good. In such a
case you might not want to have the aa settings for a specific object
but for a specific region (you have to make sure of course you get a
smooth transit). For this a 2d antialiasing map might be more useful
(it would of course also be easier to implement... :-).
A remark on blurred reflection: a useful feature would probably an
adaptive sampling technique for this purpose - you send out a set of
rays from the surface of the reflective object and stop if their
returned colors do not differ more than a certain threshold - otherwise
you send more rays.
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 25 Oct. 2003 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
From: "Christoph Hormann" <chr### [at] gmx de>
Newsgroups: povray.general
Sent: Tuesday, January 06, 2004 6:57 PM
Subject: Re: A good blurred reflection with bumps
>first of all 'per object aa settings' is not a clearly defined feature
>at all, it would be if we only had opaque non-reflective surfaces in the
>scene. In all other cases the color of a sample is not just determined
>by a single object so you can't find a general solution for this (no
>matter how you implement it there will always be cases where it does not
>do what you want).
Well, yes, from a general point of view, and there would be cases where it
wouldn't work perfectly, probably. But in the "real" world of 3D scenes,
it's quite easy to see how this kind of feature can be extremely handy.
Let's assume that, default aa settings are usually good enough and represent
a good compromise between quality and speed (after all that's why these are
default settings). In my experience, better aa settings are often needed for
very specific situations: small regular patterns like grids, fine lines,
small letterings etc. In many cases it's a just window on a wall, a logotype
on a bottle, a plant, that sort of thing. Using high quality aa there isn't
much of a problem because the object doesn't occupy a lot of screen estate.
However, using the high quality aa on the entire scene is likely to bring it
down, because a good part of the screen space is going to be taken by the
other objects, those that were acceptable for the user with the default aa
settings but that will get "improved" anyway (I'm not talking about
quasi-uniform textures or surfaces there).
About having aa defined by zones, I think still it's much more practical to
have it defined per object. Not only it's often a object problem, as seen
above, but when doing animation that would be the only sensible way to do it
(one just doesn't want to define the zones frame by frame).
I could imagine, in an hypothetical POV-Ray, a syntax like this one:
global_settings{
radiosity{...}
antialiasing{...}
}
object{
...
object_settings{
radiosity{...}
antialiasing{...}
}
}
Note that this can already be done in POV-Ray, using several passes
(including a mask one) and an image editor (not for animation of course)...
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 25 Oct. 2003 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Gilles Tran wrote:
>
> Well, yes, from a general point of view, and there would be cases where it
> wouldn't work perfectly, probably. But in the "real" world of 3D scenes,
> it's quite easy to see how this kind of feature can be extremely handy.
> Let's assume that, default aa settings are usually good enough and represent
> a good compromise between quality and speed (after all that's why these are
> default settings). In my experience, better aa settings are often needed for
> very specific situations: small regular patterns like grids, fine lines,
> small letterings etc. In many cases it's a just window on a wall, a logotype
> on a bottle, a plant, that sort of thing. Using high quality aa there isn't
> much of a problem because the object doesn't occupy a lot of screen estate.
> However, using the high quality aa on the entire scene is likely to bring it
> down, because a good part of the screen space is going to be taken by the
> other objects, those that were acceptable for the user with the default aa
> settings but that will get "improved" anyway (I'm not talking about
> quasi-uniform textures or surfaces there).
> About having aa defined by zones, I think still it's much more practical to
> have it defined per object. Not only it's often a object problem, as seen
> above, but when doing animation that would be the only sensible way to do it
> (one just doesn't want to define the zones frame by frame).
Well, you have not said how you think per object settings are supposed
to work. In case of a wire grid for example you would have to set
higher quality settings for both the grid object and the background to
get it nicely antialiased and if the grid is reflective or if it only
visible as a reflection in another object it might not work at all
depending on the implementation.
I understand that per object settings seem like an exciting feature for
the user because they seem straight away to set up but i have my doubts
about the usefulness. Maybe you could post a sample of using this
feature in C4D. In case of radiosity per object settings would be
easier to implement BTW but in most cases it would be more important to
specify different settings for different parts of the same object.
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 25 Oct. 2003 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Severi Salminen" <sev### [at] NOT_THISsiba fi> wrote in message
news:3ff9c2c2$1@news.povray.org...
>
> > If I can propose a new feature, this
> > would be it: object based AA. That way one could define high AA to
very
> > small detailed objects without affecting the whole scene.
>
> The word I was looking for was of course "specific": object specific
AA.
To me, it's still the same thing;
Object/rock/model/et al: apply AA to said, (not whole image).
If you didn't mean that, then lose the word 'object'.
BUT, it 'was' still a great idea and someone should work on it one
day, you know, to see if it's at least viable somehow. It would knock
the socks off some others out there. ;)
Steve
>
> Severi
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
This is just a late post, after having read many of the already present
posts regarding blurred reflections... IMHO, the main problem is how blurred
reflections are achieved: either by small normals but high Antialiasing, or
lots of averaged textures. The advantage of the first is the ease of the
script, but the entire image will receive heavy AA, which may take
considerable amounts of time. Averaged textures are more complex to script,
but have better modifiable and predictable results, but don't work well with
too much AA, as texture-averaging along with supersampling is
time-consuming.
What I think would be needed is an adjustable reflection-feature for blurred
reflections. AFAIK (at least thats what someone mentioned at one time)
MegaPOV just did the "average-texture"-operation internally, which was
faster than doing it via script. Still, if the reflection rays could, for
example, take two values, that might be sufficient for most cases. One value
defines the amount of reflection-rays (sample-rate) e.g. 25 or such. The
second value defines an angle, which would define the deviation from the
actual specular reflection. The samples would, similiar to radiosity for
example, be spread evenly throughout the area of the angle-driven cone.
Some extra options, e.g. if the blurred reflection is actually sampled from
a reflection itself, might adjust the amount of samples. That's just an
idea, and I'm completely unsure how easy or difficult it might be to
implement. But IMHO I think that approach would still leave options for
average-texture or heavy AA, but with even spread of the reflection-samples
and angle of specular reflection I think that a general, quick and easy
solution could be obtained that way.
Regards,
Tim
--
"Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Email: tim.nikias (@) nolights.de
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Warp wrote:
>>If I may make an addition. If one DOES use heavy AA usually then the
>>single bumps method produces, of course, a lot faster reflections. Using
>>AA and many averaged textures slows thing down _a lot_!
>
>
> Then you are using it wrong.
>
> If you want to use heavy antialiasing, you don't need to average so
> many textures (supposing you are scaling the normals small).
> If eg. 100 averaged textures look good without antialiasing, but you
> are going to use heavy antialiasing for the final image, you can decrease
> that count to eg. 20 or 10 or whatever.
> The advantage is that it will produce a better result than a single
> normal with the same antialiasing settings. Even two averaged textures will.
Of course I mean the method suggested in the FAQ: scaling the normals
big. There is still a certain minimum amount of textures you need to
average in order to get decent results. If you use heavy AA in addition,
the result will be slower than if you used single bumps scaled down.
Single normal is definitely faster than multiple normals? The point is
that if single normal (scaled down) produces perfect results, why use
multiple. Single up scaled normal can not result _any_ blurness in
reflections whereas single down scaled can - IF the rest of the scene
demands heavy AA. And this should be at least mentioned in FAQ.
But, if multiple _down_ scaled normals produce even better reflections
with modest AA without too many averages than up scaled, then that
should be mentioned also. Gosh, I'm now just a bit too...well...in happy
mood...to get this straightened - it's 4.33 AM...
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3ffb472d$1@news.povray.org>,
"Tim Nikias v2.0" <tim.nikias (@) nolights.de> wrote:
> What I think would be needed is an adjustable reflection-feature for blurred
> reflections. AFAIK (at least thats what someone mentioned at one time)
> MegaPOV just did the "average-texture"-operation internally, which was
> faster than doing it via script.
MegaPOV motion blur did something similar, except that it traced
randomized reflection rays. The result had the same grainyness problems
as the small-normal, high-AA method, though it wasn't as slow. And the
surface shading and highlights would have been slightly less accurate,
because only the reflection component was modified, but this probably
doesn't amount to much.
> Still, if the reflection rays could, for
> example, take two values, that might be sufficient for most cases. One value
> defines the amount of reflection-rays (sample-rate) e.g. 25 or such. The
> second value defines an angle, which would define the deviation from the
> actual specular reflection. The samples would, similiar to radiosity for
> example, be spread evenly throughout the area of the angle-driven cone.
This is what MegaPOV did. You seem to know that, but you also seem to be
trying to suggest something new...am I missing something?
The only difference is that in MegaPOV, the rays weren't evenly
distributed over the cone, but fell off toward the edges...it basically
shot toward random points in a sphere, as I recall. An even angular
distribution would be more difficult...and not necessarily more
realistic.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Well, you have not said how you think per object settings are supposed
> to work. In case of a wire grid for example you would have to set
> higher quality settings for both the grid object and the background to
> get it nicely antialiased and if the grid is reflective or if it only
> visible as a reflection in another object it might not work at all
> depending on the implementation.
The easiest approach would be to apply higher AA to objects that the
rays hit first. I don't think there would be any need for "2nd or more
generation" object specific AA. So if the ray hits a transparent object
with higher AA, then we would AA only that specific point no matter what
objects there are behind (with whatever AA settings). Basically this is
same as 2D AA map based on regions - I think?
And I don't think this is misusing AA when aiming for blurred
reflections. I think down scaled normals IS more like a real world
approximation of blurred reflections. AA simply tries to outcome the
resolution (and eye) limitations in that situation. Isn't that the
purpose of AA?
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>>> If I can propose a new feature, this
>>>would be it: object based AA. That way one could define high AA to
>
> very
>
>>>small detailed objects without affecting the whole scene.
>>
>>The word I was looking for was of course "specific": object specific
>
> AA.
>
> To me, it's still the same thing;
>
> Object/rock/model/et al: apply AA to said, (not whole image).
>
> If you didn't mean that, then lose the word 'object'.
No, I just think "specific" is more appropriate word here than "based".
I'm talking about the same thing, English is just not my native language :-)
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Severi Salminen wrote:
>
> And I don't think this is misusing AA when aiming for blurred
> reflections. I think down scaled normals IS more like a real world
> approximation of blurred reflections. AA simply tries to outcome the
> resolution (and eye) limitations in that situation. Isn't that the
> purpose of AA?
No. The problem with blurred reflection is not a resolution problem, if
it was you could render the scene at larger size (without aa) and get a
nice image. Blurred reflections is about blur, i.e. averaging of color
values. This is not unrealistic at all, in real life the averaging is
mostly matter of interference, diffraction, etc.
And aa is not designed to generate blur, it is meant to diminish
aliasing artefacts due to the discrete sampling of an image. The effect
that it generates blur in your images is in fact only an unintended side
effect.
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 25 Oct. 2003 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> It is no less accurate...what you are talking about is a sampling
> artifact. The actual inaccuracy is the same, the errors in the small
> normal method are just less spatially organized. The banding is usually
> easier to eliminate than noise...the situation is very similar to the
> tradeoffs between method 1 and method 2 or 3 media.
Okay, thanks for clearing that up.
You're right that "artifact" is the correct expression.
Regards,
Hugo
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> This is what MegaPOV did. You seem to know that, but you also seem to be
> trying to suggest something new...am I missing something?
Ehm, well, I never used MegaPOV, so my assumptions were based upon something
somebody told me... Now I'm completely unsure whether what I'm saying was
already existing at some point... Well... If we just take the reflection
rays, I'd think that'd be sufficient. Specular highlights is a crude
approach, meant to "simulate" highlights, were there "should" actually be a
bright object to reflect. I don't see any limitation with that. Yet again,
instead of an angular cone, one could use more complex setups, to actually
model BRDFs (BiDirectional Distribution Functions).
Yet again, the problem with the sampling... But isn't sampling a problem all
the time? I'd just suggest using an evenly spaced bunch of samples, so that
nearby pixels might (when their surface-normal is same) shoot in the general
same direction and thus wouldn't be so far apart colorwise to make artifacts
that visible...
I' ve got no clue though how it was really achieved technically in MegaPOV,
and from your post, I guess that I'm just suggesting something which has be
done before, but didn't make it into POV 3.5 for some reasons. Perhaps I'll
have to do dig into the Source-Code and come up with an approach myself, but
that'll require time and patience until I'm capable to do that. Still, its
on my to-do list for my life... :-P
Regards,
Tim
--
"Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Email: tim.nikias (@) nolights.de
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> No. The problem with blurred reflection is not a resolution problem, if
> it was you could render the scene at larger size (without aa) and get a
> nice image. Blurred reflections is about blur, i.e. averaging of color
> values. This is not unrealistic at all, in real life the averaging is
> mostly matter of interference, diffraction, etc.
> And aa is not designed to generate blur, it is meant to diminish
> aliasing artefacts due to the discrete sampling of an image. The effect
> that it generates blur in your images is in fact only an unintended side
> effect.
But isn't this the case: if I render an image much larger and view it
from _large enough distance_ (where the individual pixels/"grains" can't
be perceived by the eye) I will see only good smooth blur on
reflections, not grains. And on the other hand, if our eyes had infinite
resolution, the blurred reflections in real life would be quite
different looking. This is not about AA generating the blur, but makeing
it look realistic as it would look in real life. But then again, I have
not ever looked through the microscope at a blurry reflecting surface,
but somehow I still think a single normal pattern is more realistic
approach.
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <vcs### [at] triton imagico de>,
Christoph Hormann <chr### [at] gmx de> wrote:
> No. The problem with blurred reflection is not a resolution problem, if
> it was you could render the scene at larger size (without aa) and get a
> nice image. Blurred reflections is about blur, i.e. averaging of color
> values. This is not unrealistic at all, in real life the averaging is
> mostly matter of interference, diffraction, etc.
A blurred reflection is the result of small surface features causing a
reflections from nearby points on the surface to go in different
directions. The area of a receptor in the eye covers an area of the
surface, with many reflections from microfacets. And this is exactly
what antialiasing is intended to do...it samples the area covered by a
pixel, rather than a single point. Micronormals combined with very high
supersampling would be the most accurate method. However, supersampling
the surface geometry is usually a waste of time, as well as the diffuse
and highlight aspects of the texture, so a method that samples only the
reflections would be quite a bit more efficient.
There is a blurring effect in the eye and brain, which is why things
like dithering work, but it results in a grainy appearance even when
individual features can not be perceived. You can tell sand, salt, and
sugar are granular even when you can't see individual grains. Objects
that appear to have a smooth blurryness to their reflections have
surface features too small for this to come into play.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3ffb75ea$1@news.povray.org>,
Severi Salminen <sev### [at] NOT_THISsiba fi> wrote:
> No, I just think "specific" is more appropriate word here than "based".
> I'm talking about the same thing, English is just not my native language :-)
I agree...it isn't based on the object, it is just specific to the
portions of the image where that object is visible.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3ffb74d6$1@news.povray.org>,
Severi Salminen <sev### [at] NOT_THISsiba fi> wrote:
> The easiest approach would be to apply higher AA to objects that the
> rays hit first. I don't think there would be any need for "2nd or more
> generation" object specific AA. So if the ray hits a transparent object
> with higher AA, then we would AA only that specific point no matter what
> objects there are behind (with whatever AA settings). Basically this is
> same as 2D AA map based on regions - I think?
One problem...media containers, windows, and other low-visibility
transparent surfaces. And you can't just pick the highest AA settings
hit...maybe you have a scene with a starry sky, and want lower settings
there so they don't get AA'd into oblivion. You'd want to be able to
exclude such objects, or maybe use the first hit that specifies a
per-object AA setting rather than the first hit. But then, what's the
first hit with an AA setting? Are reflections ignored? Say you have a
highly reflective window into another room. The other room has an object
with one custom AA setting, the room you're in has an object with
another custom setting, and the reflection of that one overlaps the
transmitted image of the other.
Maybe it would be possible to separate the antialiasing of shape
geometry, texture, reflection, and transparency...but the system starts
to get a lot more complex. And what do you do at the edges? Say you have
a high-AA object partially in front of a no-AA object...
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Severi Salminen
Subject: Re: A good blurred reflection with bumps
Date: 7 Jan 2004 09:46:56
Message: <3ffc1be0@news.povray.org>
|
|
 |
|  |
|  |
|
 |
> One problem...media containers, windows, and other low-visibility
> transparent surfaces. And you can't just pick the highest AA settings
> hit...
I think picking the highest AA setting along the path of the ray would
be the easiest to implement and would work in many situations quite
well. The overall setting would be the minimum and object specific
settings would only increase this. Then there would not be any means to
lower AA settings for certain objects below the overall AA settings but
is that a big problem? There would still be a possibility to lower the
overall settings.
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Christopher James Huff" <cja### [at] earthlink net> wrote in message
news:cja### [at] netplex aussie org...
> In article <3ffb75ea$1@news.povray.org>,
> Severi Salminen <sev### [at] NOT_THISsiba fi> wrote:
>
> > No, I just think "specific" is more appropriate word here than
"based".
> > I'm talking about the same thing, English is just not my native
language :-)
>
> I agree...it isn't based on the object, it is just specific to the
> portions of the image where that object is visible.
....and that to me, sounds like a better idea.
Steve
>
> --
> Christopher James Huff <cja### [at] earthlink net>
> http://home.earthlink.net/~cjameshuff/
> POV-Ray TAG: <chr### [at] tag povray org>
> http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Christoph Hormann" <chr### [at] gmx de> a écrit dans le message de
news:2rp### [at] triton imagico de...
> I understand that per object settings seem like an exciting feature for
> the user because they seem straight away to set up but i have my doubts
> about the usefulness. Maybe you could post a sample of using this
> feature in C4D.
See my post in p.advanced-users.
G.
--
**********************
http://www.oyonale.com
**********************
- Graphic experiments
- POV-Ray and Poser computer images
- Posters
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <4h9### [at] triton imagico de>,
Christoph Hormann <chr### [at] gmx de> wrote:
> A remark on blurred reflection: a useful feature would probably an
> adaptive sampling technique for this purpose - you send out a set of
> rays from the surface of the reflective object and stop if their
> returned colors do not differ more than a certain threshold - otherwise
> you send more rays.
Or until the variance drops below some value. Focal blur uses such an
adaptive algorithm, it could probably be adapted to blurred reflection.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I didn't exactly add this suggestion to the Q&T, but some updated
information has been added to the blurred reflection trick text due to
many valid points in this thread.
--
#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 didn't exactly add this suggestion to the Q&T, but some updated
> information has been added to the blurred reflection trick text due to
> many valid points in this thread.
Thanks for additions! Now it basically covers both approaches.
Severi S.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |