POV-Ray : Newsgroups : povray.binaries.images : Upgrading POV-Ray's include files - a few remarks Server Time
23 Apr 2024 07:58:33 EDT (-0400)
  Upgrading POV-Ray's include files - a few remarks (Message 11 to 20 of 37)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Thomas de Groot
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 1 Mar 2021 04:44:59
Message: <603cb79b@news.povray.org>
Op 01/03/2021 om 08:49 schreef Thomas de Groot:
> Op 28/02/2021 om 16:43 schreef Kenneth:
>> "Kenneth" <kdw### [at] gmailcom> wrote:

>>> (assumed_gamma 1.0), and get identical results to your middle image. 
>>> So far, so
>>> good ;-)
>>>
>>
>> Hmm, they are not quite identical after all.
>>
>> I thought I would do a side-by-side comparison of your v3.6 
>> assumed_gamma 1.0
>> version to v3.8xx (I changed the "skies.inc" pigments back to their 
>> originals.)
>>
>> There's a definite difference; I assume that it comes from the many
>> 'under-the-hood' changes made to POV-ray since v3.6.
>>
>> So it seems to be very difficult to determine (and update) what the 
>> author's
>> *original* visual intent was for these pigments.
>>

>>
> 
> I have not tested it, but maybe your differences come from the fact that 
> you use version 3.8 here. I did not, from the principle that version 3.7 
> and/or 3.7.1 are the /last/ official versions of POV-Ray. As a start, 
> the includes should comply with those versions. Version 3.8 is beta and 
> may need more changes in future.
> 

I tested and, no, you must have used some wrong settings somewhere. 
versions 3.7 or 3.8 render identically.

-- 
Thomas


Post a reply to this message

From: Kenneth
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 1 Mar 2021 07:15:01
Message: <web.603cd9966dc18cedd98418910@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:

> >
> > I have not tested it, but maybe your differences come from the fact that
> > you use version 3.8 here. I did not, from the principle that version 3.7
> > and/or 3.7.1 are the /last/ official versions of POV-Ray. As a start,
> > the includes should comply with those versions. Version 3.8 is beta and
> > may need more changes in future.
> >
>
> I tested and, no, you must have used some wrong settings somewhere.
> versions 3.7 or 3.8 render identically.
>
You are absolutely correct; I made a mistake, a really dumb one: In my simple
v3.8xx scene file for testing the skysphere and the rgb-vs-SRGB colors, I
mistakenly wrote #version 2.8 instead of 3.8! (I have no idea what "version 2.8"
does to colors-- if there ever WAS such a version.) My render was definitely
screwed up; sorry for the confusion.

Now, my v3.8 SRGB-color version looks just like your v3.7 version.

I also ran my scene in v3.7 to double-check any color/gamma differences
between that and v3.8xx; they look identical, as you say.

The other interesting behavior I noticed (maybe it's expected) is that the older
#version directive of 3.5 in "skies.inc" can be changed to 3.7, with absolutely
no change in the renders (when run in either v3.7.0 or 3.8xx). I did some
'difference' comparisons in Photoshop to check this.


Post a reply to this message

From: Kenneth
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 1 Mar 2021 08:25:04
Message: <web.603ce9f26dc18cedd98418910@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:
> "Kenneth" <kdw### [at] gmailcom> wrote:
> >
> > I would suggest simply changing the specified colors to srgb
> > versions-- no fancy conversions-- and see what it looks like at assumed_gamma
> > 1.0.
> >
>
> I decided to try that myself, for the S_Cloud1 skysphere...

This is what the comparison was supposed to look like, between
v3.6 at assumed_gamma 2.2
and
v3.7.0 (or 3.8, same effect) at assumed gamma 1.0

There is a slight difference, perhaps in contrast. It is difficult to figure out
exactly what causes this; but it might be like comparing 'apples to oranges',
considering the many changes that have been made to POV-ray since v3.6.


Post a reply to this message


Attachments:
Download 'skies_scene_comparison.jpg' (114 KB)

Preview of image 'skies_scene_comparison.jpg'
skies_scene_comparison.jpg


 

From: Mr
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 1 Mar 2021 08:45:08
Message: <web.603cef406dc18ced6adeaecb0@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
>[...]
Thanks a lot or your undertaking,
First note that looking at images through small previews on the web interface of
theses newsgroups is always error prone and one would naturally go to the more
contrasted. But opening full screen and really looking at pictures,
I clearly prefer the third version because a) it's the most realistic would one
consider the season to be winter (paler) rather than summer, and b)that does not
show procedural cloud color map edges so contrasted as was so frequently done in
the nineties, it's crucial now that POV moves away from what people think are
its limitations to show what it really can do.

