POV-Ray : Newsgroups : povray.general : media tester scene Server Time
22 Dec 2024 18:24:03 EST (-0500)
  media tester scene (Message 1 to 10 of 17)  
Goto Latest 10 Messages Next 7 Messages >>>
From: Kenneth
Subject: media tester scene
Date: 9 Sep 2017 17:25:00
Message: <web.59b45aa0c2559bcd883fb31c0@news.povray.org>
The recent discussion about emission media here...

http://news.povray.org/povray.newusers/thread/%3Cweb.59ad8cfca4b127e95cafe28e0%40news.povray.org%3E/

....gave me an idea to put together a basic, easy-to-use media tester scene (for
all three media types), for experimentation, and for the *combining* of
different medias (of the same or complementary color.) The scene is basically a
media 'cloud', with extra objects of specific colors to show how the media
affects them.  Although POV-Ray already includes some example scenes that
demonstrate the use of media, this tester allows easier changes and
combinations, using simple on-off switches, as well as changes to the media
parameters (color, density, etc.)  My original reason for making this was to
test PURE-color media, but it can be used for any color. It uses the recommended
media settings of
                 method 3
                 intervals 1
                 samples xx (a single value)

I made this in version 3.7 (actually 3.7.1 beta 9). I haven't tested it in v3.6,
but I think it should work there as well.

It's initially set up to render a pure green cloud, with lighting effects.
(Scattering media + complementary-color absorption media.) But the various media
combinations show some interesting effects, as well as the 'filtering' of
background colors. Experiment with it! I hope it proves useful. Feel free to
comment or to suggest changes.

----------------
// NOTE 1: All medias use the same density PATTERN.
// NOTE 2: When using v3.7xx, you will get warning messages about
// "high ambient value" for the objects. Ignore those.

#version 3.71; // or 3.7, etc.

global_settings{assumed_gamma 1.0  max_trace_level 5}
#default {finish{ambient 1 diffuse 0}}

#declare LIGHT_ON = on; // (only affects scattering media,
// and the long box embedded in it)

#declare BACKGROUND_COLOR = 2; // switch-- for the color/pattern of
// the background box.
// 1 for WHITE
// 2 for medium GRAY (rgb .214)
// 3 for BLACK
// 4 for HEXAGON pigment pattern (with its default colors of red,
// green and blue)

// These three medias have the SAME color and density amount;
// change those below.
#declare EMISSION_MEDIA = off;
#declare ABSORPTION_MEDIA = off;
#declare SCATTERING_MEDIA = on;
     #declare EXT = 1.0; // EXTINCTION amount, only for SCATTERING media

#declare MEDIA_COLOR = <0,1,0>; // color of the main media (but not
// the density multiplier)
#declare MEDIA_DENSITY = 4.0; // density multiplier for the main media
// (but not the color)
#declare SAM = 20; // media samples

#declare ADD_COMPLEMENTARY_COLOR_EMISSION = off; // add EMISSION media but
// with the COMPLEMENTARY color of the main media.
    #declare C_C_E_DENSITY = 2.0; // density multiplier for this

#declare ADD_SAME_COLOR_ABSORPTION = off; // add ABSORPTION media but
// with the SAME color as the main media.
    #declare S_C_A_DENSITY = 2.5; // density multiplier for this

#declare ADD_COMPLEMENTARY_COLOR_ABSORPTION = on; // add ABSORPTION media but
// with the COMPLEMENTARY color of the main media.
    #declare C_C_A_DENSITY = 4.0; // density multiplier for this

#declare ADD_COLORLESS_ABSORPTION = off; // adds ABSORPTION media with
// NO color, to absorb ALL colors equally.
    #declare N_C_DENSITY = 2.5; // density multiplier for this

background {rgb .5}

camera {
  perspective
  location  <0, .3, -9>
  look_at   <0, 0,  0>
  right     x*image_width/image_height
  angle 16
}

#if(LIGHT_ON)
light_source {
  0*x
  color rgb <1,1,1>
  translate <-20, 100, -20>
}
#else
#end

plane{y,-1.05
    no_shadow
    pigment{hexagon scale .3*<1,1,6>}
    }

// background box
box{<-.35,-.5,0>,<.35,.5,0>
    no_shadow
    scale 10
        pigment{
                #switch(BACKGROUND_COLOR)
                #case(1)
                rgb 1
                #break
                #case(2)
                rgb .218
                #break
                #case(3)
                rgb 0
                #break
                #case(4)
                hexagon scale .35 rotate 90*x
                #break
                #else
                #end
            }
        translate 20*z
        }

