POV-Ray : Newsgroups : povray.beta-test : v3.7 v3.8 image compare : Re: v3.7 v3.8 image compare Server Time
3 Dec 2023 05:17:10 EST (-0500)
  Re: v3.7 v3.8 image compare  
From: William F Pokorny
Date: 1 Oct 2020 17:18:24
Message: <5f7647a0@news.povray.org>
On 10/1/20 10:52 AM, jr wrote:
> "jr" <cre### [at] gmailcom> wrote:
>> "jr" <cre### [at] gmailcom> wrote:
>>> ...
>> more changes.  ...
> the "problem" with the existing code is that the same command-line is built for
> both (POV-Ray) executables.  to build version-specific command-lines I need
> additional information about which CLI option came into use when.  so far I
> have:
> v 3.8 - ac am3 cc ss
> v 3.7 - ag bm2 bs gp hr mi wt
> does anyone ("hey WFP"  ;-)) know of a list of new option switches, by POV-Ray
> version?  can anyone (please) help by adding stuff I missed?  also, ideally, I'd
> like info going back to at least v 3.5.  TIA.

The documentation for v3.8 is pretty good, but still over the past 
decade or more the tendency has been to leave the flag and ini parsing 
in place so old stuff keeps running. Sometimes you get a warning the 
feature is obsolete or something, but not always. What I see happening 
is folks continuing to use flags which have long not worked. To no large 
harm for long time users, but I think stuff like this is really 
confusing to newer users.

The best I can easily offer is the povr source code and the files:




The former has the render options which work for povr and with the 
exception of the two real time rendering flags. If memory servers the 
rest at I think what does something in the current v3.8. I've taken a 
harder line with povr. If the flag no longer does anything, povr dies. 
Remember any ini option can be specified on the command line and a few 
ini options have no short flags - File_Gamma is one of those I hit 
pretty often.

I also change the flags as specified to lower case over upper because 
the case in processrenderoptions.cpp is what shows up in the error 
messages (though either case works) and lower case flags more natural in 
unix like environments I think.

For unix there are too the unix only flags (-y). povr -help to see 
those, and some of those like -authors are povr only critters.

The file povmsid.h is where other previous to me documented some 
features working, not or unused (or sometimes used only internally). I 
extended this convention by sticking some of my comments in there too. 
The IDs there correspond to options.

With older versions suppose these files might help. Documentation for 
those versions too as folks have tried to update to match, but probably 
like v3.8 there are flags floating around that no longer do anything. I 
don't have any ready docs for those.

Aside: I've played a little with now extended and perhaps eventually, 
replacement options parsing. One of the things you run into for example 
is someone can have coded up +am5 accidentally. No errors, no warnings. 
In v3.7 this, IIRC, defaults to am2. In recent v3.8, it defaults to am3.
Folks can get differences in result and not easily know why (that AA 
changed is in the output - if you happen to have both handy to compare).

With povr, if you specify +am5, you get:

Command line parameter: +am5
terminate called after throwing an instance of 'pov_base::Exception'
   what():  Must have trailing integer values of 1,2 or 3 as in +am2.
Aborted (core dumped)

The core dump isn't ideal, but I'll take it over no error at all.

This functionality might or might not be in the last tarball I posted - 
I don't remember. I do remember I haven't added the extended 
parsing/checking to all the flags as yet. There is too the unix flags 
getting handled and parsed somewhere else in the code. Not yet sure what 
to aim for in the end. :-)

Bill P.

Post a reply to this message

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