POV-Ray : Newsgroups : povray.unofficial.patches : UberPOV is back Server Time
21 Dec 2024 11:11:16 EST (-0500)
  UberPOV is back (Message 16 to 25 of 25)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Mr
Subject: Re: UberPOV is back
Date: 1 Sep 2016 10:10:00
Message: <web.57c835f615c4456616086ed00@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Since I'm no Blender user, I need to do a bit of guesswork here...


Here is the fast illustrated summary of what's available:

https://www.blender.org/manual/render/blender_render/materials/properties/diffuse_shaders.html

In Blender Internal, you specify both a diffuse and a specular shader plus the
fresnel effect used for the "reflection block" which has nothing to do with the
one you can use in the diffuse, the later acts just as if you put some color_map
to alter object luminosity, darkening it along the vector of the lamp directed
at it.
>
> To the contrary: As you view the surface at a more shallow angle,
> applying a Fresnel term will make the diffuse component fall off; using
> the Lommel-Seeliger model, the diffuse brightness instead intensifies.
>

indeed!... But angles to the lamp vector


> > -Lambert with a Normal input ramp?
in Blender you can also use a color_map along the viewing direction, just like
povray slope_map
specifying the "normal" option makes the gradient apply in viewing direction.
whereas "energy" for instance applies it along the lamp vector


> > -Minnaert?
>
> Nope. Again, to the contrary: Minnaert also makes the diffuse component
> fall off at shallower angles.
>

Blender's implementation can also do the opposite: lightening faces as their
normals get perpendicular to the viewing direction, kind of like oren Nayer also
does , but orders of magnitude stronger.  (" if Dark is 1 you get exactly the
Lambertian result. Higher darkness values will darken the center of an object
(where it points towards the viewer). Lower darkness values will lighten the
edges of the object, making it look somewhat velvet")

So maybe we could say that Lommel-Seeliger  is a good model to emulate all
darkness values of Blender Minnaert below 1 wile values above could switch to a
darkening slope_map/aoi pattern ?

And Brilliance parameter would be better to emulate Fresnel as it's more light
dependant than viewing angle dependant???


Anyway, at the moment I meet a bigger issue, as I see no variation when trying
to use the two new models in pov, are they confirmed to work in your Windows 64
build?



The Minnaert shader in POV was the topic of this work:
http://news.povray.org/povray.binaries.images/thread/%3C3f6ccdf7%40news.povray.org%3E/

Has it been used for this feature or can it still be added to all the options?

Thanks a lot to all devs for your work so far!


Post a reply to this message

From: clipka
Subject: Re: UberPOV is back
Date: 1 Sep 2016 12:03:37
Message: <57c85159$1@news.povray.org>
Am 01.09.2016 um 14:14 schrieb Mr:
> clipka <ano### [at] anonymousorg> wrote:
>> Am 01.09.2016 um 10:29 schrieb Mr:
>>> clipka <ano### [at] anonymousorg> wrote:
>>>> FYI, I've just put UberPOV back on the tracks.
>>>>
>>>> The current development version includes all the latest and greatest
>>>> from the POV-Ray 3.7.1 "master" branch, plus the advanced diffuse models
>>>> (Oren-Nayar and Lommel-Seeliger), and can be found here:
>>>>
>>>> https://github.com/UberPOV/UberPOV/releases/tag/v1.37.1.1-alpha.8756754
>>>
>>> Are HG POV goodies also candidates to be merged one day?
>>
>> There are some Hg-Povray features that I've already set my eyes on, yes.
>> But I haven't found the time yet to steal(*) them.
>>
>> (* Since Hg-Povray doesn't support the `unofficial patch` proposal, I'd
>> have to label those features as original UberPOV features. And I might
>> actually use different syntax.)
> 
> I, for one would be very happy for it, hoping the original author is not
> offended, and I'm sure he can be credited somewhere properly for his
> contribution...

He certainly would get credited. And as for being offended, I have some
hope that Jerome's wrath would be contained within a reasonably small
bounding box ;)


Post a reply to this message

From: clipka
Subject: Re: UberPOV is back
Date: 1 Sep 2016 12:35:14
Message: <57c858c2$1@news.povray.org>
Am 01.09.2016 um 16:06 schrieb Mr:

