forked from POV-Ray/povray
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes.txt
3163 lines (2438 loc) · 142 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
#----------------------------------------------------------------------------
# Note: To view an original flyspray bug report (FS#xxx), replace the leading
# FS# of the 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 (<[email protected]>), prefix
# the message ID with the URL http://news.povray.org/.
# For example, to read <[email protected]>, visit:
# http://news.povray.org/<[email protected]>.
# The '<' and '>' are optional (if using a shell you may want to omit them).
#----------------------------------------------------------------------------
----------------------------------------------------------------------------
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.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.beta.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.beta.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.beta.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.beta.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.
-----------
SDL Changes
-----------
Added new way to describe a polynomial equation (the old way is still valid):
polynomial { <order>, [xyz(<a>,<b>,<c>):<value>,]* [remaining as usual for poly]}
Default value for all coefficient is 0.0;
each xyz(): set the coefficient to <value> for x^a.y^b.z^c;
(constant is xyz(0,0,0)). Ordering of xyz is irrelevant (but identical index keep only the last one)
a sphere (radius 1... x^2 + y^2 + z^2 -1 =0)
polynomial{ 2, xyz(2,0,0):1, xyz(0,2,0):1, xyz(0,0,2):1, xyz(0,0,0):-1 }
Updated colour syntax for gamma pre-corrected colours; dropped the "gamma" keyword
there (it remains enabled for image input files) in favor of the following syntax:
colour srgb <Rp,Gp,Bp>
colour srgbt <Rp,Gp,Bp,T>
colour srgbf <Rp,Gp,Bp,F>
colour srgbft <Rp,Gp,Bp,F,T>
where Rp,Gp,Bp are colour component values pre-corrected for a display
conforming to the sRGB colour space, and F,T are linear colour component
values.
Implemented requirement for "#version 3.7" to be provided to obtain full v3.7
functionality. Prior to a #version statement appearing, the version defaults
to 3.62. Additionally, if the first #version appears after any other declaration,
or #version does not appear at all, a post-parse warning is issued.
Changed the mechanism to retrieve & format the current time from SDL; new
syntax is as follows:
- The keyword "now" evaluates to the time elapsed since 2000-01-01, 00:00:00
GMT in days, with a precision of seconds or better.
- The function "datetime(FLOAT [,STRING])" interprets the FLOAT as days
since 2001-01-01, 00:00:00 GMT, and the STRING as a formatting string (same
format and default as was previously taken by "now([STRING])").
Consequently, "datetime(now)" does what previously "now()" did, and
"datetime(now,STRING)" does what previously "now(STRING)" did.
Disabled #default { image_map { gamma ... } } statement.
--------------------------------------------
Changes between 3.7.beta.39 and 3.7.beta.40
--------------------------------------------
-----------------------------------------
Fixed or mitigated the following reports:
-----------------------------------------
http://bugs.povray.org/task/56 FS#56 (Crackle pattern memory allocation)
http://bugs.povray.org/task/64 FS#64 (Add "POV-Ray" metatags to images)
http://bugs.povray.org/task/80 FS#80 (Bad behavior for missing image file)
http://bugs.povray.org/task/105 FS#105 (Output options not displayed)
http://bugs.povray.org/task/134 FS#134 (INI option to add information to output images)
http://bugs.povray.org/task/154 FS#154 (Installation on linux set wrong owner)
http://bugs.povray.org/task/167 FS#167 (Core dump when rendering to huge dimensions)
http://bugs.povray.org/task/168 FS#168 (noise_generator default broken)
------------
New Features
------------
--------------------------
Pavement & Tiling patterns
--------------------------
Tiling # (#: 1 to 24) provide 24 classical tiling pattern with 1 or more kind
of tiles. The full map is used when rendering a tiling. All centers of tile
is at i/num, border at (i+1)/num) (for i from 0 to num-1). The gradient on
each tile is the same for every tiles on the same tiling. When more than one
kind of tile is used (#), the border are at 1/#, 2/#, ... #-1/#
Pavement: (using polymino paving the plane)
* number_of_sides (3,4,6) : the basic tile is a triangle, a square or an
hexagon
* number_of_tiles (1 to 5 or 6): the number of basic tiles to combine together
to make one real tile
* pattern (depend on side & tile) (1 to ...): how the basic are combined
together
* exterior (1 to 3, irrelevant for hexagon)
* interior (1 to 3)
* form (1 to 3, or 1 to 4 for square)
Variations on type of corner. 0 is plain, 1 is a straight cut, 2 is a curved cut.
All complet sets are covered.
------------------------------
Square and Triangular patterns
------------------------------
Added square & triangular pattern (2D, in xz plane, 4 & 6 area in shape of
squares and triangles)
--------------
Ovus Primitive
--------------
Added the ovus shape.
It's like a torus, but in egg shape ...
ovus { base_radius, top_radius }
(top_radius < 2.0*base_radius or else it's just a sphere).
----------------------
Fractal pattern update
----------------------
Experimental, add exterior type 7 & 8 for fractal pattern, using the number
of actual iteration to get out (=e) and the factor (=n). 7 gives back
mod(e,n)/n (covering 0 to n-1/n), while 8 covers 0 to 1 with mod(e,n+1)/n.
----------------------------
New windows priority setting
----------------------------
Add new option to set render priority to background (only available on Vista
or later).
--------------------
New animation option
--------------------
Added +STP / Frame_Step= animation option inspired from megapov with two
restrictions: only positive step value are supported (forward, no backward
rendering) and the value is not available in the SDL.
-----------------------------------
New render pattern and step options
-----------------------------------
Added new render_pattern (-RP<N>) option, where N may be:
0: Left to right, top to bottom (default).
1: Top to bottom, then left to right
2: Closing from left & right to center, top & bottom alternatively
to middle
3: Starting at center-middle, going left & right, then to top & bottom.
4: Closing top & bottom to middle, alternatively left & right to centre.
5: Opposite of -4 (starting at middle-center).
Added new render_block_step (-RS<N>), option.
The block step is used to work out what block to render next, as an offset
from the current block number (blocks are numbered from 0, which is the
top-left of the image). The block size is determined by the existing
render_block_size option, which defaults to 32x32 pixels. Blocks are
allocated to render threads in the order specified by the combination
of the render_pattern option and this option.
With N > 0, it's about 1 square every N (N might get reduced to allow clock
arithmetic to cover the whole picture). N must be pseudo-prime; at worst it
is shrunk to 1).
--------------
Image Metadata
--------------
Most image formats now include metadata (BMP is a notable exception). This
metadata contains the POV-Ray version, render date/time (GMT), platform
(e.g. x86_64-pc-win), and compiler used to build the POV-Ray executable.
----------------
SDL Improvements
----------------
Adding bitwise operation (bitwise_and(), bitwise_or(), bitwise_xor()),
similar to max(). Not limited to 2 parameters.
Add pre-declared variable "input_file_name", a token replaced by a string
which is the name of the input file of the scene.
Add new function now(), which can have a string parameter (but can also be
used without; the parenthesis are mandatory in either case). When provided
with a string, the value is used for formatting the time. Formatting
documentation is the one of strftime() C function. Without a parameter, the
format is "%Y-%m-%d %H:%M:%SZ". The time base is GMT.
-------------
Gamma Changes
-------------
Removed file_gamma keyword. Input image file default can now be set via
default { image_map { gamma FLOAT } }
or
default { image_map { gamma srgb } }
For backward compatibility with legacy scenes, POV-Ray 3.7 will now mimick
all the gamma handling of POV-Ray 3.6 if the scene has a #version statement
specifying a version of 3.6x or earlier, and/or specifies an assumed_gamma,
with the following exceptions:
* If the scene overrides the default input file gamma, POV-Ray will fall
back to the new gamma handling model.
* If the scene is rendered using the File_Gamma INI file setting, or using
an INI file setting or command-line option to specify a version of 3.7 or
later, input file gamma handling will still mimick 3.6 behaviour, but
output file gamma handling will use the new model.
* PNG input file handling is not fully backward compatible.
Due to architectural changes, bug fixes and improvements, backward
compatibility for PNG input files is subject to the following exceptions:
* For palette-based PNG files (an uncommon flavour of PNG), backward
compatibility is provided only if assumed_gamma is not specified. (This is
due to a POV-Ray 3.6 bug not mimicked by POV-Ray 3.7.)
* For non-palette-based PNG files, backward compatibility is provided only
if assumed_gamma is specified. (This is due to an architectural change that
makes this overly difficult to mimick.)
* For PNG files carrying both an sRGB chunk and a fitting gAMA chunk,
results will slightly differ. (This is due to POV-Ray 3.7 recognizing sRGB
chunks, which POV-Ray 3.6 did not do.)
* For PNG files carrying an sRGB chunk but no gAMA chunk (or a wrong one),
backward compatibility is not provided. (Again this is due to POV-Ray 3.7
recognizing sRGB chunks.)
------------------
Misc Fixes/Changes
------------------
Fixed divide-by-zero crash in editor support code (refer crash report #50).
Expand uses of FixedSimpleVector<64> to 127 elements to alleviate issues
with reports of 'out of memory' in some circumstances. This comes at the
cost of using more memory per recursion level, though. Also updated the
code to make sure hitting the internal limit of 127 elements is now clearly
reported as an internal limit rather than a memory limit.
Fixed bug causing interpolated image maps to be shifted by half a pixel, as
described in http://news.povray.org/[email protected]
Improved alpha premultiplication handling for pattern images
Updated support for file-backed RGBFT images to allow 64-bit seek offsets,
and added code to automatically switch to using file-backed intermediate
images when width >= 32 and pixel count >= 1024*1024. This will significantly
reduce memory usage for large renders, at the cost of more I/O overhead.
Fixed issue where a shutdown after a render that allocated a lot of memory
blocks (or any other case where the shutdown takes more than five seconds)
could throw an uncaught exception. This could then cause the 'terminated in
an unusual way' windows error message.
Revised Fractal fields in pattern structure to allow deeper iterations
(past 32767, now upto 2^32-1) for fractal patterns.
--------------------------------------------
Changes between 3.7.beta.38 and 3.7.beta.39
--------------------------------------------
----------
Bugs fixed
----------
http://bugs.povray.org/task/114 FS#114 (corrected 1 pixel error in mosaic preview)
http://bugs.povray.org/task/155 FS#155 (changed Output_File_Type to type "n")