Skip to content

Commit 86b87b7

Browse files
committed
Merge branch 'refactor/tokenizer' into autobuild/tokenizer
2 parents f0e1ba0 + 8e2d449 commit 86b87b7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+3278
-1202
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,13 @@ $RECYCLE.BIN/
222222
# Files created by make in various subdirectories
223223
.dirstamp
224224

225+
# ===========================
226+
# POV-Ray meta-build detritus
227+
# ===========================
228+
229+
# Byte-compiled python modules
230+
*.pyc
231+
225232
# =====================
226233
# POV-Ray Miscellaneous
227234
# =====================

changes.txt

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,15 @@ Changed Behaviour
4343
- Any new behaviour formerly activated by `#version 3.71` now requires
4444
`#version 3.8` (or higher); specifying `#version 3.71` will trigger a
4545
corresponding warning.
46-
- Some defaults have been changed (requires `#version 3.8` as the _very first_
47-
statement of the scene, or a corresponding command line / INI setting):
46+
- Some defaults have been changed (requires `#version 3.8` or a corresponding
47+
command line / INI setting):
4848
- The pigment now defaults to plain white.
4949
- `ambient` now defaults to 0.0 instead of 0.1.
5050
- The camera `right` vector length now defaults to the output image aspect
5151
ratio (presuming square pixels) instead of 1.33.
52+
Switching back and forth between defaults via `#version` is possible until
53+
the first `default` statement is encountered; after that, `#version` will
54+
cause a warning instead of changing defaults.
5255
- Minor changes have been made to the benchmark scene. New benchmark version
5356
is 2.03.
5457
- Token counting in conditional blocks (e.g. in `#if ... #end`) has changed.
@@ -58,9 +61,22 @@ Changed Behaviour
5861
for now, due to their orientation being poorly defined.
5962
- An age-old bug in the inbuilt `f_enneper` isosurface function has been
6063
fixed; the function now results in the originally intended shape.
64+
- Contrary to earlier claims and intentions, v3.7.1-beta.1 failed to lift the
65+
requirement that array elements must be of the same type. It has been
66+
decided to not fix the change to work as originally intended, and instead
67+
only allow type mixing if the array has explicitly been declared as
68+
`mixed`. See the documentation for details.
6169
- The `defined()` pseudo-function now returns `true` (while printing a
6270
warning) if applied to reserved words. The `#ifdef` and `#ifndef` directives
6371
also behave accordingly.
72+
- The dithering implementation has been modified, and may produce slightly
73+
different results for otherwise identical scenes.
74+
- The PGM (greyscale variant of PPM) output gamma handling now matches that
75+
of regular PPM, honoring `File_Gamma` defaulting to ITU-R BT.709. To get
76+
linear greyscale output, explicitly specify `File_Gamma=1.0`.
77+
- Greyscale output no longer automatically forces bit depth to 16 bpc. To get
78+
16 bpp greyscale output, explicitly specify `Bits_Per_Color=16`.
79+
- Preview now reflects greyscale setting.
6480

6581
New Features
6682
------------
@@ -74,6 +90,17 @@ New Features
7490
reduce image noise from stochastic mechanisms (e.g. jittered area lights,
7591
subsurface light transport or micronormals). The mathematical background
7692
and parameterization is similar to that of adaptive focal blur.
93+
- The `bicubic_patch` primitive now allows for a trailing comma at the end of
94+
the list of control points.
95+
- The `matrix` syntax now allows allows for a trailing comma at the end of
96+
the list of coefficients.
97+
- File formats supporting variable bit depths (PNG and PPM/PGM) now allow for
98+
bit depths as low as 1 bit per colour channel. (1-bit greyscale PPM/PGM will
99+
still be written as PGM, not PBM.)
100+
- Command-line option `+F` now allows specifying both the `G` greyscale flag
101+
and the bit depth.
102+
- Support for blue noise dithering has been added, plus a couple more error
103+
diffusion dithering filters.
77104