>>> -Minnaert?
>>
>> Nope. Again, to the contrary: Minnaert also makes the diffuse component
>> fall off at shallower angles.
> 
> Blender's implementation can also do the opposite: lightening faces as their
> normals get perpendicular to the viewing direction, kind of like oren Nayer also
> does , but orders of magnitude stronger.  (" if Dark is 1 you get exactly the
> Lambertian result. Higher darkness values will darken the center of an object
> (where it points towards the viewer). Lower darkness values will lighten the
> edges of the object, making it look somewhat velvet")

I must confess that I'm digging into the Minnaert model only just now.
And yes, it seems indeed to be capable of doing something like the
Oren-Nayar and Lommel-Seeliger models.

> So maybe we could say that Lommel-Seeliger  is a good model to emulate all
> darkness values of Blender Minnaert below 1 wile values above could switch to a
> darkening slope_map/aoi pattern ?

If you want to emulate Blender's Minnaert in POV-Ray, wait for a couple
of hours until the next UberPOV release ;)

> And Brilliance parameter would be better to emulate Fresnel as it's more light
> dependant than viewing angle dependant???

The Brilliance parameter is primarily a poor hack with no physical
legitimation. I suspect the best way to emulate it would be with
something like an aoi pattern. While it might indeed have been used as a
poor man's attempt at approximating a fresnel term, it would have
succeeded in that only for the outgoing light, ingoing that there should
be a symmetric term for the incoming light.

(After some research, I have a hunch that the brilliance parameter
/might/ actually have originated as a failed attempt to implement the
Minnaert model. But that's just speculation, and it's probably far too
late to find out the truth about it.)

> Anyway, at the moment I meet a bigger issue, as I see no variation when trying
> to use the two new models in pov, are they confirmed to work in your Windows 64
> build?

They should be working fine in UberPOV 1.37.1.1-alpha.8756754, but I'll
check again.

> The Minnaert shader in POV was the topic of this work:
>
http://news.povray.org/povray.binaries.images/thread/%3C3f6ccdf7%40news.povray.org%3E/
> 
> Has it been used for this feature or can it still be added to all the options?

I didn't even know about Kevin's work until right now that you've
mentioned it (and I'm not sure whether I would be able to dig up his
code on the Internet). I had even started on my own Minnaert
implementation already.


Post a reply to this message

From: Le Forgeron
Subject: Re: UberPOV is back
Date: 1 Sep 2016 13:08:30
Message: <57c8608e$1@news.povray.org>
Le 01/09/2016 à 18:03, clipka a écrit :
> Am 01.09.2016 um 14:14 schrieb Mr:
>> clipka <ano### [at] anonymousorg> wrote:
>>> Am 01.09.2016 um 10:29 schrieb Mr:
>>>> clipka <ano### [at] anonymousorg> wrote:
>>>>> FYI, I've just put UberPOV back on the tracks.
>>>>>
>>>>> The current development version includes all the latest and greatest
>>>>> from the POV-Ray 3.7.1 "master" branch, plus the advanced diffuse models
>>>>> (Oren-Nayar and Lommel-Seeliger), and can be found here:
>>>>>
>>>>> https://github.com/UberPOV/UberPOV/releases/tag/v1.37.1.1-alpha.8756754
>>>>
>>>> Are HG POV goodies also candidates to be merged one day?
>>>
>>> There are some Hg-Povray features that I've already set my eyes on, yes.
>>> But I haven't found the time yet to steal(*) them.
>>>
>>> (* Since Hg-Povray doesn't support the `unofficial patch` proposal, I'd
>>> have to label those features as original UberPOV features. And I might
>>> actually use different syntax.)

I never understood that proposal, or how to use it, from the coding side.

And I do not really care, as I use only the official povray and hgpovray, my little
pet.

>>
>> I, for one would be very happy for it, hoping the original author is not
>> offended, and I'm sure he can be credited somewhere properly for his
>> contribution...
> 
> He certainly would get credited. And as for being offended, I have some
> hope that Jerome's wrath would be contained within a reasonably small
> bounding box ;)
> 
Since the start of the refactoring (3 years ago?), I'm waiting for the code to
stabilize (in term of change to C++ objects) before moving the changes of hg-povray in
compatible code. I usually check once a year, at summer holiday, but it is not easy.
(and the change of directory hierarchy is not friendly with automerging tools)

I tried to write the nurbs in both, but it turns out to be painful to maintain. Not
something I'm going to do again.

