Skip to content

Commit

Permalink
Merge branch 'master' into autobuild/alpha_v380
Browse files Browse the repository at this point in the history
  • Loading branch information
c-lipka committed Oct 1, 2018
2 parents a58a8e6 + fa813f1 commit 1cdcb19
Show file tree
Hide file tree
Showing 67 changed files with 2,651 additions and 858 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
15 changes: 15 additions & 0 deletions changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ Changed Behaviour
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 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 @@ -83,6 +91,13 @@ New Features
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
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)
4 changes: 2 additions & 2 deletions source/backend/control/benchmark_ini.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/// @parblock
///
/// Persistence of Vision Ray Tracer ('POV-Ray') version 3.8.
/// Copyright 1991-2017 Persistence of Vision Raytracer Pty. Ltd.
/// Copyright 1991-2018 Persistence of Vision Raytracer Pty. Ltd.
///
/// POV-Ray is free software: you can redistribute it and/or modify
/// it under the terms of the GNU Affero General Public License as
Expand Down Expand Up @@ -37,7 +37,7 @@
/// @attention
/// **DO NOT EDIT THIS FILE!**
/// Instead, edit `distribution/scenes/advanced/benchmark/benchmark.ini`,
/// and re-generate this file as described in `tools/meta-make/readme.md`.
/// and re-generate this file as described in @ref tools-metamake (`tools/meta-make/readme.md`).

namespace pov {

Expand Down
4 changes: 2 additions & 2 deletions source/backend/control/benchmark_ini.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/// @parblock
///
/// Persistence of Vision Ray Tracer ('POV-Ray') version 3.8.
/// Copyright 1991-2017 Persistence of Vision Raytracer Pty. Ltd.
/// Copyright 1991-2018 Persistence of Vision Raytracer Pty. Ltd.
///
/// POV-Ray is free software: you can redistribute it and/or modify
/// it under the terms of the GNU Affero General Public License as
Expand Down Expand Up @@ -37,7 +37,7 @@
/// @attention
/// **DO NOT EDIT THIS FILE!**
/// Instead, edit `distribution/scenes/advanced/benchmark/benchmark.ini`,
/// and re-generate this file as described in `tools/meta-make/readme.md`.
/// and re-generate this file as described in @ref tools-metamake (`tools/meta-make/readme.md`).

namespace pov {

Expand Down
4 changes: 2 additions & 2 deletions source/backend/control/benchmark_pov.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/// @parblock
///
/// Persistence of Vision Ray Tracer ('POV-Ray') version 3.8.
/// Copyright 1991-2017 Persistence of Vision Raytracer Pty. Ltd.
/// Copyright 1991-2018 Persistence of Vision Raytracer Pty. Ltd.
///
/// POV-Ray is free software: you can redistribute it and/or modify
/// it under the terms of the GNU Affero General Public License as
Expand Down Expand Up @@ -37,7 +37,7 @@
/// @attention
/// **DO NOT EDIT THIS FILE!**
/// Instead, edit `distribution/scenes/advanced/benchmark/benchmark.pov`,
/// and re-generate this file as described in `tools/meta-make/readme.md`.
/// and re-generate this file as described in @ref tools-metamake (`tools/meta-make/readme.md`).

namespace pov {

Expand Down
4 changes: 2 additions & 2 deletions source/backend/control/benchmark_pov.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/// @parblock
///
/// Persistence of Vision Ray Tracer ('POV-Ray') version 3.8.
/// Copyright 1991-2017 Persistence of Vision Raytracer Pty. Ltd.
/// Copyright 1991-2018 Persistence of Vision Raytracer Pty. Ltd.
///
/// POV-Ray is free software: you can redistribute it and/or modify
/// it under the terms of the GNU Affero General Public License as
Expand Down Expand Up @@ -37,7 +37,7 @@
/// @attention
/// **DO NOT EDIT THIS FILE!**
/// Instead, edit `distribution/scenes/advanced/benchmark/benchmark.pov`,
/// and re-generate this file as described in `tools/meta-make/readme.md`.
/// and re-generate this file as described in @ref tools-metamake (`tools/meta-make/readme.md`).

namespace pov {

Expand Down
Loading

0 comments on commit 1cdcb19

Please sign in to comment.