#declare DENSITY_PATTERN =
density{
        spherical
        color_map{
             [.20 rgb 0]
             [.23 rgb 1]
                 }
             scale 3.5
             warp{turbulence .7 omega .5}
             scale 1/3.5
        }

sphere{0,1
   // no_shadow // DON'T add this-- it eliminates scattering media's
   // self-shadowing
    hollow on
        pigment{rgbt 1}
        interior{
                #if(EMISSION_MEDIA)
                    media{
                    method 3
                    intervals 1
                    samples SAM
                    emission MEDIA_DENSITY*MEDIA_COLOR
                    density{DENSITY_PATTERN}
                         }
                #else
                #end

                #if(ABSORPTION_MEDIA)
                    media{
                    method 3
                    intervals 1
                    samples SAM
                    absorption MEDIA_DENSITY*MEDIA_COLOR
                    density{DENSITY_PATTERN}
                         }
                #else
                #end

                #if(SCATTERING_MEDIA)
                    media{
                    method 3
                    intervals 1
                    samples SAM
                    scattering{1, MEDIA_DENSITY*MEDIA_COLOR extinction EXT}
                    density{DENSITY_PATTERN}
                         }
                #else
                #end

                #if(ADD_COMPLEMENTARY_COLOR_EMISSION)
                    media{
                    method 3
                    intervals 1
                    samples SAM
                    emission C_C_E_DENSITY*(1 - MEDIA_COLOR)
                    // (1 - MEDIA_COLOR) will change <1,1,0> into
                    // <0,0,1>, for example
                    density{DENSITY_PATTERN}
                         }
                #else
                #end

                #if(ADD_SAME_COLOR_ABSORPTION)
                    media{
                    method 3
                    intervals 1
                    samples SAM
                    absorption S_C_A_DENSITY*MEDIA_COLOR
                    density{DENSITY_PATTERN}
                         }
                #else
                #end

                #if(ADD_COMPLEMENTARY_COLOR_ABSORPTION)
                    media{
                    method 3
                    intervals 1
                    samples SAM
                    absorption C_C_A_DENSITY*(1 - MEDIA_COLOR)
                    density{DENSITY_PATTERN}
                         }
                #else
                #end

                #if(ADD_COLORLESS_ABSORPTION)
                media{
                method 3
                intervals 1
                samples SAM
                absorption N_C_DENSITY
                density{DENSITY_PATTERN}
                     }
                #else
                #end
                } // end of interior
       }

// long box embedded in media
box{-.37,.55 scale <3.5,.15,.15>
        pigment{
            gradient x
            scale .7
            color_map{
                [0.0 rgb <1,0,0>]
                [.333 rgb <1,0,0>]
                [.333 rgb <0,1,0>]
                [.666 rgb <0,1,0>]
                [.666 rgb <0,0,1>]
                     }
                }
        // OR...
        // pigment{rgb .5}

    rotate -60*y
    rotate -15*x
    translate .1*y
    }
// END


Post a reply to this message

From: Kenneth
Subject: Re: media tester scene
Date: 9 Sep 2017 17:55:01
Message: <web.59b46207252f876e883fb31c0@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:

>
> // long box embedded in media
> box{-.37,.55 scale <3.5,.15,.15>
>         pigment{
>             gradient x
>             scale .7
>             color_map{
>                 [0.0 rgb <1,0,0>]
>                 [.333 rgb <1,0,0>]
>                 [.333 rgb <0,1,0>]
>                 [.666 rgb <0,1,0>]
>                 [.666 rgb <0,0,1>]
>                      }
>                 }
>         // OR...
>         // pigment{rgb .5}
>
>     rotate -60*y
>     rotate -15*x
>     translate .1*y
>     }
> // END

Oops, a small mistake: This box shouldn't have the 'default' finish (although it
doesn't really affect the scene.) But substitute this for it...

// long box embedded in media
box{-.37,.55 scale <3.5,.15,.15>
        texture{
        pigment{
            gradient x
            scale .7
            color_map{
                [0.0 rgb <1,0,0>]
                [.333 rgb <1,0,0>]
                [.333 rgb <0,1,0>]
                [.666 rgb <0,1,0>]
                [.666 rgb <0,0,1>]
                     }
                }
        // OR...
        // pigment{rgb .5}
        finish{ambient .2 diffuse .8}
        }

    rotate -60*y
    rotate -15*x
    translate .1*y
    }