If not already done, could more "modern" macros such as lightsys or
CousinRicky's metal work or the ones you mentionned be integrated to those
official libraries at last or is there some show stopper ?


Post a reply to this message

From: Thomas de Groot
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 2 Mar 2021 02:52:43
Message: <603deecb@news.povray.org>
Op 01/03/2021 om 14:42 schreef Mr:
> Thomas de Groot <tho### [at] degrootorg> wrote:
>> [...]
> Thanks a lot or your undertaking,
> First note that looking at images through small previews on the web interface of
> theses newsgroups is always error prone and one would naturally go to the more
> contrasted. But opening full screen and really looking at pictures,
> I clearly prefer the third version because a) it's the most realistic would one
> consider the season to be winter (paler) rather than summer, and b)that does not
> show procedural cloud color map edges so contrasted as was so frequently done in
> the nineties, it's crucial now that POV moves away from what people think are
> its limitations to show what it really can do.
> 
> If not already done, could more "modern" macros such as lightsys or
> CousinRicky's metal work or the ones you mentionned be integrated to those
> official libraries at last or is there some show stopper ?
> 

Aha! This again, addresses imo the fundamental question, also mentioned 
by BaldEagle, if we should not take leave of (some) of the "backward 
compatibility" rule. These cloud scenes were great a couple of decades 
ago but hardly anyone nowadays would use them without serious changes; 
even newbies would probably not find them acceptable given the 
development in the field of cgi.

So, I think that POV-Ray's include files should reflect these changes 
and, as Bald Eagle wrote too, provide a switching system to show, where 
possible or available, the evolution of the concept. In the case of 
clouds, that would mean these simple, version 3.1 and 3.5 cloud scenes, 
and the version 3.7+ alternatives.

In other cases, upgrading will be much more straightforward imo. 
Metallic or wood textures e.g. But there too, new additions might be or 
should be seriously considered. After all, over the years, we have 
acquired a huge amount of creative power condensation and deposition! :-)

-- 
Thomas


Post a reply to this message

From: Bald Eagle
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 2 Mar 2021 17:00:01
Message: <web.603eb5306dc18ced1f9dae300@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:

> Aha! This again, addresses imo the fundamental question, also mentioned
> by BaldEagle, if we should not take leave of (some) of the "backward
> compatibility" rule. These cloud scenes were great a couple of decades
> ago but hardly anyone nowadays would use them without serious changes;
> even newbies would probably not find them acceptable given the
> development in the field of cgi.

I think, at this point, if we are going to move forward toward "4.0", then WE
must move _forward_ TO 4.0.

I have been writing some macros for use in (new) include files as well, and I
think it would be good to periodically collect and summarize ALL of the broadly
useful macros and formulas that we have - to see where we are, and so people can
review, fiddle, critique, error and performance check, etc.

> ...over the years, we have
> acquired a huge amount of creative power condensation and deposition! :-)

Going through a lot of what we have, I would say that if we're in the process of
updating and changing things, we should make a clean break, and even start
renaming some of the macros as well.

For instance, in the recent example of clarifying and modifying Point_At_Trans,
I have always thought that the name was terrible, due to vagueness.  Point
_what_ at _what_?  I think that maybe it should be renamed to something that
more clearly and concisely describes what it actually does.  "Tilt Y to new
position" "Rotate Y vector" or something like that.  Because that's what we're
going to have to remember when we type it into the scene.
It's easy enough to have the old macro name just call the macro with the new
name.

#macro OldName (Argument)
     //#warning "macro OldName has been deprecated, consider using NewName"
     #macro NewName (Argument)
#end

It's always difficult for me to know where to strike a balance with comments,
but in general, as Bill Pokorny pointed out, comments in macros and loops need
to be parsed - character by character - and so perhaps comments should reside
exclusively outside of the macros, perhaps in a nice, boxed header section, or
at least use a // 1   // 2   // 3 short notation to refer to line-specific
comments in the header.

//########################################
// This is my macro that does cool stuff #
// 1. actually it does literally nothing #
//########################################
// Author                                #
// Revised by                            #
// Version                               #
// Dependencies: math.inc, stuff2.inc    #
//########################################
#macro CoolStuff ()
     #if (true)
          #break // note 1
     #else
     #end