So far my plan is to finish the normal computation of nurbs in hg-povray (something
where reading M. S. Floater in text is a must go, and no, I'm not going for
approximation),
then (when more time become available here), trying to merge the head of master povray
into hg-povray... unless there is another refactoring happening just 2 weeks before I
would have merged).


Your evolution of ovus has been made, but got little echo.

And I'm probably late also on some documentation too.


Post a reply to this message

From: clipka
Subject: Re: UberPOV is back
Date: 2 Sep 2016 16:06:10
Message: <57c9dbb2$1@news.povray.org>
Am 01.09.2016 um 19:08 schrieb Le_Forgeron:
> Le 01/09/2016 à 18:03, clipka a écrit :
>> Am 01.09.2016 um 14:14 schrieb Mr:
>>> clipka <ano### [at] anonymousorg> wrote:
>>>> Am 01.09.2016 um 10:29 schrieb Mr:
>>>>> clipka <ano### [at] anonymousorg> wrote:
>>>>>> FYI, I've just put UberPOV back on the tracks.
>>>>>>
>>>>>> The current development version includes all the latest and greatest
>>>>>> from the POV-Ray 3.7.1 "master" branch, plus the advanced diffuse models
>>>>>> (Oren-Nayar and Lommel-Seeliger), and can be found here:
>>>>>>
>>>>>> https://github.com/UberPOV/UberPOV/releases/tag/v1.37.1.1-alpha.8756754
>>>>>
>>>>> Are HG POV goodies also candidates to be merged one day?
>>>>
>>>> There are some Hg-Povray features that I've already set my eyes on, yes.
>>>> But I haven't found the time yet to steal(*) them.
>>>>
>>>> (* Since Hg-Povray doesn't support the `unofficial patch` proposal, I'd
>>>> have to label those features as original UberPOV features. And I might
>>>> actually use different syntax.)
> 
> I never understood that proposal, or how to use it, from the coding side.

From the "[patch] coding side" it might be as simple as borrowing the
corresponding code from UberPOV.

From the "[scene] coding side" it is not fundamentally different from
the way we're already specifying what POV-Ray version a scene needs:

    // (1) State that you use patches conforming to that proposal,
    //     and what baseline of official POV-Ray features your scene
    //     is making use of:
    #version unofficial patch 3.71;

    // (2a) State what individual additional features your scene is
    //      making use of, and the minimum versions thereof:
    #patch "upov-oren_nayar" 0.9;
    #patch "wfpokorny-density_file-refine" 1.10;

Given this header, the scene will render fine on any patched version of
POV-Ray that intentionally supports the Oren-Nayar shading with the same
syntax as UberPOV, as well as the density file extensions originally
developed by William F. Pokorny -- no matter whether that patched
version of POV-Ray happens to be UberPOV, or an entirely different patch
collection that just cherry-picked these two features, as long as it
does adhere to the `unofficial patch` proposal.


The proposal also allows to choose alternative scene code depending on
what patches are available. For instance, suppose you know that two
different patched versions of POV-Ray provide an implementation of the
Oren-Nayar shading model, but use different syntax. You could then
define a texture as follows:

    #declare MyFinish = finish {
      #if (patch("upov-oren_nayar"))
        // UberPOV's current Oren-Nayar implementation interprets
        // the parameter as the sigma
        oren_nayar SIGMA
      #elseif (patch("snugglepov-oren_nayar"))
        // SnugglePOV happens to use the same keyword, but interprets
        // the parameter as the square of sigma
        oren_nayar SIGMA*SIGMA
      #end
    }

This is actually the part of the `unofficial patch` proposal that I find
the most useful: Back when I was still juggling with POV-Ray 3.7,
MegaPOV and MCPov, I found it frustrating that I couldn't have my scenes
auto-detect whether they were running on MCPov (in which case I would
want blurred reflections, but would also have to use different diffuse
values because MCPov got them wrong by a factor of 2, and would have to
define light sources as emissive spheres) or one of the others (in which
case I would want radiosity, and use classic light sources).


> And I do not really care, as I use only the official povray and hgpovray, my little
pet.

For such cases, the `unofficial patch` proposal also has something in store:

    // (1) State that your scene is designed for a patched version
    //     of POV-Ray supporting the `unofficial patch` proposal,
    //     and what baseline of official POV-Ray features your scene
    //     is making use of:
    #version unofficial patch 3.71;

    // (2b) State what patched version of POV-Ray your scene is
    //      designed for:
    #patch "upov" 137.1;