// END


Post a reply to this message

From: Thomas de Groot
Subject: Re: media tester scene
Date: 10 Sep 2017 02:54:52
Message: <59b4e1bc$1@news.povray.org>
Thank you indeed! This is a very useful little tester. I shall play with 
it asap.

-- 
Thomas


Post a reply to this message

From: Bald Eagle
Subject: Re: media tester scene
Date: 10 Sep 2017 11:25:00
Message: <web.59b55859252f876e5cafe28e0@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:

Hi Kenneth,
Thanks very much for writing out the code to demonstrate those media effects!
:)

That's quite interesting - I've only run a few variants, and it already shows
effects that I might not have predicted on my own, like the interaction between
the reds and the blues with the green cloud.

I think that if you look over the scene, and think about why someone might want
to use it, then a few things come to my mind.

(I'm just gonna spew the raw contents of my overly caffeinated brain...)




First, I'd suggest that the scene be broken up into a grid of smaller clouds so
that a few different variants could be compared, and decrease the need (and
time) to render 2, 3, or 9 different images.
(Less overall media coverage of the visible scene would also likely result in
faster rendering.)

I found this video just yesterday, and I think this guy had some good ideas as
well:
https://www.youtube.com/watch?v=KOJFM-FOJVg
There's nothing inherently in the image that lets the user know exactly what
settings were used - so maybe a [encoded] caption of some kind could be included
under each cloud.
(perhaps have a long vector, or an array, or a macro take that encoded list and
generate the scene that way, to immediately reproduce it)
I'd also include a _grayscale_ long-box.
And maybe a light source or a white emitting cylinder or long-box.

This type of experimental scene unfortunately suffers from its reliance on the
end user to come up with the values and combinations to be used, and hopefully
home in on some desired result.

As useful but simple and immediate enhancement - I'd just include some sample
values in the code to be rendered to show off media effects that you are
learning are possible.  You greater experience and knowledge of your own code
would allow you to provide examples that others might not come up with.


I think that after reading Ansel Adams' photography trilogy, where he explains
the basis of the Zone System, that a truly excellent scene should be a tool
whereby a user can have some idea of what they want, and iteratively home in on
it.
It should provide a logical, methodical way of reliably establishing in no
uncertain terms how to get (very close to) what the user wants.
Like a manually-guided octree search.  Just keep picking branches and updating
until you arrive at a leaf node.

If there is an equation of the resulting color between a solid or a light or a
media[um] and the cloud media - that could be graphed in rgb color space, then
that would be a useful tool to look at as a guide, and perhaps provide
inspiration for further enhancements of the scene.
Somehow declaring the visible scene as a pigment and using eval_pigment() to
give a readout of the perceived color at certain points in the image might be a
useful tool to get a better grasp of how media [numerically] interacts with
other scene elements.
Constructing an animation to show the progress of a certain value from one
extreme to another would be a great addition as well.

The problem here is that there are so many variables that can affect how the
media will look, and the effects it will have on other scene elements.
lighting, reflection, shadows, self-shadowing... RADIOSITY.  :|

Perhaps a number of different "environments" to test the media clouds in.
A model of the Cornell Box might appeal to an orderly scientific investigation.
https://en.wikipedia.org/wiki/Cornell_box

Or at least a few regular, predictable (and more boring) scene objects with
known dimensions, so that the effect of different "densities" (overall
path-length  https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law ) can be
seen.
Perhaps a nice way to restructure the test scene would be to put a cloud in the
center, surrounded by a ring of wedge-shaped media containers in front of 50%
reflectance (gray) boxes with an HSV strip down the middle or an HSV color
hexagon in the center.

Probably with even ambient value and orthographic camera.



Thanks again - I really love what you've done with the clouds and the
fire/smoke, and I hope I've given you some fun an interesting ideas.
I appreciate that you've taken the time to work a lot of this out, and I hope I
get some long-uninterrupted round-tuits soon, so that I can experiment with some
media scenes, and have them work without too much frustration.


Post a reply to this message

From: Kenneth
Subject: Re: media tester scene
Date: 10 Sep 2017 16:05:00
Message: <web.59b59995252f876e883fb31c0@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:
> "Kenneth" <kdw### [at] gmailcom> wrote:
>
> Hi Kenneth,
> Thanks very much for writing out the code to demonstrate those media effects!
> :)

