summaryrefslogtreecommitdiffstats
path: root/klines/povray
diff options
context:
space:
mode:
Diffstat (limited to 'klines/povray')
-rw-r--r--klines/povray/ball.pov289
-rwxr-xr-xklines/povray/balls.sh13
-rwxr-xr-xklines/povray/clean.sh2
-rw-r--r--klines/povray/field.pov31
-rwxr-xr-xklines/povray/field.sh5
-rwxr-xr-xklines/povray/fire.sh9
-rwxr-xr-xklines/povray/makeballs.sh36
-rw-r--r--klines/povray/povray.ini59
8 files changed, 444 insertions, 0 deletions
diff --git a/klines/povray/ball.pov b/klines/povray/ball.pov
new file mode 100644
index 00000000..16d577ed
--- /dev/null
+++ b/klines/povray/ball.pov
@@ -0,0 +1,289 @@
+/***************************************************************************
+ ball.pov - script for rendering Kolor Lines graphics
+ -------------------
+ begin : Fri May 19 2000
+ copyright : (C) 2000 by Roman Razilov
+ email : Roman.Razilov@gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#version 3.0
+
+// Objectname = Main View
+// Objecttype = view
+
+// This camera is build for ratio 451:277
+#include "colors.inc"
+#include "textures.inc"
+#declare BallColor = Green
+#include "clr.inc"
+
+#declare CELLSIZE = 32
+#declare PIXTIME = 10
+#declare BALLDOWN = 3
+#declare BALLSPACE = 4
+
+#warning concat("XXXX clock:",str(clock,5,2),"\n")
+
+#switch (clock)
+// --------------------burning ball-------------------
+ #range (0,1.001)
+
+ #declare explosion = 1
+ #declare jump = 0
+ #declare n = 0
+
+ #declare t0 = 0
+ #declare t1 = 0.2
+ #declare t2 = 0.5
+ #declare t3 = 0.8
+ #declare t4 = 1
+ #declare tt = clock
+ #if ( tt = t0 )
+ //turbulence
+ #declare tur = 0
+ #declare trb = 0
+ #declare trf = 0
+ #declare pf = 0
+ #end
+ #if ( tt > t0 & tt <= t1 )
+ #declare tl = (tt - t0)/(t1-t0)
+ #declare tur = 3+(0.2-3)*tl
+ #declare trb = 0+(0-0)*tl
+ #declare trf = 1+(3-1)*tl
+ #declare pf = 0+(0.3-0)*t1
+ #end
+ #if ( tt > t1 & tt <= t2 )
+ #declare tl = (tt - t1)/(t2-t1)
+ #declare tur = 0.2+(0.5-0.1)*tl
+ #declare trb = 0+(1-0)*tl
+ #declare trf = 3+(1-3)*tl
+ #declare pf = 0.3+(0.2-0.3)*t1
+ #end
+ #if ( tt > t2 & tt <= t3 )
+ #declare tl = (tt - t2)/(t3-t2)
+ #declare tur = 0.5+(2-0.5)*tl
+ #declare trb = 1+(1-1)*tl
+ #declare trf = 1+(1-1)*tl
+ #declare pf = 0.2-(0.0-0.2)*t1
+ #end
+ #if ( tt > t3 )
+ #declare tl = (tt - t3)/(t4-t3)
+ #declare tur = 2+(5-2)*tl
+ #declare trb = 1+(1-1)*tl
+ #declare trf = 1+(0-1)*tl
+ #declare pf = 0.0-(0.0-0.0)*t1
+ #end
+ // ball position / size
+ #declare by = 0
+ #declare bh = CELLSIZE-2-BALLSPACE
+ #declare bw = CELLSIZE-2-BALLSPACE
+ #break
+// ----------------borning ball----------------------
+ #range (5,6.001)
+
+ #declare explosion = 0
+ #declare jump = 0
+
+ // fire turbulence
+ #declare tur = 0
+ // trancperancy ball
+ #declare trb = 0
+ // trancperancy fire
+ #declare trf = 0
+ // lambda
+ #declare pf = 0
+ // relative clock
+ #declare tt = clock - 5
+ // y position
+ #declare by = 0
+ #declare r=sqrt(tt)
+ #declare bh = (CELLSIZE-2-BALLSPACE)*r
+ #declare bw = (CELLSIZE-2-BALLSPACE)*r
+ // normal
+ #declare n = (1-tt)*r*2
+
+ #break
+
+ // -------------jumping ball----------------------
+ #range (10,11.001)
+ #declare explosion = 0
+ #declare jump = 1
+ #declare tur = 0
+ #declare trb = 0
+ #declare trf = 0
+ #declare pf = 0
+ #declare n = 0
+ #declare tt = clock - 10
+ // ball free fall: y = -(g * t^2)/2
+ // ball jums on X*sin( sqrt(k)*(t0 - t1 + t ) )
+ // t whole motion time
+ // g - gravity acceleration
+ // A - frei movement amplitude
+ // BB way with deflation
+ #declare A = BALLDOWN
+ #declare B = BALLSPACE
+ #declare ta = PIXTIME
+ #declare k = (pi + 2*sqrt( B*(A+B))/A - acos( A/(A+2*B)) )/ta
+ #declare k = k*k
+ #warning concat("XXXX k:",str(k,5,2),"\n")
+ #declare g = k*A*A/(2*(A+B))
+ #warning concat("XXXX g:",str(g,5,2),"\n")
+ #declare t1 = sqrt(2*B/g)
+ #warning concat("XXXX t1:",str(t1,5,2),"\n")
+ #declare X = A*(A+2*B)/(2*(A+B))
+ #warning concat("XXXX X:",str(X,5,2),"\n")
+
+ #declare tc = PIXTIME - tt*PIXTIME
+
+ #warning concat("XXXX tc:",str(tc,5,2),"\n")
+ // ball position
+ #if (tc < t1)
+ #declare by = B/2 - g*tc*tc/2
+ #else
+ #declare by = -B/2 - g/k - X*cos( sqrt(k)*(ta-tc))
+ #end
+ #if ( by < -2 )
+ #declare bh=CELLSIZE-2+2*by
+ #declare bw = CELLSIZE-2-BALLSPACE+(-by-2)
+ #else
+ #declare bh = CELLSIZE-2-BALLSPACE
+ #declare bw = CELLSIZE-2-BALLSPACE
+ #end
+
+ #break
+
+ #else
+ #warning " ERROR, clock out of range !!! \n"
+
+#end
+
+
+#warning concat("XXXX clock:",str(clock,5,2),"\n")
+
+#warning concat("XXXX tt:",str(tt,5,2),"\n")
+
+
+
+
+
+camera
+{
+ orthographic
+ location <0,0,-100>
+ look_at <0,0,0>
+ up (CELLSIZE-2)*y
+ right (CELLSIZE)*x
+}
+
+// Global settings
+global_settings
+{
+ ambient_light rgb<0.5,0.5,0.5>
+}
+light_source
+{
+ <-400, 600, -600>
+ color White
+ cylinder
+ radius 200
+ falloff 1000
+ tightness 1
+ point_at <0,0,0>
+}
+// Background
+background
+{
+ color rgb<.5,.5,.5>
+}
+
+// fire
+#if (explosion = 1)
+sphere { 0, 1
+ pigment { color rgbt<0,0,0,1>
+ }
+ halo {
+ emitting
+ spherical_mapping
+ poly
+ max_value 40
+ exponent 0.1
+ linear
+ turbulence tur
+// phase pf
+ lambda 2-pf
+ frequency 1
+ octaves 6
+ color_map {
+ [ 0 color rgbt <1, 0, 0, 1> ]
+ [ 0.2 color rgbt <1, 0, 0, 1-1*trf> ]
+ [ 0.5 color rgbt <1, 0, 0, 1-3*trf> ]
+ [ 0.9 color rgbt <1, 1, 0, 1-4*trf> ]
+ [ 1 color rgbt <1, 1, 0.5, 1-6*trf> ]
+ }
+ samples 30
+ }
+ hollow
+ scale<15,15,15>
+ translate <-0.5,-0.5,0>
+ }
+#end
+// Ball
+#if ( trb < 1 & bh > 0 )
+sphere
+{
+ <0,0,0>,1
+ pigment {
+
+ wood
+// agate_turb 0.5
+ turbulence .1
+ frequency 2
+// lambda
+ rotate <30,10,15>
+ color_map {
+ [0.5 BallColor transmit trb]
+ [0.3 BallColor*0.95 transmit trb]
+ [0.2 BallColor*0.9 transmit trb]
+ }
+ }
+ no_shadow
+ #if ( n > 0 )
+ normal
+ {
+ //wood 0.5
+ //frequency 2
+ //turbulence .1
+ //rotate <30,10,15>
+ bumps n
+ scale 0.3
+ }
+ #end
+ finish {
+ ambient 0.3
+ diffuse 0.8
+ specular 1
+ roughness 0.001
+ reflection .1
+ phong 0.9 * ( 1-trb)
+ phong_size 60
+
+ }
+ #if (trb > 0)
+ hollow
+ #end
+ scale <bw/2,bh/2,bw/2>
+ translate <-0.5,by - 0.5,0>
+
+#warning concat("XXXX by:",str(by,5,2),"\n")
+#warning concat("XXXX bh:",str(bh,5,2),"\n")
+#warning concat("XXXX bw:",str(bw,5,2),"\n")
+}
+#end
diff --git a/klines/povray/balls.sh b/klines/povray/balls.sh
new file mode 100755
index 00000000..1897afaa
--- /dev/null
+++ b/klines/povray/balls.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+echo "#declare BallColor = $2" >clr.inc
+#### jumping balls
+povray -w30 -h30 -V1 -P +A +KI10 +KF11 +KFF10 -Iball.pov +Oa$1.tga
+#### borning balls
+povray -w30 -h30 -V1 -P +A +KI5 +KF6 +KFF6 +SF2 +EF5 -Iball.pov +Ob$1.tga
+#### burning balls balls
+povray -w30 -h30 -V1 -P +A +KI0 +KF1 +KFF11 +SF1 +EF5 -Iball.pov +Oe$1.tga
+
+montage -geometry 30x30 -tile 100x1 -page 570x30 a$1??.tga b$1?.tga e$1??.tga bl_$1.tga
+mogrify -crop 570x30+0+0 bl_$1.tga
+
+
diff --git a/klines/povray/clean.sh b/klines/povray/clean.sh
new file mode 100755
index 00000000..df78c905
--- /dev/null
+++ b/klines/povray/clean.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+rm *.tga *.jpg \ No newline at end of file
diff --git a/klines/povray/field.pov b/klines/povray/field.pov
new file mode 100644
index 00000000..1256c733
--- /dev/null
+++ b/klines/povray/field.pov
@@ -0,0 +1,31 @@
+#declare CELLSIZE = 32
+#include "colors.inc"
+
+camera
+{
+ orthographic
+ location <0,0,-100>
+ look_at <0,0,0>
+ up (CELLSIZE-2)*y
+ right (CELLSIZE)*x
+}
+// Global settings
+global_settings
+{
+ ambient_light rgb<0.5,0.5,0.5>
+}
+light_source
+{
+ <-400, 600, -600>
+ color White
+ cylinder
+ radius 100
+ falloff 1000
+ tightness 1
+ point_at <0,0,0>
+}
+background
+{
+ color rgb<.5,.5,.5>
+}
+
diff --git a/klines/povray/field.sh b/klines/povray/field.sh
new file mode 100755
index 00000000..f4a784d2
--- /dev/null
+++ b/klines/povray/field.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+if (povray -w32 -h32 -V1 -P +A +K10 -Ifield.pov +Ofield.tga)
+then
+ mogrify -raise 1x1 field.tga
+fi
diff --git a/klines/povray/fire.sh b/klines/povray/fire.sh
new file mode 100755
index 00000000..2b6b5f9a
--- /dev/null
+++ b/klines/povray/fire.sh
@@ -0,0 +1,9 @@
+#! /bin/sh
+echo "#declare BallColor = White" >clr.inc
+if (povray -w30 -h30 -V1 -P +A +KI0 +KF1 +KFF11 +SF6 +EF10 -Iball.pov \
++Ofire.tga)
+then # mogrify -raise 1x1 e$1??.tga
+ montage -geometry 30x30 -tile 100x1 -page 150x30 fire*.tga fire.tga
+ mogrify -crop 150x30+0+0 fire.tga
+# animate -delay 7 $1??.tga
+fi
diff --git a/klines/povray/makeballs.sh b/klines/povray/makeballs.sh
new file mode 100755
index 00000000..62769605
--- /dev/null
+++ b/klines/povray/makeballs.sh
@@ -0,0 +1,36 @@
+#! /bin/sh
+#### clean
+
+clean.sh
+
+#### render
+
+field.sh
+fire.sh
+balls.sh Red "rgb<1,0,0>"
+balls.sh Green "rgb<0,1,0>"
+balls.sh Blue "rgb<0,0,1>"
+balls.sh Yellow "rgb<1,1,0>"
+balls.sh Violet "rgb<1,0,1>"
+balls.sh Cyan "rgb<0,1,1>"
+balls.sh Brown "rgb<1/2,1/3,0>"
+
+#### montage balls ( 20x7 cells each 30x30)
+
+montage -geometry 570x30 -tile 1x10 bl_*.tga balls.tga
+mogrify -crop 570x210+0+0 balls.tga
+
+#### convert to jpeg
+
+convert -quality 95 balls.tga balls.jpg
+convert -quality 95 fire.tga fire.jpg
+convert -quality 95 field.tga field.jpg
+
+
+#### copy to data
+
+cp *jpg ../
+
+#### clean
+
+#clean.sh \ No newline at end of file
diff --git a/klines/povray/povray.ini b/klines/povray/povray.ini
new file mode 100644
index 00000000..22ddf8ec
--- /dev/null
+++ b/klines/povray/povray.ini
@@ -0,0 +1,59 @@
+; PERSISTENCE OF VISION RAY TRACER
+;
+; POV-Ray VERSION 3.0
+;
+; SAMPLE POVRAY.INI FILE
+;
+; This file contains options which control how POV-Ray does its job.
+; The file should be placed in the same directory as POVRAY.EXE and
+; it will automaticaly read when POVRAY is run.
+;
+; The general form of the options is "Variable=value". Everything
+; between the equals sign and the end of the line is considered part
+; of the value. The spacing and layout is free-form but only one option
+; per line is allowed. Variables and values are not case-sensitive.
+;
+; Note: characters after a semi-colon are treated as a comment
+;
+; Traditional POV-Ray switches beginning with + or - are also allowed
+; and they may be given with more than one switch per line.
+;
+; These options have been put in this file because they will help
+; you get up and running quickly. This file assumes you have installed
+; the program in the /usr/local/lib directory. If you have installed
+; the program on a directory you must edit the Library_Path lines below.
+; See the general and Linux specific documentation for full instructions
+; on how to use INI options.
+;
+; Add your own options at the bottom and/or edit these to suit.
+;
+;
+; Width of image in pixels. Accepts integer values.
+;
+Width = 320
+;
+;
+; Height of image in pixels. Accepts integer values.
+;
+Height = 240
+;
+;
+; Turns pause when done feature off/on. Accepts boolean values.
+;
+Pause_when_Done = on
+;
+;
+; Sets minimum number of objects before auto bounding kicks in.
+;
+Bounding_Threshold = 3
+;
+;
+; Test for user abort with any keypress every 100 pixels.
+;
+Test_Abort=On
+Test_Abort_Count=100
+;
+; Specify path to search for any files not found in current
+; directory. Up to 25 such paths may be specified.
+Library_Path=/usr/lib/povray3
+Library_Path=/usr/lib/povray3/include