78105
Performance Improvements
79106
------------------------
8.92 KB
Binary file not shown.
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
// POV-Ray 3.8 Scene File "dither_showcase.pov"
2+
// author: Christoph Lipka
3+
// date: 2018-09-30
4+
//
5+
//--------------------------------------------------------------------------
6+
#version 3.8;
7+
8+
#ifndef (Glow)
9+
#declare Glow = on;
10+
#end
11+
#ifndef (Brightness)
12+
#declare Brightness = 4.0;
13+
#end
14+
15+
global_settings {
16+
max_trace_level 5
17+
assumed_gamma 1.0
18+
radiosity {
19+
pretrace_start 0.08
20+
pretrace_end 0.01
21+
count 150
22+
nearest_count 20
23+
error_bound 0.5
24+
recursion_limit 2
25+
low_error_factor .5
26+
gray_threshold 0.0
27+
minimum_reuse 0.015
28+
brightness 1
29+
adc_bailout 0.01/2
30+
}
31+
}
32+
33+
#default {
34+
texture {
35+
pigment {rgb 1}
36+
finish {
37+
ambient 0.0
38+
diffuse 0.8
39+
specular albedo 1.0 roughness 0.001
40+
reflection { 1.0 fresnel on }
41+
conserve_energy
42+
fresnel on
43+
}
44+
}
45+
}
46+
47+
// ----------------------------------------
48+
49+
#local TestRed = <1.0,.03,.03>;
50+
#local TestGreen = <.03,1.0,.03>;
51+
#local TestBlue = <.03,.03,1.0>;
52+
53+
#local CameraFocus = <0,1,1>;
54+
#local CameraDist = 8;
55+
#local CameraDepth = 3.0;
56+
#local CameraTilt = 5;
57+
58+
camera {
59+
location <0,0,0>
60+
direction z*CameraDepth
61+
right x*image_width/image_height
62+
up y
63+
translate <0,0,-CameraDist>
64+
rotate x*CameraTilt
65+
translate CameraFocus
66+
}
67+
68+
#macro LightSource(Pos,Color)
69+
light_source {
70+
Pos
71+
color Color
72+
area_light x*vlength(Pos)/10, y*vlength(Pos)/10, 9,9 adaptive 1 jitter circular orient
73+
}
74+
75+
#end
76+
77+
LightSource(<-500,500,-500>, rgb Brightness)
78+
79+
// ----------------------------------------
80+
81+
plane {
82+
y, 0
83+
texture { pigment { color rgb 0.2 } }
84+
interior { ior 1.5 }
85+
}
86+
87+
#macro TestSphere(Pos,Radius,TargetColor,Hole)
88+
#if (Hole)
89+
union {
90+
#local Th = 20;
91+
#local R = 0.05;
92+
#local SinTh = sin(Th*pi/180);
93+
#local CosTh = cos(Th*pi/180);
94+
difference {
95+
sphere { <0,0,0>, 1 }
96+
cylinder { y, y*(1-R)*CosTh, SinTh }
97+
cylinder {-y,-y*(1-R)*CosTh, SinTh }
98+
cylinder { y,-y,(1-R)*SinTh-R }
99+
}
100+
torus { (1-R)*SinTh, R translate y*(1-R)*CosTh }
101+
torus { (1-R)*SinTh, R translate -y*(1-R)*CosTh }
102+
#else
103+
sphere { <0,0,0>, 1
104+
#end
105+
texture { pigment { color TargetColor }
106+
finish { emission Glow * Brightness * 0.5 }
107+
}
108+
interior { ior 1.5 }
109+
rotate z*30
110+
rotate y*clock*360 - y*45
111+
scale Radius
112+
translate Pos + y*Radius
113+
}
114+
#end
115+
116+
TestSphere(<-2,0,1>, 1, TestRed, false)
117+
TestSphere(< 0,0,1>, 1, TestBlue, true)
118+
TestSphere(< 2,0,1>, 1, TestGreen, false)

doc/html/r3_0.html

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -289,19 +289,37 @@
289289
<td><div class="divh3"><a name="r3_2_8_6"></a><a title="3.2.8.6" href="r3_2.html#r3_2_8_6">BSP Bounding</a></div></td>
290290
</tr>
291291
<tr>
292-
<td><div class="divh3"><a name="r3_2_8_7"></a><a title="3.2.8.7" href="r3_2.html#r3_2_8_7">Anti-Aliasing Options</a></div></td>
292+
<td><div class="divh3"><a name="r3_2_8_7"></a><a title="3.2.8.7" href="r3_2.html#r3_2_8_7">Stochastic Seed</a></div></td>
293293
</tr>
294294
<tr>
295-
<td><div class="divh3"><a name="r3_2_8_8"></a><a title="3.2.8.8" href="r3_2.html#r3_2_8_8">Radiosity Options</a></div></td>
295+
<td><div class="divh3"><a name="r3_2_8_8"></a><a title="3.2.8.8" href="r3_2.html#r3_2_8_8">Anti-Aliasing Options</a></div></td>
296296
</tr>
297297
<tr>
298-
<td><div class="divh4"><a name="r3_2_8_8_1"></a><a title="3.2.8.8.1" href="r3_2.html#r3_2_8_8_1">Radiosity High Reproducibility</a></div></td>
298+
<td><div class="divh4"><a name="r3_2_8_8_1"></a><a title="3.2.8.8.1" href="r3_2.html#r3_2_8_8_1">Sampling Methods Synopsis</a></div></td>
299299
</tr>
300300
<tr>
301-
<td><div class="divh4"><a name="r3_2_8_8_2"></a><a title="3.2.8.8.2" href="r3_2.html#r3_2_8_8_2">Radiosity Load and Save</a></div></td>
301+
<td><div class="divh4"><a name="r3_2_8_8_2"></a><a title="3.2.8.8.2" href="r3_2.html#r3_2_8_8_2">Sampling Method 1</a></div></td>
302302
</tr>
303303
<tr>
304-
<td><div class="divh4"><a name="r3_2_8_8_3"></a><a title="3.2.8.8.3" href="r3_2.html#r3_2_8_8_3">Radiosity Vain Pretrace</a></div></td>
304+
<td><div class="divh4"><a name="r3_2_8_8_3"></a><a title="3.2.8.8.3" href="r3_2.html#r3_2_8_8_3">Sampling Method 2</a></div></td>
305+
</tr>
306+
<tr>
307+
<td><div class="divh4"><a name="r3_2_8_8_4"></a><a title="3.2.8.8.4" href="r3_2.html#r3_2_8_8_4">Sampling Method 3</a></div></td>
308+
</tr>
309+
<tr>
310+
<td><div class="divh4"><a name="r3_2_8_8_5"></a><a title="3.2.8.8.5" href="r3_2.html#r3_2_8_8_5">Common Properties</a></div></td>
311+
</tr>
312+
<tr>
313+
<td><div class="divh3"><a name="r3_2_8_9"></a><a title="3.2.8.9" href="r3_2.html#r3_2_8_9">Radiosity Options</a></div></td>
314+
</tr>
315+
<tr>
316+
<td><div class="divh4"><a name="r3_2_8_9_1"></a><a title="3.2.8.9.1" href="r3_2.html#r3_2_8_9_1">Radiosity High Reproducibility</a></div></td>
317+
</tr>
318+
<tr>
319+
<td><div class="divh4"><a name="r3_2_8_9_2"></a><a title="3.2.8.9.2" href="r3_2.html#r3_2_8_9_2">Radiosity Load and Save</a></div></td>
320+
</tr>
321+
<tr>
322+
<td><div class="divh4"><a name="r3_2_8_9_3"></a><a title="3.2.8.9.3" href="r3_2.html#r3_2_8_9_3">Radiosity Vain Pretrace</a></div></td>
305323
</tr>
306324
<tr>
307325
<td class="ContentsHeading"><div class="divh1"><a name="r3_3"></a><a title="3.3" href="r3_3.html#r3_3">Scene Description Language</a></div></td>

0 commit comments

Comments
 (0)