You're welcome. I needed to do this as much for *myself* as for anyone else ;-)
The discussion in the other post raised some issues that I had not thought
about, with effects that I wasn't expecting. I wanted to come up with a way to
'see' those effects relatively quickly, without having to do lots of re-coding
permutations.
>
> I think that if you look over the scene, and think about why someone
> might want to use it, then a few things come to my mind...
>
WOW, you've done some excellent thinking about this, with some ideas I hadn't
thought about; I appreciate your effort. I need to digest them, to see which
ones are feasible (with my coding skills!), and which ones are out of my depth.
>
> First, I'd suggest that the scene be broken up into a grid of smaller
> clouds so that a few different variants could be compared, [to] decrease
> the need (and time) to render 2, 3, or 9 different images.
>
I like that idea. If I go that route, I'll make another complete tester scene
and post it separately. Then the one here can be thought of as a kind of
'first-step' or introduction to media/color interaction effects.
>
> There's nothing inherently in the image that lets the user know exactly
> what settings were used - so maybe a [encoded] caption of some kind
> could be included under each cloud. (perhaps have a long vector, or
> an array, or a macro take that encoded list and
> generate the scene that way, to immediately reproduce it)

I did initially inclue a caption (for one media permutation, anyway) but
eliminated that to make the code example shorter and not-so-complex. But it's a
very good idea. I'll work on that. As far as the vector stuff goes, I'm
definitely out of my depth.
>
> I'd also include a _grayscale_ long-box.
>
The color of the embedded box can actually be switched to gray (it's a
commented-out pigment in the code); but yes, it would be better to have a
'switch' to change between that and the current red-green-blue pigment.
>
> And maybe a light source...
>
There's actually a light already in the scene; but perhaps you mean a spotlight
aimed *at* the media, to see the effects? (Another idea would be to put a light
*inside* the media, shining outwards-- that always looks cool ;-) )
>
> This type of experimental scene unfortunately suffers from its reliance on the
> end user to come up with the values and combinations to be used, and hopefully
> home in on some desired result.
>
Alas, the trouble with making media objects is that there are so MANY
permutations of settings that can be chosen-- color, density amount, the density
PATTERN itself, the combinations of different medias-- that it boils down to
'user preference'-- even for one particular effect. However...
>
> A useful but simple and immediate enhancement - I'd just include some sample
> values in the code to be rendered to show off media effects that you are
> learning are possible.
>
..... that's a good idea. I was actually going to include a few examples (at
least of which on/off settings to use) for some 'standard' media effects, like a
typical sky cloud... but decided to post the test scene as a preliminary to
that. Trouble is, some examples may end up being non-trivial 'test scenes'
themselves! But I'll try to come up with some interesting examples anyway, and
post them here.
>
> I think that after reading Ansel Adams' photography trilogy, where he explains
> the basis of the Zone System, that a truly excellent scene should be a tool
> whereby a user can have some idea of what they want, and iteratively home
> in on it. It should provide a logical, methodical way of reliably
> establishing in no uncertain terms how to get (very close to) what the
> user wants.
>
I guess I need to write a book too ;-)  (Kidding.) The idea is excellent. Sounds
like there needs to be a *collection* of 'media tester scenes', each showing a
particular and separate kind of effect... to help guide the user to an
understanding of how to achieve it. (Unfortunately, media experimentation is a
'long and winding road', by its very nature ;-)  )
>
> Constructing an animation to show the progress of a certain value from one
> extreme to another would be a great addition as well.
>
I did such a thing several days ago-- using scattering media as an example-- and
of course it took awhile to render. I would have posted it... but I included
one-too-many many different value changes during the animation, with the result
being rather confusing :-(  I should have known better: Change only ONE value at
a time.
>
> The problem here is that there are so many variables that can affect how the
> media will look, and the effects it will have on other scene elements.
> lighting, reflection, shadows, self-shadowing... RADIOSITY.
>
Very true!!
>
I hope I've given you some fun and interesting ideas.
>
Definitely so! Thanks.


Post a reply to this message

From: Bald Eagle
Subject: Re: media tester scene
Date: 10 Sep 2017 19:30:00
Message: <web.59b5ca0a252f876e5cafe28e0@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:
> I appreciate your effort. I need to digest them, to see which
> ones are feasible (with my coding skills!), and which ones are out of my depth.

If you're putting in the serious work to make a tool / tutorial like this, then
feel free to just flat-out ask, "Hey, can you code me up something that does...
x,y,z?"


> I like that idea. If I go that route, I'll make another complete tester scene
> and post it separately. Then the one here can be thought of as a kind of
> 'first-step' or introduction to media/color interaction effects.

Or a last-step in the parameter selection flow to see it on a larger scale.


> I did initially inclue a caption (for one media permutation, anyway) but
> eliminated that to make the code example shorter and not-so-complex. But it's a
> very good idea. I'll work on that. As far as the vector stuff goes, I'm
> definitely out of my depth.

Well, it got _really_ interesting a while back:
http://news.povray.org/povray.advanced-users/thread/%3Cweb.577e597b5ff2a8e65e7df57c0%40news.povray.org%3E/?mtop=409379


> > I'd also include a _grayscale_ long-box.
> >
> The color of the embedded box can actually be switched to gray (it's a
> commented-out pigment in the code); but yes, it would be better to have a
> 'switch' to change between that and the current red-green-blue pigment.

Oh, well, I'm a hog - I'd want it all in the same scene at once.  :)

