torben | 2017-04-24 15:13
Sunlight Script
A script to control day and night cycle.

The script was made by Paul Wendtland.
- define pitch and colour of sunlight
- control fogcolour and its density
We used it in Lamiae.
https://github.com/Hirato/lamiae

Error message in sauerbraten:
unknown alias lookingup:lastmillis

I don't know, if it's compatible.
But inspiring all the time. :D

https://vimeo.com/214227539

mapstart = $lastmillis
daylength = 50000
x = $daylength
red = 0
green = 0
blue = 0

//Uhrzeit    6   7   8   9   10  11  12  13  14  15  16  17  18  19  20  21  22  23   0   1   2   3   4   5  extra*\\
//timescale  0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20  21  22  23  extra*\\
redval   = [ 200 250 230 230 200 180 140 180 230 170 200 180 130 130 140 140 100  50  20  20  20  40  80 150 200 ]
greenval = [ 115 160 150 150 150 150 140 180 230 170 200 180 130 120  90  90  30  20  10  20  10  20  90 105 115 ]
blueval  = [ 110 130 150 150 170 200 210 190 230 200 190 180 170 160 80 100  70  50  50  50  50  70  90 100 110 ]

fogredval   = [ 20 140 150 160 170 150 150 110 100 100 190 100 120 150 160  80  30  30  30  30  10  0  0  10  20 ]
foggreenval = [ 0 100 110 120 130 140 140 140 110 100 190 100 100 100 140  70  30  30  30  30  0  0  0  0  0 ]
fogblueval  = [ 25 100 150 150 150 180 200 190 190 250 190 180 140 150 130 100  80  70  50  30 10  10  0  15 25 ]

fogdensityval = [ 40 50 90 100 130 150 200 230 250 150 50 150 230 180 140 100  90  70  80  30  10  10 20 30 40 ]

//*the extra value has to contain the same as the first value and enables easier looping at the end of the day

redst = []; redsh = []; greenst = []; greensh = []; bluest = []; bluesh = []
fogredst = []; fogredsh = []; foggreenst = []; foggreensh = []; fogbluest = []; fogbluesh = []
fogdenst = []; fogdensh = []

loop i ((- (listlen $redval) 1)) [
 redst = (concat $redst (* (- (at $redval (+ $i 1)) (at $redval $i)) 24 ) ) //red-steigung
 redsh = (concat $redsh (+ (* (*f (at $redst $i) (divf $i 24)) -1) (at $redval $i)))
 greenst = (concat $greenst (* (- (at $greenval (+ $i 1)) (at $greenval $i)) 24 ) ) //green-steigung
 greensh = (concat $greensh (+ (* (*f (at $greenst $i) (divf $i 24)) -1) (at $greenval $i)))
 bluest = (concat $bluest (* (- (at $blueval (+ $i 1)) (at $blueval $i)) 24 ) ) //blue-steigung
 bluesh = (concat $bluesh (+ (* (*f (at $bluest $i) (divf $i 24) ) -1) (at $blueval $i)))
 
 fogredst = (concat $fogredst (* (- (at $fogredval (+ $i 1)) (at $fogredval $i)) 24 ) ) //fogred-steigung
 fogredsh = (concat $fogredsh (+ (* (*f (at $fogredst $i) (divf $i 24)) -1) (at $fogredval $i)))
 foggreenst = (concat $foggreenst (* (- (at $foggreenval (+ $i 1)) (at $foggreenval $i)) 24 ) ) //foggreen-steigung
 foggreensh = (concat $foggreensh (+ (* (*f (at $foggreenst $i) (divf $i 24)) -1) (at $foggreenval $i)))
 fogbluest = (concat $fogbluest (* (- (at $fogblueval (+ $i 1)) (at $fogblueval $i)) 24 ) ) //fogblue-steigung
 fogbluesh = (concat $fogbluesh (+ (* (*f (at $fogbluest $i) (divf $i 24) ) -1) (at $fogblueval $i)))
 
 fogdenst = (concat $fogdenst (* (- (at $fogdensityval (+ $i 1)) (at $fogdensityval $i)) 24 ) ) //fogblue-steigung
 fogdensh = (concat $fogdensh (+ (* (*f (at $fogdenst $i) (divf $i 24) ) -1) (at $fogdensityval $i)))
]