Given this header, the scene will render fine on UberPOV 1.37.1.1 or
higher -- *OR* on any other patched version of POV-Ray that includes
support for the full set of UberPOV 1.37.1.1's features.


>>> I, for one would be very happy for it, hoping the original author is not
>>> offended, and I'm sure he can be credited somewhere properly for his
>>> contribution...
>>
>> He certainly would get credited. And as for being offended, I have some
>> hope that Jerome's wrath would be contained within a reasonably small
>> bounding box ;)
>>
> Since the start of the refactoring (3 years ago?), I'm waiting for the code
> to stabilize (in term of change to C++ objects) before moving the changes
> of hg-povray in compatible code. I usually check once a year, at summer holiday,
> but it is not easy. (and the change of directory hierarchy is not friendly with
> automerging tools)

3 years ago was 2013 -- the year 3.7.0 was finally released (in December).

No, refactoring didn't start 3 years ago -- it started after 3.6.1 (or
maybe even before that, in a separate branch), and was interrupted only
briefly in 2013 to get a stable version out the door, after refactoring
had changed the architecture enough to be able to implement
single-machine symmetric multiprocessing support for all features.

Refactoring was never meant to stop there: Distributed rendering was the
original goal of the refactoring, and still is one of the goals. And
another goal has been added: To turn POV-Ray's rendering engine into
something that can be used as a library.

Changes to the directory hierarchy have been -- and to some degree still
are -- a necessary evil of that ongoing process, as it greatly
simplifies the process of partitioning the code into clear-cut modules.


As for tracking moved files, I was pleasantly surprised by the
capabilities of Atlassian's SourceTree in this respect when I recently
brought UberPOV up to date -- though I should say that I merged in
stages, making sure to "pause" right before and after each commit that
moved around any files, and then squashed those stages into a single
commit. SourceTree is free, supports both Git and Mercurial, and is
available for Windows and OS X.

I'm also making heavy use of BeyondCompare, without which I couldn't
code a single thing. Besides using it as an external 3-way merge tool
for SourceTree, I'm also using it to sync my actual working directory
with the so-called "working directory" of my local repo, which I'm not
actually working on directly. It is available for Windows, OS X and
Linux, and although it costs a few bucks, I'd say it is worth every cent
of the Pro version's $60.


> So far my plan is to finish the normal computation of nurbs in hg-povray
> (something where reading M. S. Floater in text is a must go, and no,
> I'm not going for approximation), then (when more time become available
> here), trying to merge the head of master povray into hg-povray...
> unless there is another refactoring happening just 2 weeks before I would
> have merged).

Don't expect refactoring to stop any time soon; there's still a shitload
of work to do until we have nice clean C++ code.


Post a reply to this message

From: LanuHum
Subject: Re: UberPOV is back
Date: 4 Sep 2016 14:35:00
Message: <web.57cc694b15c445667a3e03fe0@news.povray.org>
Last uberpov had abnormalities in height_field. I forgot to report it. I'll
check out the new version.
I'll report on the results.


Post a reply to this message

From: Mr
Subject: Re: UberPOV is back
Date: 13 Sep 2016 09:25:00
Message: <web.57d7fd1e15c4456616086ed00@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 01.09.2016 um 16:06 schrieb Mr:
>
> >>> -Minnaert?
> >>
> >> Nope. Again, to the contrary: Minnaert also makes the diffuse component
> >> fall off at shallower angles.
> >
> > Blender's implementation can also do the opposite: lightening faces as their
> > normals get perpendicular to the viewing direction, kind of like oren Nayer also
> > does , but orders of magnitude stronger.  (" if Dark is 1 you get exactly the
> > Lambertian result. Higher darkness values will darken the center of an object
> > (where it points towards the viewer). Lower darkness values will lighten the
> > edges of the object, making it look somewhat velvet")
>
> I must confess that I'm digging into the Minnaert model only just now.
> And yes, it seems indeed to be capable of doing something like the
> Oren-Nayar and Lommel-Seeliger models.
>
> > So maybe we could say that Lommel-Seeliger  is a good model to emulate all
> > darkness values of Blender Minnaert below 1 wile values above could switch to a
> > darkening slope_map/aoi pattern ?
>
> If you want to emulate Blender's Minnaert in POV-Ray, wait for a couple
> of hours until the next UberPOV release ;)
>
> > And Brilliance parameter would be better to emulate Fresnel as it's more light
> > dependant than viewing angle dependant???
>
> The Brilliance parameter is primarily a poor hack with no physical
> legitimation. I suspect the best way to emulate it would be with
> something like an aoi pattern. While it might indeed have been used as a
> poor man's attempt at approximating a fresnel term, it would have
> succeeded in that only for the outgoing light, ingoing that there should
> be a symmetric term for the incoming light.
>
> (After some research, I have a hunch that the brilliance parameter
> /might/ actually have originated as a failed attempt to implement the
> Minnaert model. But that's just speculation, and it's probably far too
> late to find out the truth about it.)
>
> > Anyway, at the moment I meet a bigger issue, as I see no variation when trying
> > to use the two new models in pov, are they confirmed to work in your Windows 64
> > build?
>
> They should be working fine in UberPOV 1.37.1.1-alpha.8756754, but I'll
> check again.
>
> > The Minnaert shader in POV was the topic of this work:
> >
http://news.povray.org/povray.binaries.images/thread/%3C3f6ccdf7%40news.povray.org%3E/
> >
> > Has it been used for this feature or can it still be added to all the options?
>
> I didn't even know about Kevin's work until right now that you've
> mentioned it (and I'm not sure whether I would be able to dig up his
> code on the Internet). I had even started on my own Minnaert
> implementation already.