> > And maybe a light source...
> >
> There's actually a light already in the scene; but perhaps you mean a spotlight
> aimed *at* the media, to see the effects? (Another idea would be to put a light
> *inside* the media, shining outwards-- that always looks cool ;-) )

Yes, the light source INSIDE the media was what I was thinking.
I think we can safely assume that most light sources outside the media would be
easy to imagine.


> Alas, the trouble with making media objects is that there are so MANY
> permutations of settings that can be chosen-- color, density amount, the density
> PATTERN itself, the combinations of different medias-- that it boils down to
> 'user preference'-- even for one particular effect. However...

Right, but I'm imagining this as more of an automated demonstration tool, rather
than a template for making a media-filled object.
To some degree, I envision things like this "pointing" or suggesting in some
way, all of the possible paths one might take - be it the rendered image itself,
a caption, a link to further reading in the code comments, a comment, or a list
of commented-out or #case-switch-break-end examples of how all of the code might
possibly be implemented.


> ..... that's a good idea. I was actually going to include a few examples ....
Trouble is, some examples may end up be
ing non-trivial 'test scenes'
> themselves!

Indeed.  The sheer complexity of covering just an "adequate" number of cases /
permutations became immediately apparent as I thought about "blocking it out" -
you'd need an n-dimensional space, or a fairly long animation sequence that
cycled through a number of permutations.

Perhaps a scene could be constructed such that given the maximum number of sane
attributes to vary, it would cycle through THOSE values in the .ini animation.
That way any given permutation of _only the selected subset of possibilities_
would be rendered.  But the whole range of values that could be played with in
combination could be implied.
Then they could all be put together manually in something like your current test
scene.

Some combinations might benefit from a ternary plot.
https://en.wikipedia.org/wiki/Ternary_plot


> I guess I need to write a book too ;-)  (Kidding.) The idea is excellent.

Adams seemed to me like someone who was "a scientist, who just happened to have
photography as his subject of study."

Not to make this any more complex, but as it's in my my mind, I'll mention/ask
it.  Can media have pigments/textures that have filter / transmit /
_reflectance_?