#end
//########################################

Since over the course of time, various include files have been improved,
updated, and have had errors corrected, I would like to see a semantic
versioning system somehow implemented.  Otherwise we're talking about one
filename, rather than a specific version of the file.  Just like we have POV-Ray
3.5, 3.6, 3.7, 3.8...
How do we accomplish that, yet keep the same simple naming scheme?
Maybe skies.inc has a single functional line: #include "skies_2_1_1.inc"
Sure, we can have a revision history, with #include "skies_1_1_1.inc" commented
out above that.

Perhaps, if there is a need for extensive documentation, it would be wise to
supplement the official docs with a .txt file with the same parent filename.
So, skies,inc would have a skies.txt file that tags along in the include
directory, and can be as verbose as the situation warrants.

Things like eval_pigment(), now(), trace() and the orthographic camera are
things that I have to re-learn to use Every Single Time.
There are also things about the orthographic camera that I still don't really
understand.


Everyone has their own programming style, and naming conventions, and toleration
for "clutter" or absence of guiding commentary.

So while there will be a certain level of unavoidable preference clashes, I
think that now is a good time to set the tone for how things will be structured,
and maybe even the content and placement of macros in the include files might
get rearranged, if it makes more sense to do so.

I mean we have shapes, and shapes1 and shapes2 and maybe even a shapes3
and there are necessary dependencies in some of those shape files that aren't
explicitly indicated or automatically included.

stones metals granites golds, ....
textures.inc ---- textures of WHAT?

It's a lot to slog through, but I think that hammering out a single include file
that illustrates a lot of the ideology and format we might want would be a great
way to guide work on successive efforts.


Post a reply to this message

From: Mr
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 3 Mar 2021 05:10:00
Message: <web.603f5c526dc18ced6adeaecb0@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:
> Thomas de Groot <tho### [at] degrootorg> wrote:

> updating and changing things, we should make a clean break, and even start
> renaming some of the macros as well.
> [...]I think that now is a good time to set the tone for how things will be
structured,[...]
> It's a lot to slog through, but I think that hammering out a single include file
that illustrates a lot of the ideolo
gy and format we might want would be a great way to guide work on successive efforts.

Very true that more explicit names are required.
And +1 vote for a proof of concept macro set, so pragmatic use will better
reorient reflection. Something that I believe would weight in the positive
changes balance is that some acclaimed macro developers could start to value
their work as more being part of POV-Ray core or at least potentially, that's
why I asked about some specific macros such as Lightsys (but correct me if
POV-Ray trunk already features a better alternative that I'm not aware of): that
example is a collective work and one that appears to be time standing-ly
recognized, respected, and used actually much more than most of the "official"
macros delivered with POV-Ray package. In the same way when I look at what
asset/sample is available for any kind of metal presets, If I browse through the
standard includes and compare them with CousinRicky's I will definitely consider
the standard one outdated legacy for its result (maybe it just needs better
default settings but still), yet on the other hand, having to go to through some
"download>unzip>skim-through-newsgroups-for-doc" procedures for CR's macro makes
one (probably mistakingly) believe that this macro has been judged sub-standard
by the main team, so using it seems more risky /costly / not worthy /whatever...

All this makes it appear like POV is somewhat limited to phong spheres would you
choose to get more "seriously" into it.

Of course I do not pretend to speak for macro authors, but as a user, so one
could argue that these authors might not want their macros included ? Then the
question behind would rather be, after many decades, maybe it's time some
alternatives were made to  be actually delivered along with pov as part of the
package. (dropping off less used ones if file size is the matter)

Am I missing something or does this naive opinion actually make sense?


Post a reply to this message

From: Bald Eagle
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 3 Mar 2021 07:15:00
Message: <web.603f7d8d6dc18ced1f9dae300@news.povray.org>
"Mr" <nomail@nomail> wrote:

> Very true that more explicit names are required.

Explicit yes, as well as memorable and quick and easy to type, if possible.
The underscores make me cringe a bit.

> And +1 vote for a proof of concept macro set, so pragmatic use will better
> reorient reflection.

I _STILL_ look at descriptions of functions and macros and say to myself, "Oh,
no.... HOW do I actually USE that?  What do I DO with it?   Where in the code
does it GO?  Is it a standalone line?  Is it transformation on my object?  Is it
a value that use to do something else...?
And that can waste 10 minutes until I wrap my head around the underlying theory
of operation.

> ... having to go to through some
> "download>unzip>skim-through-newsgroups-for-doc" procedures for CR's macro makes
> one (probably mistakingly) believe that this macro has been judged sub-standard
> by the main team, so using it seems more risky /costly / not worthy /whatever...
>
> All this makes it appear like POV is somewhat limited to phong spheres would you
> choose to get more "seriously" into it.

Right - the standard distribution files may not have been touched in the last 20
years.

We could certainly use some of the nicer macro packages integrated more tightly
with "the system".   I'd say that things don't get used, due to a number of
things.   Time, knowledge or memory that they exist, the learning curve to
implement them, the energy and daring to spend the time and effort trying new
things....   Inertia....

> Of course I do not pretend to speak for macro authors, but as a user, so one
> could argue that these authors might not want their macros included ?

.... then don't write them and post them on the internet?
I mean, I understand the philosophical and practical theory of patents and IP,
but IMO, I think that there's a ridiculous level of "we can't use that without a
signed contract from the author" (who may be long gone or, sadly passed from
this mortal coil).   If it got posted, we use it.  Especially if it's just for
something like an include file or an insert menu snippet.   If they complain, we
can delete it.  It's not like it's critical source code.

