Skip to content

Commit

Permalink
Merge branch 'refactor/tokenizer' into autobuild/tokenizer
Browse files Browse the repository at this point in the history
  • Loading branch information
c-lipka committed Nov 28, 2018
2 parents f0e1ba0 + 8e2d449 commit 86b87b7
Show file tree
Hide file tree
Showing 84 changed files with 3,278 additions and 1,202 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,13 @@ $RECYCLE.BIN/
# Files created by make in various subdirectories
.dirstamp

# ===========================
# POV-Ray meta-build detritus
# ===========================

# Byte-compiled python modules
*.pyc

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

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

Performance Improvements
------------------------
Expand Down
Binary file modified distribution/platform-specific/windows/Help/povray.chm
Binary file not shown.
118 changes: 118 additions & 0 deletions distribution/scenes/output/dither_showcase.pov
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
// POV-Ray 3.8 Scene File "dither_showcase.pov"
// author: Christoph Lipka
// date: 2018-09-30
//
//--------------------------------------------------------------------------
#version 3.8;

#ifndef (Glow)
#declare Glow = on;
#end
#ifndef (Brightness)
#declare Brightness = 4.0;
#end

global_settings {
max_trace_level 5
assumed_gamma 1.0
radiosity {
pretrace_start 0.08
pretrace_end 0.01
count 150
nearest_count 20
error_bound 0.5
recursion_limit 2
low_error_factor .5
gray_threshold 0.0
minimum_reuse 0.015
brightness 1
adc_bailout 0.01/2
}
}

#default {
texture {
pigment {rgb 1}
finish {
ambient 0.0
diffuse 0.8
specular albedo 1.0 roughness 0.001
reflection { 1.0 fresnel on }
conserve_energy
fresnel on
}
}
}

// ----------------------------------------

#local TestRed = <1.0,.03,.03>;
#local TestGreen = <.03,1.0,.03>;
#local TestBlue = <.03,.03,1.0>;

#local CameraFocus = <0,1,1>;
#local CameraDist = 8;
#local CameraDepth = 3.0;
#local CameraTilt = 5;

camera {
location <0,0,0>
direction z*CameraDepth
right x*image_width/image_height
up y
translate <0,0,-CameraDist>
rotate x*CameraTilt
translate CameraFocus
}

#macro LightSource(Pos,Color)
light_source {
Pos
color Color
area_light x*vlength(Pos)/10, y*vlength(Pos)/10, 9,9 adaptive 1 jitter circular orient
}

#end

LightSource(<-500,500,-500>, rgb Brightness)

// ----------------------------------------

plane {
y, 0
texture { pigment { color rgb 0.2 } }
interior { ior 1.5 }
}

#macro TestSphere(Pos,Radius,TargetColor,Hole)
#if (Hole)
union {
#local Th = 20;
#local R = 0.05;
#local SinTh = sin(Th*pi/180);
#local CosTh = cos(Th*pi/180);
difference {
sphere { <0,0,0>, 1 }
cylinder { y, y*(1-R)*CosTh, SinTh }
cylinder {-y,-y*(1-R)*CosTh, SinTh }
cylinder { y,-y,(1-R)*SinTh-R }
}
torus { (1-R)*SinTh, R translate y*(1-R)*CosTh }
torus { (1-R)*SinTh, R translate -y*(1-R)*CosTh }
#else
sphere { <0,0,0>, 1
#end
texture { pigment { color TargetColor }
finish { emission Glow * Brightness * 0.5 }
}
interior { ior 1.5 }
rotate z*30
rotate y*clock*360 - y*45
scale Radius
translate Pos + y*Radius
}
#end

TestSphere(<-2,0,1>, 1, TestRed, false)
TestSphere(< 0,0,1>, 1, TestBlue, true)
TestSphere(< 2,0,1>, 1, TestGreen, false)
28 changes: 23 additions & 5 deletions doc/html/r3_0.html
Original file line number Diff line number Diff line change
Expand Up @@ -289,19 +289,37 @@
<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>
</tr>
<tr>
<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>
<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>
</tr>
<tr>
<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>
<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>
</tr>
<tr>
<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>
<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>
</tr>
<tr>
<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>
<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>
</tr>
<tr>
<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>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
Expand Down
Loading

0 comments on commit 86b87b7

Please sign in to comment.