> Sounds
> like there needs to be a *collection* of 'media tester scenes', each showing a
> particular and separate kind of effect... to help guide the user to an
> understanding of how to achieve it. (Unfortunately, media experimentation is a....

Yes, just perusing the media documentation suggests that perhaps a suite of
scenes might be necessary to adequately address the topic.

I'd say that this is an instance where certain caveats and pitfalls could be
addressed programatically due to the complexity of media.

"The question of whether the program should scale the density of the media with
the object is a question of interpretation: For example, if you have a glass of
colored water, a larger glass of colored water will be more colored because the
light travels a larger distance. This is how POV-Ray behaves. Sometimes,
however, the object needs to be scaled so that the media does not change; in
this case the media color needs to be scaled inversely."

So perhaps generate a media-filled container using a macro, and then use a Scale
variable to scale the container, and divide the color.  Also spit out a short
blurb to the #debug stream.
"Scale > 1.0  Adjusting media color to maintain constant intensity."
or some such.
Make_Container (blah, foo, bar, Scale)
{
scale Scale
color rgb <R, G, B> / Scale
#debug "Scale > 1.0  Adjusting media color to maintain constant intensity. \n"
}

I might try to search and see what sorts of media are the most commonly
requested / used


Post a reply to this message

From: Kenneth
Subject: Re: media tester scene
Date: 10 Sep 2017 22:35:01
Message: <web.59b5f4ec252f876e883fb31c0@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:
>
> Not to make this any more complex, but as it's in my my mind, I'll
> mention/ask it.  Can media have pigments/textures that have filter /
> transmit /_reflectance_?
>
Nope, as far as I know. (I'm not sure what 'reflectance' of the media itself
would even look like-- athough it *is* an intriguing idea.) Reflection can be
added to the media *object*-- but since that container is usually invisible
(rgbt 1.0), I don't know if reflections would even show up; I've never tried it.
Probably not what you meant anyway. As far as filter/transmit goes,
color-filtering can be done in the density-statement's color_map. I.e., instead
of using a single red-ish media like
         emission 1.5*<.3,1,.5>
and a density color_map with just float values and no actual colors, you can
'reverse' that. Like...
         emission 1.5
         density{
                spherical
                color_map{
                [0.0 rgb <.3,1,.5>] // red-ish
                [0.25 rgb <.3,1,.5] // ditto
                [0.25 rgb 0] // NO media-- i.e., transparent
                [0.75 rgb 0] // ditto
                [0.75 rgb <.2,.2,1>] // blue-ish
                [1.0 rgb <.2,.2,1>] // ditto
                         }
                 }
         warp{turbulence .5 omega .6}

The color_map itself controls the 'filtering' and the transparency of certain
parts of the media. Since this color_map by itself is just concentric shells of
colors and transparency-- basically showing only red-ish media on the outside--
something like turbulence is needed to 'stir it up', in order to see some of the
inner media and the transparent areas.


Post a reply to this message

From: omniverse
Subject: Re: media tester scene
Date: 11 Sep 2017 08:25:01
Message: <web.59b67f86252f876e9c5d6c810@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:
> I made this in version 3.7 (actually 3.7.1 beta 9). I haven't tested it in v3.6,
> but I think it should work there as well.

No idea why but v3.6 makes the scattering media overly bright. Either the
extinction value must be doubled (2.0) or light_source halved (0.5) to get
something similar to v3.7.
Changing to #version 3.6 within v3.7 doesn't matter, and gamma apparently isn't
the reason either.

Thanks for the test scene!


Post a reply to this message

From: clipka
Subject: Re: media tester scene
Date: 11 Sep 2017 09:19:32
Message: <59b68d64$1@news.povray.org>
Am 11.09.2017 um 14:20 schrieb omniverse:
> "Kenneth" <kdw### [at] gmailcom> wrote:
>> I made this in version 3.7 (actually 3.7.1 beta 9). I haven't tested it in v3.6,
>> but I think it should work there as well.
> 
> No idea why but v3.6 makes the scattering media overly bright. Either the
> extinction value must be doubled (2.0) or light_source halved (0.5) to get
> something similar to v3.7.
> Changing to #version 3.6 within v3.7 doesn't matter, and gamma apparently isn't
> the reason either.

Does the media brightness in v3.6 change when using different media
sampling parameters (sampling method, intervals, samples etc.)?


Post a reply to this message

From: Kenneth
Subject: Re: media tester scene
Date: 11 Sep 2017 13:15:00
Message: <web.59b6c36e252f876e883fb31c0@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:
>
> Some combinations might benefit from a ternary plot.
> https://en.wikipedia.org/wiki/Ternary_plot
>
I had to look up that term (I already knew the concept, but not the name; thanks
for the tip.)  It's an interesting idea; but here's what Wikipedia says...

"In a ternary plot, the proportions of the three variables a, b, and c must sum
to some constant, K. Usually, this constant is represented as 1.0 or 100%."
Meaning, the useful result is represented by some proportion of 'overlapping
area' within the triangle graph, where all 3 variables can still produce the
desired outcome.

To do adequate justice to media-- its many possible variables--a ternary plot
would not be adequate; it would need a 5,6 or 7-variable plot! ;-) Not simple
variables like media method or number of samples, but color, density, color-map
entries, etc.

But here's a simpler 3-variable example, with the sole purpose of making a
decent-looking puffy 'sky cloud.' For the three variables, I'll choose only
COLOR, DENSITY and TURBULENCE. Yet even with this 3-variable restriction, the
resulting ternary plot would have only a tiny circular area somewhere within the
triangle, representing 'a decent puffy cloud'. All other combinations of the 3
variables would indeed produce *something*--but it wouldn't really look like a
sky cloud.

Making a good media object or effect is a tricky business-- because we are so
attuned to real-life examples.


Post a reply to this message

Goto Latest 10 Messages Next 7 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.