> Am I missing something or does this naive opinion actually make sense?

Nope.  Not missing anything.   There are a lot of opinions that make perfect
sense, but which people have been conditioned to somehow find "offensive".
Ain't got time for that nonsense.


Post a reply to this message

From: Kenneth
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 3 Mar 2021 10:35:01
Message: <web.603fab146dc18cedd98418910@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:
>
> I _STILL_ look at descriptions of functions and macros and say to myself, "Oh,
> no.... HOW do I actually USE that?  What do I DO with it?   Where in the code
> does it GO?  Is it a standalone line?  Is it transformation on my object?
> Is it a value that use to do something else...?
> And that can waste 10 minutes until I wrap my head around the underlying
> theory of operation.
>

That's EXACTLY my problem as well. Except that I usually cannot figure out what
a particular feature means, and simpy move on in frustration-- never making an
attempt to use it, and not learning anything.

There are indeed many features that could be MUCH-better explained, with more
'humanly-readable' descriptions. I like *clarity*. If I had my way, something
like the Point_At_Trans macro would instead be

#macro This_Points_Your_Vector_Direction_In_Another_Direction_But_Watch_Out_For
Problems_So_Add_The_Bald_Eagle_Solution(...)"

:-P


I think the present state of POV-ray-- the difficulty of understanding how to
use certain features-- is partly a result of years /decades of a certain 'elite
attitude' among some users, and a few developers as well (Clipka being the major
exception IMO), that the program is meant for a particular intellectually
superior audience-- and that those of us who aspire to learn it should not be
'spoon fed' with helpful comments if we are perceived to be below a certain
level of ability. It went something like this: "Why don't you understand what
you're asking? Read the f**king manual. If you don't understand it, you don't
belong here, so get out." I exaggerate, but only a little. I think we have all
seen this kind of response-- an attitude that has certainly not helped to expand
POV-ray's user base! Personally, I've had to develop a thick skin over the
years, to put up with that kind of unhelpful garbage; luckily, I persevered. But
I amagine that others have simply given up and moved elsewhere. Of course, we
would not be using the program at all if we didn't have a desire to learn
programming in some way, and to 'build things from the ground up'; so it does
take *some* level of knowledge and interest to grasp the essentials.  But the
unhelpful attitudes have made it much harder than it should have been. And IMO,
there are many parts of the documentation that reflect this unnecessary
'anti-spoon-feeding' attitude. Perhaps POV-ray *was* initially developed only
for astute computer programmers, all those years ago; but those times have
changed. Now even kids are learning to program!

POV-ray is such a great platform for creating almost anything visual. With some
improvements to the documentation, and better example scenes, it would probably
pick up many more users going forward.


Post a reply to this message

From: Bald Eagle
Subject: Re: Upgrading POV-Ray's include files - a few remarks
Date: 3 Mar 2021 14:00:01
Message: <web.603fdc546dc18ced1f9dae300@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:

> That's EXACTLY my problem as well. Except that I usually cannot figure out what
> a particular feature means, and simpy move on in frustration-- never making an
> attempt to use it, and not learning anything.