// CYCLE STARTS ------------------------------------------------------------------------------
cycle = [

time = (mod (- $lastmillis $mapstart) $daylength)
hour = (div (* (- $time 1) 24) $x) //Ganzzahl zwischen 0 und 23

red = (+ (div (* (at $redst $hour) $time) $x) (at $redsh $hour))
green = (+ (div (* (at $greenst $hour) $time) $x) (at $greensh $hour))
blue = (+ (div (* (at $bluest $hour) $time) $x) (at $bluesh $hour))

fogred = (+ (div (* (at $fogredst $hour) $time) $x) (at $fogredsh $hour))
foggreen = (+ (div (* (at $foggreenst $hour) $time) $x) (at $foggreensh $hour))
fogblue = (+ (div (* (at $fogbluest $hour) $time) $x) (at $fogbluesh $hour))

fogdensity = (+ (div (* (at $fogdenst $hour) $time) $x) (at $fogdensh $hour))

 
ambient (+ 30 (div $red 10)) (+ 20 (div $green 10)) (+ 15 (div $blue 10))
sunlight $red $green $blue
fogcolour $fogred $foggreen $fogblue
fog (* $fogdensity 30)
cloudcolour $red $green $blue
skyboxcolour $red $green $blue
sunlightyaw (divf (* 360 $time) $x )

//--------Kommentar entfernen, um die jeweiligen Werte anzuzeigen------|
sunlight
//sunlightyaw
//sunlightpitch

sunlightpitch (-f 45 (*f 40 (cos (divf (* 360 $time) $x)))) 
//---------andere Pitchvarianten-------|
//sunlightpitch (-f 45 (*f 40 (cos (*f 2 (*f 360 (*f (divf $time $x) (divf $time $x) ))) )))
//sunlightpitch (-f 45 (*f 40 (cos (*f 2 (*f 360 (*f (divf (+ $time (div $x 12) ) $x) (divf (+ $time (div $x 12) ) $x) ))) )))
//-------------------------------------|

 sleep 50 cycle
]
cycle
0
points
 (0 votes)
User login
Users on Quadropolis
2 guests & no users online
7
points ]
 (1 vote)
Created 2022-04-21 09:26
4 weeks 20 hours ago
8
points ]
 (1 vote)
Created 2022-01-23 15:48
16 weeks 4 days ago
Created 2021-11-05 01:27
28 weeks 4 hours ago
36
points ]
 (4 votes)
Created 2020-12-10 12:49
1 year 22 weeks ago
32
points ]
 (4 votes)
Created 2012-08-30 04:30
9 years 37 weeks ago
10
points ]
 (1 vote)
Created 2019-10-16 01:26
2 years 31 weeks ago
9
points ]
 (1 vote)
Created 2021-06-17 22:42
48 weeks 7 hours ago
30
points ]
 (3 votes)
Created 2020-11-30 04:00
1 year 24 weeks ago
10
points ]
 (1 vote)
Created 2021-05-24 00:01
51 weeks 4 days ago
MisanthropX
92
points ]
 (10 votes)
Created 2019-12-05 20:57
2 years 23 weeks ago
20
points ]
 (2 votes)
Created 2020-12-20 03:04
1 year 21 weeks ago
30
points ]
 (3 votes)
Created 2020-12-04 12:05
1 year 23 weeks ago
20
points ]
 (2 votes)
Created 2020-12-03 17:12
1 year 23 weeks ago
30
points ]
 (3 votes)
Created 2020-06-13 21:05
1 year 48 weeks ago
60
points ]
 (6 votes)
Created 2020-01-23 12:57
2 years 16 weeks ago
78
points ]
 (8 votes)
Created 2020-10-11 13:46
1 year 31 weeks ago
64
points ]
 (7 votes)
Created 2018-12-04 15:12
3 years 23 weeks ago
Gangler
36
points ]
 (4 votes)
Created 2020-10-22 00:50
1 year 30 weeks ago
LURKing
13
points ]
 (2 votes)
Created 2020-11-22 21:21
1 year 25 weeks ago
LURKing
37
points ]
 (4 votes)
Created 2020-11-18 21:08
1 year 26 weeks ago
Who's new
  • ColdIV
  • Aidan
  • Hunk
  • letic86
  • BATMAN