diff --git a/Effects/display.eff b/Effects/display.eff
index a5624dcf4..3aaa20cc6 100644
--- a/Effects/display.eff
+++ b/Effects/display.eff
@@ -13,6 +13,13 @@
repeat
normalized
+
+ Textures\film-dirt.png
+ linear-mipmap-linear
+ repeat
+ repeat
+ normalized
+
@@ -22,6 +29,11 @@
+
+
+
+
+
@@ -34,103 +46,6 @@
-
-
-
- /sim/rendering/rembrandt/cinema/vignette
- /sim/rendering/rembrandt/cinema/color-shift
-
-
- 0.0
- /sim/rendering/rembrandt/show-buffers
-
-
-
-
-
- 99999
- RenderBin
-
-
- 0
- buffer
- lighting
-
-
- 1
- buffer
- bloom-3
-
-
-
- Shaders/fullscreen.vert
- Shaders/cinema.frag
-
-
- lighting_tex
- sampler-2d
- 0
-
-
- bloom_tex
- sampler-2d
- 1
-
-
-
- bloomEnabled
- bool
-
-
-
- bloomStrength
- float
-
-
-
- bloomBuffers
- bool
-
-
-
-
- vignette
- bool
-
-
-
- innerCircle
- float
-
-
-
- outerCircle
- float
-
-
-
- colorShift
- bool
-
-
-
- redShift
- float-vec3
-
-
-
- greenShift
- float-vec3
-
-
-
- blueShift
- float-vec3
-
-
-
-
-
/sim/rendering/rembrandt/night-vision
@@ -221,6 +136,145 @@
+
+
+
+
+ /sim/rendering/rembrandt/cinema/vignette
+ /sim/rendering/rembrandt/cinema/color-shift
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+ 0.0
+ /sim/rendering/rembrandt/show-buffers
+
+
+
+
+
+ 99999
+ RenderBin
+
+
+ 0
+ buffer
+ lighting
+
+
+ 1
+ buffer
+ bloom-3
+
+
+ 2
+
+
+
+
+
+
+
+
+ Shaders/fullscreen.vert
+ Shaders/cinema.frag
+
+
+ lighting_tex
+ sampler-2d
+ 0
+
+
+ bloom_tex
+ sampler-2d
+ 1
+
+
+ film_tex
+ sampler-2d
+ 2
+
+
+
+ bloomEnabled
+ bool
+
+
+
+ bloomStrength
+ float
+
+
+
+ bloomBuffers
+ bool
+
+
+
+
+ vignette
+ bool
+
+
+
+ innerCircle
+ float
+
+
+
+ outerCircle
+ float
+
+
+
+ colorShift
+ bool
+
+
+
+ redShift
+ float-vec3
+
+
+
+ greenShift
+ float-vec3
+
+
+
+ blueShift
+ float-vec3
+
+
+
+
+ distortion
+ bool
+
+
+
+ distortionFactor
+ float-vec3
+
+
+
+
+ colorFringe
+ bool
+
+
+
+ colorFringeFactor
+ float
+
+
+
+
+ filmWear
+ bool
+
+
+
+
diff --git a/Effects/ssao.eff b/Effects/ssao.eff
index e25373a2e..31b36f44e 100644
--- a/Effects/ssao.eff
+++ b/Effects/ssao.eff
@@ -8,24 +8,7 @@
0.03
800.0
-
-
-
-
-
- 2.0
-
-
-
- GL_ARB_shader_objects
- GL_ARB_shading_language_100
- GL_ARB_vertex_shader
- GL_ARB_fragment_shader
-
-
- GL_EXT_gpu_shader4
-
-
+
0
@@ -98,77 +81,4 @@
-
-
-
- 0
- buffer
- depth
-
-
- 1
- buffer
- normal
-
-
- 2
- buffer
- spec-emis
-
-
- 3
- noise
-
-
- Shaders/ssao.vert
- Shaders/ssao-ati.frag
- Shaders/gbuffer-functions.frag
-
-
- depth_tex
- sampler-2d
- 0
-
-
- normal_tex
- sampler-2d
- 1
-
-
- spec_emis_tex
- sampler-2d
- 2
-
-
- noise_tex
- sampler-2d
- 3
-
-
- g_scale
- float
-
-
-
- g_bias
- float
-
-
-
- g_intensity
- float
-
-
-
- g_sample_rad
- float
-
-
-
- random_size
- float
-
-
-
-
diff --git a/Nasal/canvas/api.nas b/Nasal/canvas/api.nas
index c6afbf777..2087254c6 100644
--- a/Nasal/canvas/api.nas
+++ b/Nasal/canvas/api.nas
@@ -701,12 +701,34 @@ var Path = {
}
};
+# Image
+# ==============================================================================
+# Class for an image element on a canvas
+#
+var Image = {
+ new: func(parent, id)
+ {
+ var m = {
+ parents: [Image, Element.new(parent, "image", id, arg)]
+ };
+ m.color = _createColorNodes(m._node, "color");
+ m.sourceRect = m._node.getNode("source", 1);
+ return m;
+ },
+
+ setFile: func(file)
+ {
+ me.set("file", file);
+ }
+};
+
# Element factories used by #Group elements to create children
Group._element_factories = {
"group": Group.new,
"map": Map.new,
"text": Text.new,
- "path": Path.new
+ "path": Path.new,
+ "image": Image.new
};
# Canvas
diff --git a/Shaders/cinema.frag b/Shaders/cinema.frag
index 1352e4215..d3033f078 100644
--- a/Shaders/cinema.frag
+++ b/Shaders/cinema.frag
@@ -1,5 +1,6 @@
uniform sampler2D lighting_tex;
uniform sampler2D bloom_tex;
+uniform sampler2D film_tex;
uniform bool colorShift;
uniform vec3 redShift;
@@ -10,8 +11,16 @@ uniform bool vignette;
uniform float innerCircle;
uniform float outerCircle;
+uniform bool distortion;
+uniform vec3 distortionFactor;
+
+uniform bool colorFringe;
+uniform float colorFringeFactor;
+
+uniform bool filmWear;
+
uniform vec2 fg_BufferSize;
-// uniform float osg_SimulationTime;
+uniform float osg_SimulationTime;
// uniform float shutterFreq;
// uniform float shutterDuration;
@@ -20,28 +29,66 @@ uniform float bloomStrength;
uniform bool bloomBuffers;
void main() {
- vec2 coords = gl_TexCoord[0].xy;
- vec4 color = texture2D( lighting_tex, coords );
+ vec2 c1 = gl_TexCoord[0].xy;
+ vec2 initialCoords = c1;
+ vec2 c2;
+
+ if (distortion) {
+ c1 = 2.0 * initialCoords - vec2(1.,1.);
+ c1 *= vec2( 1.0, fg_BufferSize.y / fg_BufferSize.x );
+ float r = length(c1);
+
+ c1 += c1 * dot(distortionFactor.xy, vec2(r*r, r*r*r*r));
+ c1 /= distortionFactor.z;
+
+ c1 *= vec2( 1.0, fg_BufferSize.x / fg_BufferSize.y );
+ c1 = c1 * .5 + .5;
+
+ if (colorFringe) {
+ c2 = 2.0 * initialCoords - vec2(1.,1.);
+ c2 *= vec2( 1.0, fg_BufferSize.y / fg_BufferSize.x );
+ r = length(c2);
+
+ c2 += c2 * dot(distortionFactor.xy*colorFringeFactor, vec2(r*r, r*r*r*r));
+ c2 /= distortionFactor.z;
+
+ c2 *= vec2( 1.0, fg_BufferSize.x / fg_BufferSize.y );
+ c2 = c2 * .5 + .5;
+ }
+ }
+
+ vec3 dirt = vec3(1.0);
+ if (filmWear) {
+ dirt = texture2D(film_tex, initialCoords*vec2( 1.0, fg_BufferSize.y / fg_BufferSize.x ) + vec2(0.0, osg_SimulationTime * 7.7)).rgb;
+ }
+
+ vec4 color = texture2D( lighting_tex, c1 );
if (bloomEnabled && bloomBuffers)
- color = color + bloomStrength * texture2D( bloom_tex, coords );
+ color += bloomStrength * texture2D( bloom_tex, c1 );
+
+ if (distortion && colorFringe) {
+ color.g = texture2D( lighting_tex, c2 ).g;
+ if (bloomEnabled && bloomBuffers)
+ color.g += bloomStrength * texture2D( bloom_tex, c2 ).g;
+ }
if (colorShift) {
- vec3 c2;
- c2.r = dot(color, redShift);
- c2.g = dot(color, greenShift);
- c2.b = dot(color, blueShift);
- color.rgb = c2;
+ vec3 col2;
+ col2.r = dot(color.rgb, redShift);
+ col2.g = dot(color.rgb, greenShift);
+ col2.b = dot(color.rgb, blueShift);
+ color.rgb = col2;
}
if (vignette) {
- vec2 c = 2.0 * coords - vec2(1.,1.);
+ vec2 c = 2.0 * initialCoords - vec2(1.,1.);
c = c * vec2( 1.0, fg_BufferSize.y / fg_BufferSize.x );
float l = length(c);
float f = smoothstep( innerCircle, innerCircle * outerCircle, l );
- color.rgb = (1 - f) * color.rgb;
+ color.rgb = (1.0 - f) * color.rgb;
}
// if ((osg_FrameNumber % 6) == 0)
// f = 1.0;
- gl_FragColor = color;
+ gl_FragColor = color * vec4(dirt, 1.0);
}
diff --git a/Shaders/ssao-ati.frag b/Shaders/ssao-ati.frag
deleted file mode 100644
index aef4f286b..000000000
--- a/Shaders/ssao-ati.frag
+++ /dev/null
@@ -1,63 +0,0 @@
-#version 120
-uniform sampler2D normal_tex;
-uniform sampler2D depth_tex;
-uniform sampler2D spec_emis_tex;
-uniform sampler3D noise_tex;
-uniform vec2 fg_BufferSize;
-uniform vec3 fg_Planes;
-uniform vec4 fg_du;
-uniform vec4 fg_dv;
-uniform float g_scale;
-uniform float g_bias;
-uniform float g_intensity;
-uniform float g_sample_rad;
-uniform float random_size;
-uniform int osg_FrameNumber;
-
-varying vec4 ray;
-
-const vec2 v[4] = vec2[](vec2(1.0,0.0),vec2(-1.0,0.0),vec2(0.0,1.0),vec2(0.0,-1.0));
-
-vec3 position( vec3 viewDir, vec2 coords, sampler2D depth_tex );
-vec3 normal_decode(vec2 enc);
-
-vec2 getRandom( in vec2 uv ) {
- int level = osg_FrameNumber - ((osg_FrameNumber / 64) * 64);
- return normalize( texture3D( noise_tex, vec3(uv*50.0, float(level) / 64.0) ).xy * 0.14 - 0.07 );
-}
-vec3 getPosition(in vec2 uv, in vec2 uv0, in vec4 ray0) {
- vec2 duv = uv - uv0;
- vec4 ray = ray0 + fg_du * duv.x + fg_dv * duv.y;
- vec3 viewDir = normalize( ray.xyz );
- return position(viewDir, uv, depth_tex);
-}
-float doAmbientOcclusion(in vec2 tcoord, in vec2 uv, in vec3 p, in vec3 cnorm, in vec4 ray) {
- vec3 diff = getPosition(tcoord+uv,tcoord,ray)-p;
- float d = length(diff);
- vec3 v = diff / d;
- d *= g_scale;
- return max(0.0, dot( cnorm,v ) - g_bias) * (1.0/(1.0+d)) * g_intensity;
-}
-void main() {
- vec2 coords = gl_TexCoord[0].xy;
- float initialized = texture2D( spec_emis_tex, coords ).a;
- if ( initialized < 0.1 )
- discard;
- vec3 normal = normal_decode(texture2D( normal_tex, coords ).rg);
- vec3 viewDir = normalize(ray.xyz);
- vec3 pos = position(viewDir, coords, depth_tex);
- vec2 rand = getRandom(coords);
- float ao = 0.0;
- float rad = g_sample_rad;
- int iterations = 4;
- for (int j = 0; j < 1; ++j ) {
- vec2 coord1 = reflect( v[j], rand ) * rad;
- vec2 coord2 = vec2( coord1.x*0.707 - coord1.y*0.707, coord1.x*0.707 + coord1.y*0.707 );
- ao += doAmbientOcclusion(coords,coord1*0.25,pos,normal,ray);
- ao += doAmbientOcclusion(coords,coord2*0.5,pos,normal,ray);
- ao += doAmbientOcclusion(coords,coord1*0.75,pos,normal,ray);
- ao += doAmbientOcclusion(coords,coord2,pos,normal,ray);
- }
- ao /= 16.0;
- gl_FragColor = vec4( vec3(1.0 - ao), 1.0 );
-}
diff --git a/Shaders/ssao.frag b/Shaders/ssao.frag
index 6cbe1b1d7..de29876e0 100644
--- a/Shaders/ssao.frag
+++ b/Shaders/ssao.frag
@@ -13,7 +13,7 @@ uniform float g_bias;
uniform float g_intensity;
uniform float g_sample_rad;
uniform float random_size;
-uniform unsigned int osg_FrameNumber;
+uniform float osg_SimulationTime;
varying vec4 ray;
@@ -23,8 +23,8 @@ vec3 position( vec3 viewDir, vec2 coords, sampler2D depth_tex );
vec3 normal_decode(vec2 enc);
vec2 getRandom( in vec2 uv ) {
- unsigned int level = osg_FrameNumber - ((osg_FrameNumber / 64U) * 64U);
- return normalize( texture3D( noise_tex, vec3(uv*50.0, float(level) / 64.0) ).xy * 0.14 - 0.07 );
+ float level = osg_SimulationTime - float(int(osg_SimulationTime));
+ return normalize( texture3D( noise_tex, vec3(uv*50.0, level) ).xy * 0.14 - 0.07 );
}
vec3 getPosition(in vec2 uv, in vec2 uv0, in vec4 ray0) {
vec2 duv = uv - uv0;
diff --git a/Textures/film-dirt.png b/Textures/film-dirt.png
new file mode 100644
index 000000000..06e28cb3f
Binary files /dev/null and b/Textures/film-dirt.png differ
diff --git a/gui/dialogs/rembrandt.xml b/gui/dialogs/rembrandt.xml
index 2ea93a121..79b7d0135 100644
--- a/gui/dialogs/rembrandt.xml
+++ b/gui/dialogs/rembrandt.xml
@@ -195,7 +195,7 @@
-
+
hbox
right
@@ -234,7 +234,7 @@
222
-
+
hbox
right
@@ -376,6 +376,24 @@
+
+ hbox
+ left
+
+
+ left
+
+ night-vision
+ /sim/rendering/rembrandt/night-vision
+
+ dialog-apply
+ night-vision
+
+
+
+
+
+
hbox
left
@@ -389,6 +407,9 @@
dialog-apply
vignette
+
+ /sim/rendering/rembrandt/night-vision
+
34
@@ -396,7 +417,10 @@
- /sim/rendering/rembrandt/cinema/vignette
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/vignette
+
@@ -410,7 +434,10 @@
inner-circle
- /sim/rendering/rembrandt/cinema/vignette
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/vignette
+
@@ -419,7 +446,10 @@
true
/sim/rendering/rembrandt/cinema/inner-circle
- /sim/rendering/rembrandt/cinema/vignette
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/vignette
+
@@ -431,7 +461,10 @@
- /sim/rendering/rembrandt/cinema/vignette
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/vignette
+
@@ -445,7 +478,10 @@
outer-circle
- /sim/rendering/rembrandt/cinema/vignette
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/vignette
+
@@ -454,7 +490,10 @@
true
/sim/rendering/rembrandt/cinema/outer-circle
- /sim/rendering/rembrandt/cinema/vignette
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/vignette
+
@@ -462,8 +501,6 @@
-
-
hbox
left
@@ -477,6 +514,9 @@
dialog-apply
color-shift
+
+ /sim/rendering/rembrandt/night-vision
+
37
@@ -484,7 +524,10 @@
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -498,7 +541,10 @@
red-shift-r
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -507,7 +553,10 @@
true
/sim/rendering/rembrandt/cinema/red-shift/x
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -521,7 +570,10 @@
red-shift-g
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -530,7 +582,10 @@
true
/sim/rendering/rembrandt/cinema/red-shift/y
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -544,7 +599,10 @@
red-shift-b
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -553,7 +611,10 @@
true
/sim/rendering/rembrandt/cinema/red-shift/z
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -565,7 +626,10 @@
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -579,7 +643,10 @@
green-shift-r
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -588,7 +655,10 @@
true
/sim/rendering/rembrandt/cinema/green-shift/x
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -602,7 +672,10 @@
green-shift-g
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -611,7 +684,10 @@
true
/sim/rendering/rembrandt/cinema/green-shift/y
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -625,7 +701,10 @@
green-shift-b
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -634,7 +713,10 @@
true
/sim/rendering/rembrandt/cinema/green-shift/z
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -646,7 +728,10 @@
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -660,7 +745,10 @@
blue-shift-r
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -669,7 +757,10 @@
true
/sim/rendering/rembrandt/cinema/blue-shift/x
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -683,7 +774,10 @@
blue-shift-g
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -692,7 +786,10 @@
true
/sim/rendering/rembrandt/cinema/blue-shift/y
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -706,7 +803,10 @@
blue-shift-b
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
@@ -715,33 +815,219 @@
true
/sim/rendering/rembrandt/cinema/blue-shift/z
- /sim/rendering/rembrandt/cinema/color-shift
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/color-shift
+
-
-
hbox
left
left
-
- night-vision
- /sim/rendering/rembrandt/night-vision
+
+ distortion
+ /sim/rendering/rembrandt/cinema/distortion
dialog-apply
- night-vision
+ distortion
-
+ /sim/rendering/rembrandt/night-vision
+
+
+
+ 48
+
+
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+ distortion-factor-x
+ -0.5
+ 0.5
+ 0.01
+ /sim/rendering/rembrandt/cinema/distortion-factor/x
+
+ dialog-apply
+ distortion-factor-x
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+
+ %.2f
+ true
+ /sim/rendering/rembrandt/cinema/distortion-factor/x
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+ distortion-factor-y
+ -0.5
+ 0.5
+ 0.01
+ /sim/rendering/rembrandt/cinema/distortion-factor/y
+
+ dialog-apply
+ distortion-factor-y
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+
+ %.2f
+ true
+ /sim/rendering/rembrandt/cinema/distortion-factor/y
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+ distortion-factor-z
+ 0.5
+ 1.5
+ 0.001
+ /sim/rendering/rembrandt/cinema/distortion-factor/z
+
+ dialog-apply
+ distortion-factor-z
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+
+ %.2f
+ true
+ /sim/rendering/rembrandt/cinema/distortion-factor/z
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+
+
+ hbox
+ left
+
+
+ left
+
+ color-fringe
+ /sim/rendering/rembrandt/cinema/color-fringe
+
+ dialog-apply
+ color-fringe
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+
+
+
+
+ 42
+
+
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+ /sim/rendering/rembrandt/cinema/color-fringe
+
+
+
+
+ color-fringe-factor
+ 0.96
+ 1.04
+ 0.001
+ /sim/rendering/rembrandt/cinema/color-fringe-factor
+
+ dialog-apply
+ color-fringe-factor
+
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+ /sim/rendering/rembrandt/cinema/color-fringe
+
+
+
+
+
+ %.3f
+ true
+ /sim/rendering/rembrandt/cinema/color-fringe-factor
+
+
+ /sim/rendering/rembrandt/night-vision
+ /sim/rendering/rembrandt/cinema/distortion
+ /sim/rendering/rembrandt/cinema/color-fringe
+
+
+
+
+
+
+ hbox
+ left
+
+
+ left
+
+ film-wear
+ /sim/rendering/rembrandt/cinema/film-wear
+
+ dialog-apply
+ film-wear
+
+
+
+ /sim/rendering/rembrandt/night-vision
- /sim/rendering/rembrandt/cinema/color-shift
/sim/rendering/rembrandt/cinema/vignette
+ /sim/rendering/rembrandt/cinema/color-shift
-
+
diff --git a/preferences.xml b/preferences.xml
index 02435746e..3ce1c0cd8 100644
--- a/preferences.xml
+++ b/preferences.xml
@@ -93,6 +93,15 @@ Started September 2000 by David Megginson, david@megginson.com
.534
.131
+ false
+
+ 0.0
+ 0.0
+ 1.0
+
+ false
+ 1.0
+ false
1.0
false