Well, thankfully we have the interwebs, and a lot of other graphics platforms
that go about things in slightly different ways, which can help provide a few
more approaches to compare, and there are literally whole courses and textbooks
to be had just for the searching...

> There are indeed many features that could be MUCH-better explained, with more
> 'humanly-readable' descriptions. I like *clarity*. If I had my way, something
> like the Point_At_Trans macro would instead be
>
> #macro This_Points_Your_Vector_Direction_In_Another_Direction_But_Watch_Out_For
> Problems_So_Add_The_Bald_Eagle_Solution(...)"
>
> :-P

So, with regard to that, I was thinking that maybe a neat idea would be to go
through ALL of the keywords and major macros and functions and make a single
giant file with nothing but illustrative code examples.

I made an in-depth stab at tackling the Bezier splines and patches - but that
ate up what - a month or two? (I learned a lot though).


> I think the present state of POV-ray-- the difficulty of understanding how to
> use certain features-- is partly a result of years /decades of a certain 'elite
> attitude' among some users, and a few developers as well (Clipka being the major
> exception IMO), that the program is meant for a particular intellectually
> superior audience-- and that those of us who aspire to learn it should not be
> 'spoon fed' with helpful comments if we are perceived to be below a certain
> level of ability. It went something like this: "Why don't you understand what
> you're asking? Read the f**king manual. If you don't understand it, you don't
> belong here, so get out." I exaggerate, but only a little. I think we have all
> seen this kind of response-- an attitude that has certainly not helped to expand
> POV-ray's user base! Personally, I've had to develop a thick skin over the
> years, to put up with that kind of unhelpful garbage; luckily, I persevered. But
> I amagine that others have simply given up and moved elsewhere. Of course, we
> would not be using the program at all if we didn't have a desire to learn
> programming in some way, and to 'build things from the ground up'; so it does
> take *some* level of knowledge and interest to grasp the essentials.  But the
> unhelpful attitudes have made it much harder than it should have been. And IMO,
> there are many parts of the documentation that reflect this unnecessary
> 'anti-spoon-feeding' attitude. Perhaps POV-ray *was* initially developed only
> for astute computer programmers, all those years ago; but those times have
> changed. Now even kids are learning to program!

Yeah - there are those elitist types everywhere.   "This is for me, but not for
thee."  And they hate me, because I have a very "F U, I won't do what you tell
me" attitude, and learn how to do everything that they can, and then some.  And
find out all of the ways that they are wrong, and discover ways to do it better
than they ever could.

I get a very distinct sense of what you're talking about over on
StackExchange/StackOverflow, where people are unnecessarily condescending, and
you can't even post questions or replies unless you have a certain reputation...
Linux seems to have a bit of that as well.   "Well, you're using linux, so you
should ALREADY know how to...."  Yeah, lemme just pull that regular expression
out of my nether region and plug it into awk, pipe it through grep, and then....

POV-Ray is nice, because it has a lot of "pre-packaged" things that help you get
up and running quickly even though there is still a big learning curve if you
want to start doing anything reasonably advanced.
ShaderToy is helpful for me because it strips away the entire safety net, and
requires me to understand what something like a camera is in code and math ...
there is no camera {} statement.  There is no pigment {granite}.  If you want
granite you have to code the damned thing from scratch.

Which I could never do a few years ago, but TOK, Bill P., and other people have
shown me what is possible, and given me a few nudges here and there to help me
on my way.  Perusing POV-Ray's source code was pretty eye opening too.  Because
those pigment patterns weren't magic black-boxes anymore, they were really,
ultra simple one-line equations that (in hindsight) made perfect sense.  So then
once I saw how it was done, I could replicate the simple examples, and start to
play with new functions, daisy-chaining equations, and basically getting into
the deep end of the pool   ;)

For a new-user, ignorance and some naive notions are to be expected.  It's super
easy to help out with a few lines of code, or just plopping a whole ready-made
scene on them to show them how it's done.

On the flip side, there are people who never want to do anything themselves and
only take. But generally this is a politics-free forum.  ;)

As long as people are willing to TRY, that's fine with me.   And probably more
often than not, I've learned more and answered some of my own questions in the
process of trying to answer a question or prove to someone that "it can't be
done!" just isn't true.   There's a way.  It may take me 3 years to find it.
But by golly, I'll resort to the most heinous and hacktastic coding practices to
prove that "IT CAN BE DONE!!!"


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

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