-
Notifications
You must be signed in to change notification settings - Fork 283
/
changes.txt
3993 lines (3063 loc) · 176 KB
/
changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
------------------------------------------------------------------------------
POV-Ray Changelog Digest
------------------------------------------------------------------------------
Notes:
- To view a referenced GitHub issue (#xxx), replace the leading # of the
issue ID with the URL https://github.com/POV-Ray/povray/issues/.
For example, to read GitHub issue #58, visit:
https://github.com/POV-Ray/povray/issues/58
- To view a referenced flyspray bug report (FS#xxx), replace the leading
FS# of the flyspray bug ID with the URL http://bugs.povray.org/.
For example, to read FS#270, visit:
http://bugs.povray.org/270
(Note: As of v3.7.1-beta.8 our flyspray bug tracker is officially mothballed,
and we no longer refer to it in the changelog. Any flyspray reports that
were still open at that point have been duplicated as GitHub issues titled
"Port of FSxxx - ...")
- To view a referenced newsgroup posting (<xxxxx@news.povray.org>), prefix
the message ID with the URL http://news.povray.org/.
The '<' and '>' are optional (if using a shell you may want to omit them).
For example, to read <42765ef3$1@news.povray.org>, visit:
http://news.povray.org/42765ef3$1@news.povray.org
------------------------------------------------------------------------------
Detailed changelog information is available in the file `revision.txt`, which
should be located in the same directory as this file is.
------------------------------------------------------------------------------
Changes between v3.7.1-rc.1 and v3.8.0-???
==========================================
This version is still under active development, and not finalized yet.
NOTE: This release cycle has been redesignated v3.8.0. There will not be a
v3.7.1 release proper.
Changed Behaviour
-----------------
- Any new behaviour formerly activated by `#version 3.71` now requires
`#version 3.8` (or higher); specifying `#version 3.71` will trigger a
corresponding warning.
- Some defaults have been changed (requires `#version 3.8` or a corresponding
command line / INI setting):
- The pigment now defaults to plain white.
- `ambient` now defaults to 0.0 instead of 0.1.
- The camera `right` vector length now defaults to the output image aspect
ratio (presuming square pixels) instead of 1.33.
Switching back and forth between defaults via `#version` is possible until
the first `default` statement is encountered; after that, `#version` will
cause a warning instead of changing defaults.
- Minor changes have been made to the benchmark scene. New benchmark version
is 2.03.
- Token counting in conditional blocks (e.g. in `#if ... #end`) has changed.
Whenever such a block is skipped, the token count is now incremented only
by directives (stuff that begins with `#`).
- UV mapping of cylinder, cone and lemon primitives has been disabled again
for now, due to their orientation being poorly defined.
- An age-old bug in the inbuilt `f_enneper` isosurface function has been
fixed; the function now results in the originally intended shape.
- Contrary to earlier claims and intentions, v3.7.1-beta.1 failed to lift the
requirement that array elements must be of the same type. It has been
decided to not fix the change to work as originally intended, and instead
only allow type mixing if the array has explicitly been declared as
`mixed`. See the documentation for details.
- The `defined()` pseudo-function now returns `true` (while printing a
warning) if applied to reserved words. The `#ifdef` and `#ifndef` directives
also behave accordingly.
- The dithering implementation has been modified, and may produce slightly
different results for otherwise identical scenes.
- The PGM (greyscale variant of PPM) output gamma handling now matches that
of regular PPM, honoring `File_Gamma` defaulting to ITU-R BT.709. To get
linear greyscale output, explicitly specify `File_Gamma=1.0`.
- Greyscale output no longer automatically forces bit depth to 16 bpc. To get
16 bpp greyscale output, explicitly specify `Bits_Per_Color=16`.
- Preview now reflects greyscale setting.
- The `charset` global setting has been deprecated and may no longer work as
expected. Input files conforming to ASCII, UTF-8, Latin-1 or Windows-1252
encoding will instead be auto-detected, while other encodings are currently
unsupported.
New Features
------------
- The `ovus` primitive has been extended in multiple ways. See the
documentation (currently being maintained on <http://wiki.povray.org>) for
details.
- Anti-aliasing now supports a new mode 3, which can actually serve as a
generic oversampling mechanism not only suited to perform edge
anti-aliasing, but also to successfully suppress moire patterns as well as
reduce image noise from stochastic mechanisms (e.g. jittered area lights,
subsurface light transport or micronormals). The mathematical background
and parameterization is similar to that of adaptive focal blur.
- The `bicubic_patch` primitive now allows for a trailing comma at the end of
the list of control points.
- The `matrix` syntax now allows allows for a trailing comma at the end of
the list of coefficients.
- File formats supporting variable bit depths (PNG and PPM/PGM) now allow for
bit depths as low as 1 bit per colour channel. (1-bit greyscale PPM/PGM will
still be written as PGM, not PBM.)
- Command-line option `+F` now allows specifying both the `G` greyscale flag
and the bit depth.
- Support for blue noise dithering has been added, plus a couple more error
diffusion dithering filters.
- The parser now checks for proper balancing of `#end` directives, braces,
parentheses etc. within each include file, and will report any imbalance
via warnings or, in case of `#end`, outright errors.
Performance Improvements
------------------------
- Significantly improved parsing speed of skipped conditional blocks (e.g. in
`#if(false) ... #end`), especially for blocks containing few directives
(stuff that begins with `#`).
Miscellaneous Improvements
--------------------------
- String literals are no longer limited to 256 characters.
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #65 ("Normal for the prism's bezier spline mode is reversed from other
spline types & lathe uses.")
- #292 ("Port of FS227 - Fixed Vector Limitations")
- #317 ("Boost 1.65.0 incompatibility")
- #319 ("Need -lboost_date_time in non-optimized Unix builds")
- #341 ("macOS build failure for 3.7.0.5", configure script failing to use
-lboost_system with Boost 1.66)
- #342 ("AX_FIX_INCORRECT_PATH is broken", configure script failing to
properly handle `.` directory in `C_INCLUDE_PATH` or `CPLUS_INCLUDE_PATH`)
- #400 ("Building on postmarketOS on PinePhone")
- #403 ("povray 3.7.0.8 does not build on macOS 11.0 Big Sur").
Reported via the Newsgroups:
- <web.59fefd5f68f4d962ca73ee9d0@news.povray.org>
(2017-11-05, povray.newusers, "orthographic camera and conic_sweep object")
Sides of a `conic_sweep` prism become invisible when viewed head-on using
an orthographic camera.
- <5a4f8ddc$1@news.povray.org>
(2018-01-05, povray.beta-test, "3.8.0 block pattern, density list parsing issue.")
- <web.5b8350d429c104f2458c7afe0@news.povray.org>
(2018-08-27, povray.advanced-users, "Re: It gets even weirder.")
Trying to `#declare Foo[A][B]=...` with `Foo` being an array of arrays and
`Foo[A]` not yet initialized causes a hard crash instead of a parse error.
Reported by Coverity static code analysis:
- CID 986462,986463 (Wrapper object use after free)
- CID 967358-967362 (Uninitialized scalar variable)
- CID 1372542-1372544 (Result is not floating-point)
- CID 1372618 (Uninitialized scalar variable)
- CID 1372629 (Uninitialized pointer read)
- CID 1372630-1372632 (Uninitialized scalar variable)
Miscellaneous:
- Fix `interior_texture` for text objects (as mentioned in GitHub issue #65).
- Eliminated use of deprecated C++ `register` keyword (except in 3rd party
libraries bundled with the POV-Ray source code).
- Fix long-standing bug in Julia fractal primitive using hypercomplex numbers.
Development Related
-------------------
- When compiled in debug mode, a new directive `#breakpoint` is now available,
intended for triggering an unconditional breakpoint from the scene file, or
priming a conditional breakpoint. See `Parser::Parse_Breakpoint()` in
`source/parser/parser_tokenizer.cpp` for more details.
- When compiled in debug mode, POV-Ray for Windows will now make do with
the release version of the editor DLLs if it can't find the debug version.
- A new version of the Git pre-commit hook is available; please, copy
`pre-commit` from `tools/git/hooks/` to `.git/hooks/` in your local
repository.
- To simplify version number housekeeping, the file `unix/VERSION` is now
created on the fly by the `unix/prebuild.sh` script, and has been dropped
from the repository. To retrieve version information from the source
package, use one of the new `get-source-version.*` scripts provided in
`tools/unix/` and `tools/windows/`, respectively.
- To simplify creating reproducible builds, the Unix build process has been
amended to compile and link source files in a well-defined order.
Other Noteworthy
----------------
- During alpha development phase, POV-Ray v3.8.0-alpha for Windows will
piggypack on an existing v3.7 installation to allow for raw binary
distribution.
- The source code now requires a C++11-compliant compiler.
- The Unix build process now officially requires Autoconf 2.68 or later.
- Added `--generation` command-line switch to POV-Ray for Unix, which will
cause POV-Ray to print its abbreviated version number to standard output.
- The `unix/prebuild.sh` script can now be run from the main directory; it is
no longer necessary to change to the unix directory first.
- The `./configure` script can now be run without the `COMPILED_BY=...`
option. In this case it defaults to `$USER <no contact address>`, where
`$USER` is your login name.
- The `boost_thread` and `boost_system` libraries are no longer required.
Changes between 3.7.1-beta.9 and 3.7.1-rc.1
===========================================
Fixed or Mitigated Bugs
-----------------------
Miscellaneous:
- Fixed a bug that broke builds without optimized noise.
- Fixed an issue in optimized noise when building on Unix with C++ compiler
switches disabling any of the relevant enhanced instruction sets (e.g.
`CXXFLAGS=-mno-fma`).
Changes between 3.7.1-beta.8 and 3.7.1-beta.9
=============================================
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #137 ("Port of FS313 - radiosity.cpp pov::RadiosityFunction::BeforeTile assertion failed") [final fix]
Reported via the Newsgroups:
- <web.5943b6fab6538c359c5d6c810@news.povray.org>
(2017-06-16, povray.beta-test, "Re: Testing Required: Mosaic Pretrace and Abort-Continue")
Mosaic pretrace causes artifacts in the rendered image if `+ep1` or `+ep2`
is used without anti-aliasing (independent of abort-continue).
Other Noteworthy
----------------
- Unix build process now enforces alphabetical ordering of code units
(`.cpp` files) in the linkage process, to ensure bit-identical binaries
regardless of physical ordering of the files in the file system.
- Minor updates to the documentation.
Changes between 3.7.1-beta.7 and 3.7.1-beta.8
=============================================
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #147 ("Port of FS81 - sphere_sweep generating artifacts")
Other Noteworthy
----------------
- Minor updates to the documentation.
- The Unix build process and source code have been updated to make use of
the CPU-specific optimized noise implementations.
Changes between 3.7.1-beta.6 and 3.7.1-beta.7
=============================================
This version is essentially a hotfix for some issues with beta.6.
Fixed or Mitigated Bugs
-----------------------
Miscellaneous:
- Fixed a bug in the new `cubic_spline` sphere sweep bounding code.
- Reverted most of the sphere sweep performance and memory footprint
improvements introduced in the previous beta, as they caused artifacts.
- Fixed some sphere sweep inside texture inconsistencies when using
control points with negative radius.
- Fixed crash of Windows version on machines without AVX support.
- Fixed performance loss of Windows version observed with previous beta.
Changes between 3.7.1-beta.5 and 3.7.1-beta.6
=============================================
The focus of this version has been on various performance improvements, as well
as fixing a few bugs.
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #260 ("Pavement pattern broken")
- #285 ("Port of FS243 - Sphere sweep behaves wrong when scaled")
- #287 ("Differencing a cubic sphere sweep - artifact problem!")
Reported via FlySpray:
- FS#243 ("Sphere sweep behaves wrong when scaled")
Reported via the Newsgroups:
- <58de4765$1@news.povray.org>
(2017-03-31, povray.advanced-users, "Parse error")
New lathe point sanity check breaks legacy scenes.
- <web.58e39b3f29046ace8464b730@news.povray.org>
(2017-04-04, povray.beta-test, "Re-Render of Editor-Bitmaps failed with Beta 5 ?")
Command-line-style switches with optional parameters (e.g. `-jN`) are not
accepted in INI files if the parameter is omitted (e.g. `-j`).
Miscellaneous:
- Minor updates to the documentation.
- Fixed `cubic_spline` sphere sweep bounding issue (see GitHub issue #147 /
FlySpray report FS#81).
Known Issues
------------
- The (non-bounding related) artifacts described in GitHub issue #147
(formerly FS#81) are back, as the workaround has been identified as the root
cause of even worse issues.
Other Noteworthy
----------------
- Improved anti-aliasing performance.
- Added another AVX-optimized noise generator implementation (this one using
compiler optimization), improving performance on AMD CPUs supporting AVX
but not FMA4.
- The choice of noise generator will now be written to the benchmark log.
- Improved performance of AVX/FMA4-optimized noise generator.
- Improved photons performance in main render phase.
- Improved sphere sweep performance and memory footprint.
Changes between 3.7.1-beta.4 and 3.7.1-beta.5
=============================================
The focus of this version has been on improving the Visual Studio 2015-based
Windows build process, as well as reclaiming some performance lost earlier
during the development of 3.7.1.
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #226 ("Fix use of stat in unix/configure.ac")
- #257 ("Text in Windows "Open with" file menu")
Miscellaneous:
- Restored performance of user-defined functions (e.g. in isosurfaces) as
well as patterns with special turbulence handling (agate, marble, wood,
spiral1, spiral2).
Other Noteworthy
----------------
- To avoid overly stringent software requirements for building custom
Windows binaries, the VS2015 project files are now set up to generate
non-XP-compatible binaries by default; XP-compatible binaries can still
be generated through a more complex alternative build process.
Changes between 3.7.1-beta.3 and 3.7.1-beta.4
=============================================
The focus of this version has been on fixing bugs, as well getting
working XP-comatible binaries out of Visual Studio 2015.
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #241 ("Windows Build Instructions Misleading")
Reported via the Newsgroups:
- <58aa4755$1@news.povray.org>
(2017-02-19, povray.beta-test, "beta.3 and ./ and ../ weirdness")
Paths starting with "../../" not handled properly in POV-Ray for Windows
- <58aca5fc@news.povray.org>
(2017-02-22, povray.beta-test, "ior.inc fails in 3.7.1 beta 3")
Parse Error when including "ior.inc".
- <58ab1921$1@news.povray.org>
(2017-02-20, povray.beta-test, "Re: POV-Ray v3.7.1-beta.3 Released")
SSE2 support not properly detected on Windows XP
- <58ae4809$1@news.povray.org>
(2017-02-22, povray.beta-test, "Wrong error message building Windows console version")
Wrong file location specified for `syspovconfig.h`.
Miscellaneous:
- Fixed two demo scenes (`incdemo/sort.pov` and `textures/normals/normmap.pov`).
Other Noteworthy
----------------
- Migrated to Visual Studio 2015 as the designated official build tool.
As of this beta, Visual Studio 2010 is no longer supported.
Changes between 3.7.1-beta.2 and 3.7.1-beta.3
=============================================
The focus of this version has been on fixing bugs, as well as adding
hardware-specific performance optiomizations.
Fixed or Mitigated Bugs
-----------------------
Reported via GitHub:
- #180 ("Port of FS321 - Bounding threshold option handling.")
- #184 ("User defined camera may cause crash during render")
- #212 ("Port of FS301 - Fallback to default image size causes wrong values to be printed in message output")
Reported via FlySpray:
- FS#301 ("Fallback to default image size causes wrong values to be printed in message output")
- FS#321 ("bounding threshold inconsistency")
Reported via the Newsgroups:
- <3c4bb31d$1@news.povray.org>
(2017-01-27, povray.beta-test, "utf8")
Crash when using `charset utf8`.
- <58a5472b$1@news.povray.org>
(2017-02-16, povray.beta-test, "Windows beta.2-QA09T.msvc10.win64 does not accept "./" as a path")
Special directory name `.` not handled properly in POV-Ray for Windows.
Miscellaneous:
- Optional fields in macro parameters or tuple assignments now accept
uninitialized directory entries.
- Some minor fixes to the Windows inbuilt help.
- Increased thread stack size on Linux machines.
Other Noteworthy
----------------
- Added a new sample scene to demonstrate the `aoi` pattern.
- Added Intel optimizations for noise (courtesy of Intel; requires
AVX2/FMA3-capable CPU).
Changes between 3.7.1-beta.1 and 3.7.1-beta.2
=============================================
Changes have been made to allow POV-Ray for Windows v3.7.1 betas to live
happily alongside an existing v3.7.0 installation.
NOTE: This provision is made for the beta phase only. The final release of
POV-Ray for Windows v3.7.1 will be designed to supersede any existing v3.7.0
installation.
Changes between 3.7.0 and 3.7.1-beta.1
======================================
(Note: 3.7.1-beta.1 has never been officially released in binary form.)
The primary focus of this version has been on code refactoring in order to
modularize the underlying architecture, but various new features as well as
bugfixes have also been included.
Work on our own Macintosh graphical user interface has been put on hold, and
it may eventually end up on the scrapyard; our current hope for our Mac users
rests on a 3rd party OS X front-end that we strive to adopt.
New Features
------------
Materials:
- A new finish parameter, `use_alpha`, has been added to suppress highlights
and reflections depending on pigment transparency.
- A new special pigment pattern, `user_defined`, has been added to define the
pigment colour directly in terms of a set of functions.
- A new pattern, `potential`, has been added to define a pattern based on the
potential field of a blob or isosurface object.
- The `map_type` keyword now supports the Angular Map projection for light
probes, popularized by Paul Devebec, as type 7.
- Native support for repetition has been added to the `crackle` pattern to
avoid the discontinuities in the pattern caused by repeat warps.
- The torus syntax has been extended to give more control over the spindle in
a self-intersecting torus.
- Colour and pigment maps now support non-linear interpolation to achieve more
pleasing gradients.
- Fresnel angle-dependent attenuation can now also be applied to highlights as
well as diffuse and emission components for more physical realism.
Geometric Primitives:
- UV mapping support has been added to cones and cylinders.
- A new parameter, `polarity`, has been added to isosurfaces to choose whether
function values above the threshold should indicate the inside or outside.
- A new geometric primitive, `lemon`, has been added.
Scene Description Language, Options and INI settings:
- Support for variable-size arrays has been added.
- A new data container, `dictionary`, has been added to support structured
storage of data.
- Pseudo-dictionaries `local` and `global` have been added, allowing to
specifically access local or global identifiers, respectively.
- The `max_extent()` function as used to determine the size of an image map
in pixels can now also be used on normal maps and density files.
- Macros up to a certain size (currently hard-coded to 65536 characters per
macro) are now cached in memory, improving parsing speed of invocations,
especially when the macro in question is defined in a different file.
- All instances of `gray` in keywords or INI file options can now alternatively
be spelt `grey`. Previously this was only the case inside function
definitions (where it applied only to the `.gray` colour pseudo-component).
- A new inbuilt constant, `tau`, has been added as shorthand for `2*pi`, in
support of the world-wide initiative to obsolete pi in favour of the new,
more intuitive constant.
- The `#declare` and `#local` syntax has been extended to support tuple-style
assignments. The main purpose is to allow macros to return a set of values
rather than just a single one.
- The macro syntax has been extended to allow for optional parameters.
- The creation of a log for the `+C` render abort-continue feature can now be
suppressed using `-CC` to save disk space.
Miscellaneous:
- Support for the ITU-R BT.709 and BT.2020 transfer functions has been added
to POV-Ray's gamma handling portfolio.
- A new function-based user-defined camera type, `user_defined`, has been
added.
- Light sources' distance-based fading can now be set to obey an inverse-power
law at all distances.
- CIE L*a*b* conversion macros have been added to `colors.inc`.
- A new include file, `colors_ral.inc`, has been added, containing predefined
colours according to the RAL Classic standard.
For more details on the above new features, see the documentation.
Changed Behaviour
-----------------
Image Files:
- By default, gamma handling of NetPBM (PPM/PGM) in- and output files now
follows the official NetBPM standard, which mandates gamma-encoding using the
ITU-R BT.709 transfer function. As usual this can be overridden by the
`gamma` input file parameter or `File_Gamma` INI setting, respectively.
- The "Compression" setting now affects more file types: Specifying
"Compression=1" with file type "T" (Targa) will now generate compressed Targa
(same as file type "C"), and explicitly specifying "Compression=0" with file
type "P"(Netpbm PPM/PGM) will generate "plain" (ASCII) Netpbm rather than
"raw" (binary).
- POV-Ray will now try to auto-detect whether an input TIFF file with alpha
channel uses premultiplied or non-premultiplied alpha mode, rather than
blindly presuming premultiplied alpha.
- The interaction of `transmit all` and `filter all` with an image's alpha
channel has been changed to be more intuitive: rather than adding the
image's transparency to the user-specified transparency, the image's opacity
is now effectively multiplied with the user-specified opacity. (requires
`#version 3.71` or later)
- The image file format previously referred to as "IFF" (now more precisely
referred to as "IFF-ILBM") is now associated with the `.lbm` file extension,
in addition to the `.iff` extension.
Miscellaneous:
- On Unix with Simple DirectMedia Layer (SDL) enabled, the "p" key can now be
used to pause and un-pause a render.
- The `version` pseudo-variable will now evaluate to the effective language
version at the time the expression is parsed, _except_ when used in a
`#version` directive, in which case the behaviour remains unchanged.
- The requirement to start each scene with a `#version` statement is now more
strongly enforced for POV-Ray 3.7 scenes, by reporting a parse error if the
scene file does not begin with a `#version` directive but does have a
`#version 3.71` (or later) directive anywhere in the main scene file.
- Using `ambient` with a suspiciously high value in a non-legacy scene will
now prompt a warning, unless `emission` is also specified.
- A long-standing undocumented inconsistency in the treatment of backslashes
in string literals, in which backslashes were essentially _not_ interpreted
as escape characters _if_ the parser expected a filename, has been cleaned
up, so that backslashes are now treated as escape characters in all string
literals. (requires `#version 3.71` or later)
- Boost version 1.38 or later is now required.
Compatibility Improvements
--------------------------
- Compatibility with modern compilers in general has been greatly improved.
Rather than trying to disable the compiler's C++11 support and work around
any resulting fallout, the code has been overhauled to eliminate any
conflicts with the C++11 standard in the first place, and should now compile
fine on any compiler conforming to either C++03, C++03 TR1, or C++11
(notwithstanding platform-specific issues).
- Compatibility of the Unix build process with modern versions of the boost
libraries and automake tools has been improved, avoiding the need for
additional configure parameters or extra build steps on modern Linux
systems.
- Compatibility with Visual Studio 2015 has been improved by streamlining the
Visual Studio 2010 project files and a few pieces of source, packing new
versions of the boost and openEXR libraries, and sorting out the generic
C++11-related issues. As a result, the Visual Studio 2010 projects now build
"out of the box" on Visual Studio 2015.
- Thread stack size has been increased to avoid problems on some platforms.
(requires boost 1.50 or later)
Miscellaneous Improvements
--------------------------
- Array elements no longer have to be of the same type.
- Dithering is now fully supported for Radiance HDR output files as well.
- Trailing whitespace in INI files no longer causes a warning.
- Animation status messages now include the nominal frame number.
- POV-Ray for Windows now reports file names and line numbers of warnings.
- Radiosity can now honor the `brilliance` setting of a surface.
- Colour maps, pigment maps and the like are no longer limited to 256 entries.
- The number of components per blob is no longer artificially limited.
Fixed or Mitigated Bugs
-----------------------
(Note: Bugs first introduced in a POV-Ray 3.7.1-alpha version may or may not be
included in these lists.)
Reported via GitHub:
- #5 ("prebuild.sh chmod errors: No such file or directory")
- #6 ("Makefile.in does not get created")
- #7 ("stat: illegal option -- c")
- #8 ("reference to 'shared_ptr' is ambiguous")
- #9 ("lseek64 is not present on all platforms")
- #10 ("Possibly missng sys/types.h include?")
- #21 ("configure attempts to link boost_system library even with boost 1.49 or earlier")
- #24 ("Compile on debian jessie")
- #29 ("master branch, failing to compile on linux on 28th June 2014")
- #30 ("gcc-compiled povray of current master (2014-07-02) produces wrong output for benchmark")
- #31 ("unknown type name 'shared_ptr'")
- #32 ("need to include <sys/wait.h>")
- #36 ("Bad naming in Insert Menu / 10 - Ready made scenes")
- #37 ("Missing txt file in /E6 - Patterns 2/03 - pavement_sides_3")
- #38 ("Bad naming in /A0 - Include files/")
- #43 ("cannot build latest trunk")
- #44 ("master branch has problem to compile with boost 1.55+")
- #49 ("Latest version from Git won't build with MS Visual Studio 2015")
- #50 ("Make error in Ubuntu 14.04")
- #53 ("Standard include files may mess up the language version")
- #60 ("Not the right behaviour for Bezier splines")
- #63 ("Mar 05, 2016 commit appears to have broken AA. Ubuntu 14.04.")
- #98 ("String variables not always accepted.")
- #110 ("POV-Ray does not honor official PGM and PPM specifications with respect to gamma.")
- #111 ("Port of FS307 - netpbm, ppm, read bug where first data byte CR char.")
- #114 ("Port of FS298 - The warning for isosurface does not appears as often as with 3.6.1")
- #124 ("Compiling on os Sierra - Compiler Error - typedef redefinition with different types ('int' vs 'enum')")
- #128 ("Port of FS331 - Intersection causes quadric to disappear")
- #149 (""prefix" keyword conflict in distribution scene files")
- #153 ("vector list trailing comma error sor lathe sphere_sweep")
- #160 ("Port of FS259 - Stack Overflow with the write-directive with missing closing bracket.")
- #161 ("Missing parenthesis on write directive causes crash.")
- #175 ("Coredump due recent 3.7.1 parser updates.")
Reported via FlySpray:
- FS#254 ("Mesh_camera type 0 output seems to be incorrect")
- FS#259 ("Stack Overflow with the write-directive with missing closing bracket")
- FS#261 ("mesh_camera distribution type 3 output image is placed 0.5 pixels to wrong")
- FS#268 (""naked" pigment statement does not properly override previous pigment")
- FS#270 ("render abort-continue (+C) sometimes skips blocks")
- FS#298 ("the warning for isosurface does not appears as often as with 3.6.1")
- FS#307 ("netpbm, ppm, read bug where first data byte CR char")
- FS#313 ("radiosity.cpp pov::RadiosityFunction::BeforeTile assertion failed") [preliminary fix]
- FS#314 ("reading Gif is bugged in 3.7")
- FS#315 ("inverse keyword does not work properly with quadrics")
- FS#316 ("inverse keyword does not work properly with fractals")
- FS#317 ("problem with +D option at specific output file dimensions")
- FS#318 ("method 3 (default) scattering media is too bright & causes artifacts when nested")
- FS#331 ("Intersection causes quadric to disappear")
- FS#336 ("#fopen w/o OPEN_TYPE crash povray (segfault)")
Reported via the Newsgroups:
- <3c4bb31d$1@news.povray.org>
(2002-01-21, povray.beta-test, "<1, 0, 0> + 1*t")
Inconsistency in automatic scalar-to-vector promotion.
- <web.52e768e03066f6369a9ee9f50@news.povray.org>
(2014-01-28, povray.bugreports, "Help file")
Lots of broken indices in the POV-Ray for Windows inbuilt documentation.
- <53ea2dae@news.povray.org>
(2014-08-12, povray.binaries.images, "unexplained")
Precision issue led to `<1,1,1>.grey` not evaluating to 1 on sone systems.
- <web.551e92b74514bfb213709ea20@news.povray.org>
(2015-04-03, povray.binaries.images, "An artifact when rendering torus(negative major_r)")
Spindle torus shading issues resulting from bogus surface normal
computations for points on the spindle.
- <web.55aac094763dc3187a3e03fe0@news.povray.org>
(2015-07-18, povray.binaries.scene-files, "Where my background? Help me, please!")
Bug in meshmaker.inc that would scramble the SDL language version to use for
a scene.
- <56cc274d$1@news.povray.org>
(2016-02-23, povray.beta-test, "double free or corruption")
Bug in the copying of multi-textured blobs.
- <56cdaee5@news.povray.org>
(2016-02-24, povray.beta-test.binaries, "optics.pov 3.7.0 vs 3.7.1")
Bug in media photons.
- <56d16f44$1@news.povray.org>
(2016-02-27, povray.beta-test, "splinefollow")
Bug in splines.
- <56d15fb0$1@news.povray.org>
(2016-02-27, povray.beta-test.binaries, "reflection.ini")
Bug in `animations/reflection` sample scene INI file.
- <web.56d342e38bb35b79fd6b6fe10@news.povray.org>
(2016-02-28, povray.bugreports, "#write")
Under certain circumstances, a missing closing parenthesis in the condition
of an `#if`, `#while` or similar statement would lead to a crash instead of
a parse error.
- <56d48747$1@news.povray.org>
(2016-02-29, povray.beta-test, "cliche.pov")
Missing input image filename extension in `advanced/cliche`.
- <56d5d924$1@news.povray.org>
(2016-03-01, povray.beta-test, "whiltile.pov")
Enabling a commented-out statement in the `advanced/whiltile.pov` scene
would result in the `#version` directive not being the first statement.
- <5762b6bf$1@news.povray.org>
(2016-06-16, povray.bugreports, "Function bug with POV-Ray 3.7.1-alpha.8638272 Ubuntu 14.04")
Bug in isosurfaces with non-zero threshold.
- <web.57ad048990f06e6231fe18be0@news.povray.org>
(2016-08-11, povray.general, "Caustics not working with transparent background")
Bug causing radiosity to ignore refracted `no_image` objects.
- <web.57b4b6c879df8923b488d9aa0@news.povray.org>
(2016-08-17, povray.binaries.scene-files, "Wrong normal direction on triangle{ }s")
Bug in flat trianges that could cause interior_texture to show on the wrong side.
- <57e2cfe4$1@news.povray.org>
(2016-09-21, povray.general, "POV-Ray 3.7 doesn't render anymore")
Bug causing `+a.3` command-line option to be rejected.
- <web.57ede719b90612ffb1933f770@news.povray.org>
(2016-09-30, povray.documentation.inbuilt, "how are dist. doc mistakes handled?")
Missing closing parenthesis in HF_Sphere macro snippet.
- <web.57fbb6f31fca49e37a3e03fe0@news.povray.org>
(2016-10-10, povray.binaries.images, "PNG image as Povray render result: bug or not?")
Unnecessary creation of PNG oFFs chunk, causing GIMP to pop up a confusing dialog.
- <58090935$1@news.povray.org>
(2016-10-20, povray.programming, "Re: solving polynomials")
Misplaced `break` in polynomial solving code.
Reported via Windows Crash Reports:
- crash report #???, dump file #988
Under certain circumstances, a missing closing parenthesis in the condition
of an `#if`, `#while` or similar statement would lead to a crash instead of
a parse error.
Miscellaneous:
- Fixed media cutting out or fading to black above the horizon (sample method
3 only; other methods remain problematic).
- Animation status messages now consistently display a running frame count and
the total number of frames actually to be rendered, properly taking into
account the Frame_Step setting.
- Fixed mesh_camera-related flaws in the parser.
- Fixed a family of bugs that could cause problems when using focal blur with
some camera types if the camera is very close to the surface of a media
container.
- Fixed bug that could cause strange parse errors when including a file from
within macro.
- Added a sanity check to the maximum interations parameter in fractals.
- Fixed a hard crash when sum() was called with only three parameters.
- Fixed bezier patch not honouring clipped_by statement.
- Fixed crash when using turbulence parameters (lambda, omega etc.) without
specifying a pattern type.
- Fixed bug in parser causing an error when no file type is specified and the
file name is specified using a variable.
- Fixed unwarranted "Rainbow's up and direction vector are co-linear"
error message.
- Fixed another bug in mesh_camera with distribution 3.
- Fixed wrong rotation in `Round_Pyramid_N_in` in shapes3.inc.
- Fixed some more bogosities related to media sampling method 3.
- Minor robustness improvement in IFF image reading code.
- Iridescence did not properly honor full area diffuse lighting.
- Subsurface scattering did not play nice with non-default brilliance values.
Other Noteworthy
----------------
- The Visual Studio 2010 project for a console-only Windows version has been
revived.
---------------------------------
Changes between 3.7.RC7 and 3.7.0
---------------------------------
- This is the version 3.7.0 release, and mostly things are in order,
however a few minor bugs have been addressed. Continued efforts towards
addressing static code analysis issue's resulted in the inclusion of
several high profile fixes into this release. The scene files included
with the distribution have been reviewed as well. This includes
version branding, deleting some older irrelevent files, and a few new
additions. The windows version insert menu files were also updated and
expanded. Additionally the insert menu templates are now also available
in HTML for convenient use with 'cut and paste'. The distribution package
has been branded with a different (AGPL3) license.
- For technical reasons the Macintosh OS graphical user interface was not
ready at the time of this release. However, the source code will be made
available to users so they can build their own binary if the wish.
Windows Related:
----------------
- moved codemax source and removed dependence on codemax header files
- relocated cmedit source files
- updated help file
- updated keywords used for context-sensitive help
- minor setup tweak
- fix unquoted path in shell extension registration and added registry key
backups for uninstall
- updated source code readme.html
- updated about box image
- some tweaks related to console project and remove codemax project
- removed vs8 and vs9 solutions
- fixed issue with editor selection due to off-by-one line numbers.
make use of SetCaretPos consistent
- update about bitmap to remove explicit URL's and add support to about
window code to make some areas act as hyperlinks
- remove old 4BPP toolbar icons as 16-color mode support isn't really
relevant anymore
- rename a few files in bitmaps directory whose names were upper-case
Static Code Analysis:
---------------------
- CID 967264: Non-array delete for scalars
- CID 967298: Resource Leak
- CID 967299: Resource Leak
- CID 967300: Resource Leak
- CID 967301: Resource Leak
- CID 967302: Resource Leak
- CID 967303: Resource Leak
- CID 967363: Uninitialized scalar variable
- CID 967364: Uninitialized scalar variable
- CID 967365: Uninitialized pointer read
- Several fixes were rolled back, pending further investigation. They have
been tabled for inclusion in a future release.
Fixed or mitigated the following bug reports:
---------------------------------------------
- http://bugs.povray.org/task/262 linux sources being compiled twice
- http://bugs.povray.org/task/271 filter affects object's own brightness
- http://bugs.povray.org/task/274 light source fading and subsurface
- http://bugs.povray.org/task/294 splines are not thread safe
- http://bugs.povray.org/task/304 for loop fails to perform last iteration
- http://bugs.povray.org/task/308 heightfield computation has a regression
Other Noteworthy:
-----------------
- assigned licences to individual source files in the distribution tree
- minor but effective changes to octree code for improved performance
in radiosity-heavy scenes
- minor fix to radiosity statistics (octree samples/node)
- cleaned up our jpeg code to use the proper constants for the jpeglib's
custom "boolean" type (we erroneously passed standard C++ bool constants
instead, which could lead to compile errors on some systems)
- suppressed duplicate version message and flipped version to 3.7.0
- moved some code (previously a temp fix) to the frontend where it belongs
- added new include files: shapes3.inc, meshmaker.inc and makegrass.inc
- a couple of (unix specific) developer and user contributed fixes
- remove outdated support header files for borland, mingw and watcom
compilers
- add warranty disclaimer to console output
- updates to unix man page
-----------------------------------
Changes between 3.7.RC6 and 3.7.RC7
-----------------------------------
- This is the FINAL release candidate. It features continued refinements to
the Windows user interface as well as the setup/install process, fixes
found by static code analysis, and various other bug fixes.
Windows Installer:
------------------
- POVWIN now assigns .pov file association to when installing.
- Improved cloning of v3.6 INI and provide better defaults.
- Various fixes/improvements to the way Windows INSTALL works and how the
documents path is auto-detected if not specified.
- Additional setup tweaks.
Windows Crash Reports:
----------------------
- Fix to handle filenames with a comma in them: crash report #419.
Static Code Analysis:
---------------------
- CID 967356: Uninitialized scalar variable
uninit_use: Using uninitialized value "r". See also FS#267
- CID 967224: Truncated stdio return value
char_io: Assigning the return value of "pov_base::ITextStream::getchar()"
to char "chr" truncated its value
- CID 967248: Copy-paste error
copy_paste_error: "t1" in "t1 < 1e+07." looks like a copy-paste error.
Should it says "t2" instead
- CID 967249 Resource leak in object
1. alloc_new: Allocating memory by calling
"new double[camera.Blur_Samples]"
2. var_assign: Assigning: "this->Sample_Threshold" =
"new double[camera.Blur_Samples]"
3. ctor_dtor_leak: The constructor allocates field "Sample_Threshold" of
"pov::TracePixel::FocalBlurData" but the destructor and whatever
functions it calls do not free it
- CID 967420: Non-virtual destructor
Nonvirtual_dtor: Class pov::RadiosityTask::RadiosityBlockInfo has a
destructor and a pointer to it is upcast to class pov::ViewData::BlockInfo
which doesn't have a virtual destructor
Fixed or mitigated the following bug reports:
---------------------------------------------
- http://bugs.povray.org/task/270 render abort-continue (+C) skips blocks
- http://bugs.povray.org/task/267 bug in "sor" primitive causes artifacts
- http://bugs.povray.org/task/266 improper quoted strings handling
- http://bugs.povray.org/task/265 supress clang compilation warnings
- http://bugs.povray.org/task/257 Input file resuming animation render
- http://bugs.povray.org/task/249 UTF-8 files with BOM read error
- http://bugs.povray.org/task/247 set no_radiosity in Screen_Object()
- http://bugs.povray.org/task/238 error during #read leaves file open
- http://bugs.povray.org/task/234 allows GD flag to work correctly
- http://bugs.povray.org/task/233 picture index out of range
- http://bugs.povray.org/task/232 illegal map_type usage reporting
- http://bugs.povray.org/task/224 syntax highlighting/auto-comp (windows)
- http://bugs.povray.org/task/153 determine I/O permission for output file