forked from POV-Ray/povray
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes.txt
3443 lines (2649 loc) · 153 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
- 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 3.7.0 and 3.7.1-TBD
===================================
This version is still under active development, and not finalized yet.
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.
To Do
-----
Prior to the release of 3.7.1, the following items still need urgent attention:
- The new features need to be properly documented.
- The Windows version's inbuilt help index needs to be fixed.
New Features
------------
- 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.
- Native support for repetition has been added to the `crackle` pattern to
avoid the discontinuities in the pattern caused by repeat warps.
- A new function-based user-defined camera type, `user_defined`, has been
added.
- The torus syntax has been extended to give more control over the spindle in
a self-intersecting torus.
- 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.
- `local()` and `global()` pseudo-functions have been added to specifically
refer to a local or global identifier, respectively.
- The macro syntax has been extended to allow for optional parameters.
- Light sources' distance-based fading can now be set to obey an inverse-power
law at all distances.
- Colour and pigment maps now support non-linear interpolation to achieve more
pleasing gradients.
- 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.
- Radiosity can now honor the `brilliance` setting of a surface.
- The `brilliance` effect can now be applied not only to incoming light, but
also to outgoing light, making the effect phyiscally more realistic.
- Fresnel angle-dependent attenuation can now also be applied to highlights
and the diffuse component for more physical realism.
- The creation of a log for the `+C` render abort-continue feature can now be
suppressed using `-CC` to save disk space.
For more details on the above new features, see the documentation.
Changed Behaviour
-----------------
- 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.7` (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.
- 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.
- 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
--------------------------
- 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.
- Colour maps, pigment maps and the like are no longer limited to 256 entries.
- The number of components ber blob is no longer artificially limited.
Fixed or Mitigated Bugs Reported by Static Code Analysis
--------------------------------------------------------
(none at present)
Fixed or Mitigated Bugs
-----------------------
(Note: This list includes some bugs introduced after POV-Ray 3.7.0.)
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>")
- #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")
Reported via FlySpray:
- FS#254 ("Mesh_camera type 0 output seems to be incorrect")
- FS#261 ("mesh_camera distribution type 3 output image is placed 0.5 pixels to wrong")
- FS#270 ("render abort-continue (+C) sometimes skips blocks")
- FS#313 ("radiosity.cpp pov::RadiosityFunction::BeforeTile assertion failed")
- 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")
Reported via the Newsgroups:
- <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.
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:
- 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
- http://bugs.povray.org/task/150 improves POVWIN shell "open with" option
- http://bugs.povray.org/task/135 editor tab right-click menu additions
- http://bugs.povray.org/task/109 frame-by-frame debug data handling
Other Noteworthy:
-----------------
- Several updates to #5678 (FS#233): workaround for fmod() apparently not
conforming to C++ standard on some linux machines.
- Fixed radiosity issues with "diffuse albedo" syntax.
- Fix for benchmark thread vs CPU count (windows version).
- Fix to get rid of a shape/poly.cpp compile warning on Linux variants
- Added (re-enabled) crand support.
- Couple of fixes for an issue caused by a "boost" change.
- Build-in benchmark can now render without external distribution files.
- Fixed a bug in file-backed image container.
- Bump benchmark version to 2.01
- Various windows user interface refinements
- Added new option to prevent the system (windows) from sleeping whilst a
render is in progress. by default this is selected.
- Fix a long-standing bug where pressing 'pause' during a parse or render
could sometimes put the frontend/backend sync into an unrecoverable state
- Updated copyright information for some 3rd party libraries.
- A few signedness fixes in image handling code.
- Continued code cleanup including getting rid of unused code & parameters.
- Updated VS project libraries: zlib, libpng, libjpeg
- Added Append_File +GP option, which allows users to append streamed
console to existing console stream output file(s).
-----------------------------------
Changes between 3.7.RC5 and 3.7.RC6
-----------------------------------
- This release candidate features continued refinements to the Windows
installer, VS10 code (and other) cleanup and a few bug fixes.
Windows Installer:
------------------
- Several updates and improvements that address user feedback.
- Fixed an issue with the XP64 installer.
Windows Source Build:
---------------------
- Fixed ALL tiff project targets to build tiff config headers.
- Fixed Debug/x64 target to build OpenEXR to Float.
Windows Crash Reports:
----------------------
- Fix for divide-by-zero in stats code when radiosity query count is 0
crash report #384, dump file #342
- Fix merge issue from change #5387 which re-introduced a bug fixed earlier
crash report #385, dump file #343
- Potential fixes for a number of crash reports related to the editor
(particularly drag&drop actions)
- Fix for numeric overflow issues in image handling; eg: VERY large images
Fixed or mitigated the following reports:
-----------------------------------------
http://bugs.povray.org/task/241 FS#241 (Photons not working correctly)
Other Noteworthy
----------------
- Insert menu (windows version) update from Friedrich Lohmller.
- Fixed problems with colored transparent backgrounds.
- Fixed the Windows help file searchable index.
- Some general code housekeeping (comments and whitespace).
- A minor fix for radiosity adc_bailout handling.
- Corrected a formatting issue with radiosity statistics reporting.
-----------------------------------
Changes between 3.7.RC4 and 3.7.RC5
-----------------------------------
- This release candidate primarily addresses the crash dump report #357
triggered by non-closed SSLT-enabled mesh inside CSG. This fix also
addressed several issue's with another outstanding bug report.
- The Windows installer and crash dump submitter have been improved.
- Changes to the post processing of the Windows help file corrected the
broken searchable index.
- A couple of bug reports have been addressed.
Fixed or mitigated the following reports:
-----------------------------------------
http://bugs.povray.org/task/12 FS#12 (facets pattern in normal map)
http://bugs.povray.org/task/196 FS#196 (More SSLT Caveats)
http://bugs.povray.org/task/46 FS#239 (improper uid/gid handling)
-----------------------------------
Changes between 3.7.RC3 and 3.7.RC4
-----------------------------------
- This release candidate primarily improves upon the SSLT code, but there
are also some other noteworthy enhancements and/or additions.
They are listed below:
- a keyword addition "albedo" it's a new finish attribute
- the iridescence feature has been overhauled
- support was added for tuning brightness of image-mapped sky spheres
- three new tiling patterns were added
- Building from the windows source distribution has also been simplified
- Introduced a new windows installer
- Added AMD optimizations for noise
- A Windows Editor crash fix
- Over two dozen bug reports have addressed
- A few scene file fixes and/or additions
- Updated the Windows help file
Subsurface Light Transport
--------------------------
bugfixes and improvements to SSLT code;
syntax for material definition has changed as follows:
material {
texture {
pigment { PIGMENT }
finish { ...
subsurface { translucency COLOR }
}
}
interior { ior FLOAT }
}
The pigment determines the SSLT material's overall appearance when applied
to an object with sufficiently large structures. The translucency color
(which can alternatively be a float) determines the strength of the
subsurface light transport effect (note that the values may be >1.0; also
note that the effect doesn't scale with the object; instead, to adjust
materials to the dimensions of your scene, use the global mm_per_unit
setting). The material's index of refraction also affects the appearance of
the material, and is mandatory for SSLT materials.
SSLT is now enabled only when a global_settings subsurface block is present;
to enable SSLT but use the default settings, specify an empty block,
i.e. "subsurface{}"
Due to the experimental status of SSLT, there are currently some caveats:
- Incorrect use may result in hard crashes instead of parse warnings.
- Pigments having any zero color components currently don't play nice with
SSLT; for example instead of "rgb 1" you should use something like
"rgb <1,0.05,0.05>".
- A Diffuse finish attribute of zero can cause the program to have an
assertion failure.
- changes to improve robustness regarding low translucency and/or high
mm_per_unit settings for objects in general and blobs in particular
added support for CSG (caveat: unions of overlapping components will cause
unexpected results; use merge instead)
Further Subsurface scattering improvements include:
- added syntax to global subsurface block:
global_settings { subsurface { radiosity BOOL } }
specifies whether subsurface light transport effects should be applied to
incoming radiosity-based diffuse illumination; if this setting is
off (default), subsurface light transport effects will only be applied to
direct illumination from classic light sources. Setting this to on will
improve realism especially for materials with high translucency, but at a
significant cost in rendering time.
- added syntax to global radiosity block:
global_settings { radiosity { subsurface BOOL } }
specifies whether radiosity sampling should honor subsurface light transport;
if this setting is off (default), radiosity-based diffuse illumination is
computed as if the surrounding objects had subsurface light transport turned
off. Setting this to on may improve realism especially in the presence of
materials with high translucency, but at some cost in rendering time.
- Subsurface scattering is disabled in all quality levels except +Q9
or higher.
- More thorough fix to complement change #5425.
- Minor changes to reduce intensity of patterned noise artifacts on
subsurface textures.
Other Noteworthy
----------------
- Added new "albedo" keyword, that can be used right after "diffuse",
"phong" or "specular" to specify that the parameter is to be taken as the
total diffuse/specular reflectance, rather than peak reflectance. E.g.:
diffuse albedo 0.5 brilliance 2
specular albedo 0.05 roughness 0.001
phong albedo 0.02 phong_size 1000
Note that for brilliance = 1, the "albedo" keyword has no effect on the
diffuse parameter.
- A major overhaul of iridescence feature, which used to be seriously flawed;
syntax remains unchanged, except that both thickness and amount are now
supposed to be specified in microns. The new irid_wavelength default value
is now <0.70, 0.52, 0.48>, so iridescence effects will vary from previous
versions.
- Added support for tuning brightness of image-mapped sky spheres:
Added "emission COLOUR" parameter to sky_sphere, defaulting to [rgb] 1.
Higher values increase the sky sphere brightness accordingly, while lower
values decrease it. While primarily intended for easy tuning of light probe
skies, the parameter also works with procedural sky pigments.
- Added three new "tiling" patterns:
- pattern 25 type (N=6) produces a Penrose P1 tile
- pattern 26 type (N=2) produces a Penrose P2 tile
- pattern 27 type (N=2) produces a Penrose P3 tile
- Added AMD optimizations for noise. Note that these are currently disabled.
Windows Source Build:
---------------------
A subset of the Boost 1.45.0 and openEXR 1.6.1 libraries have been added to
the windows source distribution so that users can easily build thier own
statically linked binary from scratch. Added "Console" and "Console-SSE2"
configurations to VS10 solution, but needs to be back-ported to VS8/9 as
there is no debug configuration yet. Extensive testing still required ...
expect shellout to be still dysfunctional.
Windows Crash Reports:
----------------------
- The crash reporter tool has been reworked to always generate both full and
mini dumps because often insufficient information was available to resolve
the crash, consequently compression support was also added.
- A windows editor fix for a problem that was reported in crashdump #111
Windows Installer:
------------------
Introduced a new windows version NSIS based installer, further improvements
pending. Currently there are a few caveats:
- It won't ask you to uninstall the old beta (don't use MSI anymore)
- It won't object if you try to re-install over the top of an existing install.
- It also requires elevation on Vista and Windows 7 as it allows installation
to the program files directory (the default now).
Fixed or mitigated the following reports:
-----------------------------------------
http://bugs.povray.org/task/9 FS#9 (sky_sphere brightness tuning)
http://bugs.povray.org/task/46 FS#46 (area_illumination enhancement)
http://bugs.povray.org/task/156 FS#156 (crash reading empty DF3 file)
http://bugs.povray.org/task/165 FS#165 (projected image_map is clipped)
http://bugs.povray.org/task/166 FS#166 (quick_color does not work)
http://bugs.povray.org/task/169 FS#169 (photon memory leak)
http://bugs.povray.org/task/185 FS#185 (wrong image resolution reported)
http://bugs.povray.org/task/190 FS#190 (photon message reporting)
http://bugs.povray.org/task/191 FS#191 (interpolated image_map artifacts)
http://bugs.povray.org/task/194 FS#194 (command line option change)
http://bugs.povray.org/task/196 FS#196 (subsurface seqmentation faults)
http://bugs.povray.org/task/197 FS#197 (-J option was a no-op)
http://bugs.povray.org/task/198 FS#198 (missing braces in funtion)
http://bugs.povray.org/task/199 FS#199 (scene file typos)
http://bugs.povray.org/task/200 FS#200 (Calibri TrueType font garbled)
http://bugs.povray.org/task/203 FS#203 (radiosity artifacts)
http://bugs.povray.org/task/204 FS#204 (--V is not Verbose=off on Unix)
http://bugs.povray.org/task/206 FS#206 (cannot open file error)
http://bugs.povray.org/task/208 FS#208 (use-after-free when returning)
http://bugs.povray.org/task/209 FS#209 (weighted texture of CSG)
http://bugs.povray.org/task/210 FS#210 (UV mapping broken for parametric)
http://bugs.povray.org/task/213 FS#213 (add check for ios failbit/badbit)
http://bugs.povray.org/task/214 FS#214 (failed to parse command-line)
http://bugs.povray.org/task/215 FS#215 (double error reporting)
http://bugs.povray.org/task/216 FS#216 (obsolete option in raddem.ini file)
http://bugs.povray.org/task/221 FS#221 (crash undefinded looks_like object)
http://bugs.povray.org/task/225 FS#225 (looks_like texture translate fix)
http://bugs.povray.org/task/235 FS#235 (unix segmentation fault)
Scene file updates and additions:
---------------------------------
Updated the tiling pattern scene file:
~scenes/textures/patterns/tiling.pov
Updated the SSLT scene file:
~scenes/subsurface/subsurface.pov
Added these mesh_camera scene files:
~scenes/camera/mesh_camea/ess/ess-ortho-camera.pov
~scenes/camera/mesh_camea/ess/ess-persp-camera.pov
~scenes/camera/mesh_camea/ess/ortho-camera.pov
~scenes/camera/mesh_camea/ess/persp-camera.pov
Added a missing scene file:
~scenes/bsp/Tango.pov
Added a new tiling pattern scene file:
~scenes/textures/patterns/tiling.pov
Fixed two macros in ~includes/shapes.inc:
- HFCreate_ : output formatting
- Bevelled_Text : suppress "bound_by" warnings
Removed an obsolete directive that aborted the render:
~scenes/animations/raddem/raddem.ini
Removed obsolete comments (Library_Path limitation) from povray.ini
-----------------------------------
Changes between 3.7.RC2 and 3.7.RC3
-----------------------------------
This release candidate is primarily to correct a bug in media that was causing
crashes. It also improves a performance issue related to output file caching.
Output File Caching
-------------------
The efficiency of the code for caching output files on disk has been improved.
In addition, the point at which an output file is cached has been changed from
a compiled-in number of pixels to a user-defined number of megabytes.
When rendering an image that has output to file turned on, POV-Ray will cache
the image in two places: firstly, a .pov-state file, which is always on disk.
This is not technically an image file but a record of the communication
between the internal frontend and backend, which also contains the image pixels.
This file is only ever needed if you wish to re-start a render using the +c
option. It is deleted upon successful completion of a render.
The second place an image is cached is in an image buffer, which contains only
the image pixels. This buffer is what is used to create the final output image
once a render completes. The buffer is stored in a neutral format (i.e. not in
any way related to the selected output file type), and may either be in RAM or
on disk.
Storing it on disk reduces performance slightly since POV-Ray has to perform
disk access to write it during render, then to read it when converting to the
final output format.
Storing it in memory removes the above performance penalty, but may add a worse
one if you are rendering at a very high resolution and the size of the resulting
memory buffer causes parts of the parsed POV-Ray scene to be swapped to a page
file by the operating system. This can slow down a render by several orders of
magnitude, depending on the circumstance.
The point at which POV-Ray will change from an in-memory buffer to a disk buffer
is controlled by the new Max_Image_Buffer_Memory INI parameter (+IM if specified
via the command-line). If not supplied, POV-Ray will default to 128mb. If supplied,
the number represents the approximate number of megabytes (1,048,576 bytes) that
POV-Ray will allow the internal image buffer to occupy. If an image exceeds this
size, the image buffer will be placed in a temporary file on disk instead. Note
that this decision is made upon the start of the render - the buffer does not grow
during render, but is pre-allocated to the size required to hold all the pixels.
As a guide, you can expect POV-Ray to use 20 bytes per pixel to store the image
during render. Thus, the default 128mb size allows an image of up to about 6.7
million pixels to be stored in RAM (approximately 2600 x 2600 pixels).
You should definitely consider reducing this default if your system is memory-
constrained or you are rendering a scene that generates a particularly large
dataset.
The value supplied to Max_Image_Buffer_Memory should be an integer greater than 0,
and represents megabytes (not bytes). If 0 is supplied, POV-Ray will never use
file-backing for the image buffer.
The windows version of POV-Ray has a small memory monitor in the statusbar. It
updates several times per second with an estimation of the amount of memory being
used by the application. You can use this as a guide to determine the amount of
RAM in use.
---------------------------------------
Changes between 3.7.beta.41 and 3.7.RC2
---------------------------------------
-----------------------------------------
Fixed or mitigated the following reports:
-----------------------------------------
http://bugs.povray.org/task/185 FS#185 (wrong message about image resolution)
http://bugs.povray.org/task/186 FS#186 (sub-polygon end points)
http://bugs.povray.org/task/187 FS#187 (unix signal handling issue)
http://bugs.povray.org/task/188 FS#188 (no_reflection broken)
fixed crash found by crashdump #77 (platform base can be NULL before the image
class gets destroyed in the case of unusual shutdown).
fixed crash in editor where FormatMessage() fails (refer crashdump #76).
using "color srgb" (or similar) before assumed_gamma was defined resulted in
a hard crash; fixed by generating a proper parse error instead.
fixed memory leak.
------------
Misc Changes
------------
disable full memory allocation tracking on windows in favor of rougher
estimate based on samples of peak memory usage from windows API.
make windows status pane a bit wider and add process memory usage slot in
status bar.
go back to using the current version as the default language version and
modify the warning messages associated with a missing or late #version.
added updated windows help file.
added very basic support for running shell-outs on unix.
removed beta status, moving to RC. no more timeouts.
benchmark results on windows are now copied to the clipboard.
some photon fixes.
-----------
SDL Changes
-----------
Gamma Handling:
The assumed_gamma keyword is no longer deprecated; to the contrary, it is
now considered mandatory if a #version 3.7 or higher is specified, and its
absence will raise a "possible error" in this case, with a value of 1.0 being
presumed. (Note that #version, too, is now mandatory, and its absence will
raise a warning as well).
The assumed_gamma value is now presumed to denote the "working color
space", in which classic color literals are specified and color
computations to be performed. Note however that this will give unrealistic
results for any value other than 1.0.
Colors specified using "srgb" & co. will be converted from sRGB to the
working color space.
image_map input files for which definitive implicit or explicit gamma
information is available (either by file format specification like the HDRI
formats, header information like PNG with sRGB or gAMA chunk, or a user
override via the "gamma" keyword) will be converted to the working color
space. If no definitive information is available, the respective files will
be presumed to match assumed_gamma if #version is < 3.7 or unspecified, or
any official recommendation if #version >= 3.7 is specified.
height_field, bump_map and image_pattern input files will not be subject to
gamma-adjustment, unless the user explicitly specifies an override via the
"gamma" keyword; in that case, the file is presumed to match the gamma
value specified, and converted to linear values, irrespective of
assumed_gamma.
Concerning anti-aliasing, for the decision whether to anti-alias the color
values will be converted from the working color space to that specified by
the Assumed_Gamma INI setting; the averaging of the samples however will be
performed in the working color space.
For render preview, the generated image will be converted from the working
color space to that specified by the Display_Gamma setting. If
Display_Gamma is not specified, a platform-specific default will be
presumed.
For file output, the generated image will be converted from the working
color space to whatever the file format mandates (this applies to OpenEXR
and Radiance HDR); if no such mandatory color space exists, the image will
be converted into that specified by the File_Gamma setting. If File_Gamma
is not specified either, the image will be converted into whatever is
officially recommended for that file format, or the de-facto standard; if
even that doesn't exist, no gamma adjustment is performed. In any case, if
the file format provides a means to specify a gamma in the image header
(this applies to PNG), the respective data is set according to whatever
gamma the image is converted to, regardless of the working color space.
If assumed_gamma is not specified, and #version is set to pre-3.7 or
undefined, no gamma handling is performed at all.
In terms of backward compatibility, this translates as follows:
If assumed_gamma is not specified, and #version is set to pre-3.7 or
undefined, full compatibility with 3.6 and earlier is maintaned.
If assumed_gamma is specified and #version is set to pre-3.7 or undefined,
compatibility with 3.6 is subject to the following restrictions: (a) full
output file handling compatibility requires File_Gamma to be set to the
same value as Display_Gamma (or left undefined if Display_Gamma is
undefined), and (b) input file handling is not backward compatible in case
of PNG files.
If assumed_gamma is not specified and #version is set to 3.7 or higher,
compatibility with 3.6 or earlier is not maintained.
--------------------------------------------
Changes between 3.7.beta.40 and 3.7.beta.41
--------------------------------------------
-----------------------------------------
Fixed or mitigated the following reports:
-----------------------------------------
http://bugs.povray.org/task/179 FS#179 (unix version segfaults when $HOME not set)
http://bugs.povray.org/task/182 FS#182 (multi-textured blobs in intersections / differences broken)
------------
Misc Changes
------------
Raised max order of Poly object from 15 to 35.
Deprecated histogram output options.
Added new include file, "ior.inc", defining ior & dispersion constants for a
lot of materials.
Added new sample/test scene, "scenes/gamma/gamma_showcase.pov" (used in new
gamma section in the docs)
Several bug fixes for windows and generic core code.
-----------------
Dithering Support
-----------------
Add support for output file dithering; dithering is controlled by the INI
file settings "Dither=BOOL" and "Dither_Method=xx" as well as the command
line option "+/-THxx", where xx is one of:
"B2".."B4": Bayer pattern dithering using 2x2, 3x3 or 4x4 patterns, respectively
"D1": simple 1-dimensional error diffusion dithering
"D2": simple 2-dimensional error diffusion dithering (needs extra memory for 2 pixel rows)
"FS": Floyd-Steinberg error diffusion dithering (needs extra memory for 2 pixel rows)
The default is "-THfs", i.e. dithering is off, with Floyd-Steinberg being the
default if only "+TH" is specified.
Dithering works for all file formats except JPEG and OpenEXR (no intention to
implement) as well as Radiance HDR (non-straightforward to implement); these
file formats simply ignore the setting.
Added dithering to reder preview, using 4x4 Bayer dithering.
Display_Gamma now supports the "sRGB" option just as File_Gamma already did;
besides "sRGB", "srgb" and "SRGB", any combination of upper-/lowercase
letters is now recognized.
-----------