Thanks for all the work,  I tried again and it works (I was using a bad version
/#patch syntax...

Three shaders Oren_nayar, Lomel_selliger, minnaert work well. To be nitpicky, I
felt that the minnaert at a value of 2 which is its Blender Maximum value, the
result looked less contrasted than Blender internal renderer. That is to say, in
Blender, faces away from camera appeared lighter while normals facing the camera
were darker than pov result but the overall behaviour is a much closer result
than what we had so far !

How would we use the second fresnel outgoing term ?


Post a reply to this message

From: clipka
Subject: Re: UberPOV is back
Date: 8 Nov 2016 03:40:33
Message: <58218f81@news.povray.org>
Am 13.09.2016 um 15:23 schrieb Mr:

> Three shaders Oren_nayar, Lomel_selliger, minnaert work well. To be nitpicky, I
> felt that the minnaert at a value of 2 which is its Blender Maximum value, the
> result looked less contrasted than Blender internal renderer. That is to say, in
> Blender, faces away from camera appeared lighter while normals facing the camera
> were darker than pov result but the overall behaviour is a much closer result
> than what we had so far !
> 
> How would we use the second fresnel outgoing term ?

Just so you know: This post of yours hasn't been forgotten; I've still
have to find the time to get back to it though.


Post a reply to this message

From: Mr
Subject: Re: UberPOV is back
Date: 9 Nov 2016 03:30:00
Message: <web.5822de8215c4456616086ed00@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 13.09.2016 um 15:23 schrieb Mr:
>
> > Three shaders Oren_nayar, Lomel_selliger, minnaert work well. To be nitpicky, I
> > felt that the minnaert at a value of 2 which is its Blender Maximum value, the
> > result looked less contrasted than Blender internal renderer. That is to say, in
> > Blender, faces away from camera appeared lighter while normals facing the camera
> > were darker than pov result but the overall behaviour is a much closer result
> > than what we had so far !
> >
> > How would we use the second fresnel outgoing term ?
>
> Just so you know: This post of yours hasn't been forgotten; I've still
> have to find the time to get back to it though.

Thanks a lot, it's a good addition and I do hope that all this will make it into
official pov as well


Post a reply to this message

From: clipka
Subject: Re: UberPOV is back
Date: 20 Nov 2016 12:52:14
Message: <5831e2ce@news.povray.org>
Am 13.09.2016 um 15:23 schrieb Mr:

> Three shaders Oren_nayar, Lomel_selliger, minnaert work well. To be nitpicky, I
> felt that the minnaert at a value of 2 which is its Blender Maximum value, the
> result looked less contrasted than Blender internal renderer. That is to say, in
> Blender, faces away from camera appeared lighter while normals facing the camera
> were darker than pov result but the overall behaviour is a much closer result
> than what we had so far !

Can you provide an image as rendered by Blender, along with a
corresponding POV-Ray scene?

Make sure to eliminate any other potential influences, such as
reflections, highlights, ambient light and whatnot.

A screenshot of the chosen Blender material settings may also be helpful.


> How would we use the second fresnel outgoing term ?

I'm not sure what you are referring to. Bear in mind that I'm not a
Blender user.


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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