port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,137 @@
K 25
svn:wc:ra_dav:version-url
V 36
/svn/64k/!svn/ver/224/trunk/bp10/cfg
END
psao.txt
K 25
svn:wc:ra_dav:version-url
V 45
/svn/64k/!svn/ver/169/trunk/bp10/cfg/psao.txt
END
pswall.txt
K 25
svn:wc:ra_dav:version-url
V 47
/svn/64k/!svn/ver/212/trunk/bp10/cfg/pswall.txt
END
script.txt
K 25
svn:wc:ra_dav:version-url
V 45
/svn/64k/!svn/ver/2/trunk/bp10/cfg/script.txt
END
psrainbow.txt
K 25
svn:wc:ra_dav:version-url
V 50
/svn/64k/!svn/ver/175/trunk/bp10/cfg/psrainbow.txt
END
psdepth.txt
K 25
svn:wc:ra_dav:version-url
V 48
/svn/64k/!svn/ver/147/trunk/bp10/cfg/psdepth.txt
END
psblur.txt
K 25
svn:wc:ra_dav:version-url
V 47
/svn/64k/!svn/ver/178/trunk/bp10/cfg/psblur.txt
END
pssky.txt
K 25
svn:wc:ra_dav:version-url
V 46
/svn/64k/!svn/ver/224/trunk/bp10/cfg/pssky.txt
END
pstarmac.txt
K 25
svn:wc:ra_dav:version-url
V 49
/svn/64k/!svn/ver/148/trunk/bp10/cfg/pstarmac.txt
END
psdof.txt
K 25
svn:wc:ra_dav:version-url
V 46
/svn/64k/!svn/ver/208/trunk/bp10/cfg/psdof.txt
END
psphong.txt
K 25
svn:wc:ra_dav:version-url
V 48
/svn/64k/!svn/ver/169/trunk/bp10/cfg/psphong.txt
END
vssky.txt
K 25
svn:wc:ra_dav:version-url
V 46
/svn/64k/!svn/ver/214/trunk/bp10/cfg/vssky.txt
END
psgrass.txt
K 25
svn:wc:ra_dav:version-url
V 48
/svn/64k/!svn/ver/175/trunk/bp10/cfg/psgrass.txt
END
port.txt
K 25
svn:wc:ra_dav:version-url
V 43
/svn/64k/!svn/ver/2/trunk/bp10/cfg/port.txt
END
text.txt
K 25
svn:wc:ra_dav:version-url
V 45
/svn/64k/!svn/ver/216/trunk/bp10/cfg/text.txt
END
pspssm.txt
K 25
svn:wc:ra_dav:version-url
V 47
/svn/64k/!svn/ver/158/trunk/bp10/cfg/pspssm.txt
END
vsgeneral.txt
K 25
svn:wc:ra_dav:version-url
V 50
/svn/64k/!svn/ver/148/trunk/bp10/cfg/vsgeneral.txt
END
pstext.txt
K 25
svn:wc:ra_dav:version-url
V 47
/svn/64k/!svn/ver/148/trunk/bp10/cfg/pstext.txt
END
notes.txt
K 25
svn:wc:ra_dav:version-url
V 44
/svn/64k/!svn/ver/2/trunk/bp10/cfg/notes.txt
END
vsfsquad.txt
K 25
svn:wc:ra_dav:version-url
V 49
/svn/64k/!svn/ver/195/trunk/bp10/cfg/vsfsquad.txt
END
psray.txt
K 25
svn:wc:ra_dav:version-url
V 46
/svn/64k/!svn/ver/194/trunk/bp10/cfg/psray.txt
END
param.txt
K 25
svn:wc:ra_dav:version-url
V 44
/svn/64k/!svn/ver/2/trunk/bp10/cfg/param.txt
END
cam.txt
K 25
svn:wc:ra_dav:version-url
V 42
/svn/64k/!svn/ver/2/trunk/bp10/cfg/cam.txt
END

View File

@@ -0,0 +1,783 @@
9
dir
230
http://svn.xp-dev.com/svn/64k/trunk/bp10/cfg
http://svn.xp-dev.com/svn/64k
2010-04-01T09:57:57.206928Z
224
CodingCat
svn:special svn:externals svn:needs-lock
e3c53db8-d867-4aff-9ce2-c1b2cf7253df
0
pswall.txt
file
2010-03-31T15:36:34.908846Z
08899156eed95b0bf5e47371baeeef64
2010-03-31T15:36:34.908846Z
212
TGGC
2970
psao.txt
file
2010-03-26T12:17:46.501700Z
a8b7e40883c33edad4ed01a6eaedf9e2
2010-03-26T12:17:46.501700Z
169
CodingCat
5220
psrainbow.txt
file
2010-03-26T16:54:29.558855Z
c27c40c388f12562b92f264172b36b70
2010-03-26T16:54:29.558855Z
175
CodingCat
1215
script.txt
file
2009-07-29T21:50:48.968750Z
53b32b76260cc1050d4b8a68a09f261a
2009-12-07T20:32:16.889196Z
2
TGGC
3872
psblur.txt
file
2010-03-28T10:43:11.888060Z
221dfd0d72437edef56f2622f6496043
2010-03-28T10:43:11.888060Z
178
CodingCat
1763
psdepth.txt
file
2010-03-23T08:43:47.226617Z
714f28018d1af00cf1437d78bfeb4094
2010-03-23T08:43:47.226617Z
147
CodingCat
62
pssky.txt
file
2010-04-01T09:57:57.206928Z
404aed7642e4a6f218d775156cb23317
2010-04-01T09:57:57.206928Z
224
CodingCat
3026
pstarmac.txt
file
2010-03-23T09:24:52.037003Z
1569e7a92068ae3b8db82034d7ecc519
2010-03-23T09:24:52.037003Z
148
CodingCat
3085
psdof.txt
file
2010-03-31T12:36:41.787053Z
d4efc1a62ee9481891ae87dd7f6efd48
2010-03-31T12:36:41.787053Z
208
TGGC
3385
psphong.txt
file
2010-03-26T12:17:46.501700Z
3cd3752906d51653c8f6a16cdb968f9e
2010-03-26T12:17:46.501700Z
169
CodingCat
1114
vssky.txt
file
2010-03-31T17:36:07.577578Z
e88d358090811c9ec8d364dd5a48f7ee
2010-03-31T17:36:07.577578Z
214
CodingCat
357
psgrass.txt
file
2010-03-26T16:54:29.558855Z
77ac7c3f7d2f5754b334fa5137e38262
2010-03-26T16:54:29.558855Z
175
CodingCat
2373
text.txt
file
2010-03-31T19:56:43.359375Z
60f7f04be34432ac475ad90f4dcac557
2010-03-31T21:51:48.657273Z
216
TGGC
2154
port.txt
file
2009-07-29T21:49:43.593750Z
85359932d2ed4154f9edfde309f32eb4
2009-12-07T20:32:16.889196Z
2
TGGC
3037
pspssm.txt
file
2010-03-24T12:51:15.250282Z
9128223739d5ff46d278cde4e0efba52
2010-03-24T12:51:15.250282Z
158
CodingCat
4034
vsgeneral.txt
file
2010-03-23T09:24:52.037003Z
fb170316c9d94c8d4294433ca8f60348
2010-03-23T09:24:52.037003Z
148
CodingCat
1156
pstext.txt
file
2010-03-23T09:24:52.037003Z
b551c1670266314e5b1c1c4398a0b44f
2010-03-23T09:24:52.037003Z
148
CodingCat
1147
notes.txt
file
2009-07-28T21:13:22.843750Z
3a32f4144c85ed0e46ff76b24daf91dc
2009-12-07T20:32:16.889196Z
2
TGGC
130
vsfsquad.txt
file
2010-03-30T16:08:59.911029Z
7bc554de6a5c2682889d5ee85b86a48a
2010-03-30T16:08:59.911029Z
195
CodingCat
866
psray.txt
file
2010-03-30T09:57:35.106943Z
b0bfa22a3603a7087cbb19eda2f44491
2010-03-30T09:57:35.106943Z
194
CodingCat
1565
param.txt
file
2009-07-28T15:46:14.328125Z
021312503a1e7d46a40d436e9dc6bb44
2009-12-07T20:32:16.889196Z
2
TGGC
11517
cam.txt
file
2009-07-28T20:11:52.531250Z
08d71cb04e107b1618cc486c2fefe064
2009-12-07T20:32:16.889196Z
2
TGGC
3170

View File

@@ -0,0 +1 @@
9

View File

@@ -0,0 +1,150 @@
CCUR= 10
CTYPE000= 0 256 1.0
CCOLOR000= 247 167 0 256
BANK256= -154.0 0.0 0.0 0.0
BANK257= 0.0 0.0 0.0 1.0
BANK258= 0.0 0.0 160.0 0.0
BANK259= 0.0 0.0 0.0 1.0
CTYPE001= 1 260 0.75
CCOLOR001= 247 167 0 256
BANK260= 0.0 0.0 0.0 0.0
BANK261= 56.0 0.125 0.0 0.0
BANK262= 0.0 0.0 0.0 1.0
CTYPE002= 1 263 0.75
CCOLOR002= 247 167 0 256
BANK263= 32.0 0.0 0.0 0.0
BANK264= 0.0 0.0 64.0 0.125
BANK265= 0.0 0.0 0.0 1.0
CTYPE003= 0 266 0.75
CCOLOR003= 247 167 0 256
BANK266= -32.0 160.0 16.0 0.0
BANK267= 16.0 -80.0 -8.0 1.0
BANK268= 16.0 -16.0 0.0 0.0
BANK269= 0.0 0.0 0.0 1.0
CTYPE004= 1 270 0.5
CCOLOR004= 247 167 0 256
BANK270= 0.0 4.0 0.0 0.0
BANK271= 0.0 0.0 36.0 0.165
BANK272= -32.0 -16.0 -32.0 1.0
CTYPE005= 0 273 0.75
CCOLOR005= 247 167 0 256
BANK273= -16.0 96.0 160.0 0.0
BANK274= 0.0 0.0 -48.0 1.0
BANK275= -64.0 -1024.0 -0.0 0.0
BANK276= 0.0 0.0 0.0 1.0
CTYPE006= 1 277 0.75
CCOLOR006= 123 83 0 128
BANK277= 0.0 0.0 0.0 0.0
BANK278= 56.0 0.125 0.0 0.0
BANK279= 0.0 0.0 0.0 1.0
CTYPE007= 0 280 0.75
CCOLOR007= 123 83 0 128
BANK280= -64.0 0.0 70.0 0.0
BANK281= 0.0 0.0 -16.0 1.0
BANK282= 0.0 128.0 0.0 0.0
BANK283= 0.0 -32.0 0.0 1.0
CTYPE008= 0 284 0.75
CCOLOR008= 123 83 0 128
BANK284= -80.0 0.0 70.0 0.0
BANK285= 8.0 0.0 -16.0 1.0
BANK286= 0.0 -48.0 96.0 0.0
BANK287= 0.0 16.0 -32.0 1.0
CTYPE010= 0 300 0.85
CCOLOR010= 192 224 256 64
BANK300= -110.0 0.0 70.0 0.0
BANK301= 0.0 0.0 0.0 1.0
BANK302= 0.0 0.0 0.0 0.0
BANK303= 0.0 0.0 0.0 1.0
CTYPE011= 1 304 0.75
CCOLOR011= 22 22 22 256
BANK304= 0.0 32.0 0.0 0.0
BANK305= 64.0 0.0625 16.0 0.125
BANK306= 0.0 0.0 0.0 0.0
CTYPE012= 0 307 0.75
CCOLOR012= 22 22 22 256
BANK307= -56.0 -64.0 48.0 0.0
BANK308= 0.0 16.0 -16.0 1.0
BANK309= 0.0 0.0 0.0 0.0
BANK310= 0.0 4.0 0.0 1.0
CTYPE013= 0 311 0.75
CCOLOR013= 22 22 22 256
BANK311= 56.0 96.0 64.0 0.0
BANK312= -12.0 -16.0 -2.0 1.0
BANK313= 0.0 -32.0 0.0 0.0
BANK314= 0.0 8.0 0.0 1.0
CTYPE014= 0 304 0.75
CCOLOR014= 22 22 22 256
CTYPE015= 0 305 0.75
CCOLOR015= 22 22 22 256
CTYPE016= 0 309 0.75
CCOLOR016= 22 22 22 256
CTYPE017= 0 315 0.5
CCOLOR017= 22 22 22 256
BANK315= 16.0 240.0 4.0 0.0
BANK316= -1.0 -30.0 0.0 1.0
BANK317= -96.0 -160.0 4.0 0.0
BANK318= 8.0 0.0 0.0 1.0
CTYPE018= 1 319 0.75
CCOLOR018= 247 167 0 64
BANK319= 0.0 16.0 0.0 0.0
BANK320= 52.0 0.02 0.0 0.125
BANK321= 0.0 0.0 40.0 0.0
CTYPE019= 1 322 0.75
CCOLOR019= 247 167 0 64
BANK322= 0.0 -8.0 0.0 0.0
BANK323= -36.0 0.02 0.0 0.125
BANK324= -40.0 0.0 0.0 0.0
CTYPE020= 1 325 0.75
CCOLOR020= 247 167 0 64
BANK325= 0.0 0.0 0.0 0.0
BANK326= 48.0 0.0625 16.0 1
BANK327= -40.0 0.0 0.0 0.0
CTYPE021= 1 328 0.5
CCOLOR021= 247 167 0 64
BANK328= 64.0 8.0 16.0 0.125
BANK329= 0.0 0.0 0.0 0.0
BANK330= -56.0 -64.0 48.0 0.0
CTYPE022= 1 331 0.5
CCOLOR022= 247 167 0 64
BANK331= 44.0 8.0 16.0 0.125
BANK332= 4.0 0.125 0.0 0.0
BANK333= 56.0 -64.0 -48.0 0.0
CTYPE023= 1 334 0.5
CCOLOR023= 44 44 44 256
BANK334= -64.0 8.0 16.0 0.125
BANK335= 4.0 0.125 12.0 0.05
BANK336= 0.0 0.0 0.0 0.0
CCUR= 23
#PCUR= 30

View File

@@ -0,0 +1,10 @@
Objekt Kamera
0,7 0, 1, 2, 3, 4, 5
7,2 6, 7, 8
9,2 usw 10
15 ?
16,2 11-17
18,2 11-17
20,6 11-17
26,4 18-22
30,4 23, 11-17

View File

@@ -0,0 +1,710 @@
#OCUR= 0
#OCOUNT= 7
#OCUR= 16
#OCOUNT= 2
#----------------------------------
#Spikerings
#OCUR= 0
#OCOUNT= 7
SIZE001= 36 6
SIZE002= 36 6
SIZE003= 72 6
SIZE004= 72 6
SIZE005= 144 6
SIZE006= 144 6
#Spikerings- Groessen
BASE001= 1 0
BASE002= 1 1
BASE003= 1 2
BASE004= 1 3
BASE005= 1 4
BASE006= 1 5
BANK000= 16.0 16.0 8.0 16.0
BANK001= 16.0 16.0 -8.0 16.0
BANK002= 32.0 32.0 8.0 16.0
BANK003= 32.0 32.0 -8.0 16.0
BANK004= 48.0 48.0 8.0 16.0
BANK005= 48.0 48.0 -8.0 16.0
#Spikerings - Offsets
OFFSET001= -1 0
OFFSET002= -1 0
OFFSET003= -1 0
OFFSET004= -1 0
OFFSET005= -1 0
OFFSET006= -1 0
#Spikerings - Height
HEIGHT001= 4 6
HEIGHT002= 4 9
HEIGHT003= 4 6
HEIGHT004= 4 9
HEIGHT005= 4 6
HEIGHT006= 4 9
BANK006= 1.3 1.3 8.0 5.0
BANK007= 27.0 23.0 0.15 1.3
BANK008= 35.0 17.0 0.2 0.0
BANK009= 0.3 0.3 0.6 5.0
BANK010= 27.0 23.0 0.15 1.3
BANK011= 35.0 17.0 0.2 0.0
#Spikerings - Mix
MIX001= 4 12
MIX002= 4 15
MIX003= 4 12
MIX004= 4 15
MIX005= 4 12
MIX006= 1 15
BANK012= 0.075 0.0 0.9 0.0
BANK013= 1.0 2.0 0.15 0.2
BANK014= 0.0 2.0 0.05 0.1
BANK015= 0.075 0.0 0.1 0.0
BANK016= 1.0 2.0 0.15 0.2
BANK017= 0.0 2.0 0.05 0.1
#Spikerings - Colors
COLOR001= 111 157 190
COLOR002= 111 157 190
COLOR003= 151 187 210
COLOR004= 151 187 210
COLOR005= 191 217 230
COLOR006= 191 217 230
#Spikerings Animation
TRANS001= 1 20
TRANS002= 1 20
TRANS003= 1 24
TRANS004= 1 24
TRANS005= 1 28
TRANS006= 1 28
BANK020= 0.0 0.0 0.0 0.0
BANK021= 0.0 0.0 0.0 0.0
BANK022= 0.0 0.0 0.0 0.0
BANK023= 0.125 1.0 0.0 0.5
BANK024= 0.0 0.0 0.0 0.0
BANK025= 0.0 0.0 0.0 0.0
BANK026= 0.3 0.0 0.0 0.0
BANK027= 0.125 1.0 0.0 0.25
BANK028= 0.0 0.0 0.0 0.0
BANK029= 0.0 0.0 0.0 0.0
BANK030= 0.6 0.0 0.0 0.0
BANK031= 0.125 1.0 0.0 0.125
#Spikerings Sky
SIZE000= 48 48
BASE000= 2 32
OFFSET000= 4 33
HEIGHT000= 4 36
MIX000= 4 39
COLOR000= 249 0 105
BANK032= 256.0 256.0 -256.0 16.0
BANK033= 8 8 0.0 0.75
BANK034= 1.0 3.0 0.35 0.2
BANK035= 2.0 2.0 0.25 0.5
BANK036= 8.0 8.0 16.0 5.0
BANK037= 27.0 23.0 0.15 1.3
BANK038= 35.0 17.0 0.2 0.0
BANK039= 0.025 0.0 0.05 0.0
BANK040= 1.0 2.0 0.15 0.2
BANK041= 0.0 2.0 0.05 0.1
#Spikerings
#----------------------------------
#----------------------------------
#Twisted
#OCUR= 7
#OCOUNT= 2
SIZE007= 64 64
BASE007= 1 50
BANK050= 0.05 0.05 -48.0 16.0
OFFSET007= 5 52
BANK052= 24.0 8.0 2.0 0.6
BANK053= 2.5 8.0 3.0 1.5
HEIGHT007= 0 51
MIX007= 1 51
BANK051= 0.25 0.05 0.0 0.0
COLOR007= 255 255 255
TRANS007= 1 60
BANK060= 0.0 0.0 0.0 0.0
BANK061= 0.0 0.0 0.0 0.0
BANK062= 0.0 0.0 0.0 0.0
BANK063= 0.0 1.0 0.0 0.125
#Twisted Sky
SIZE008= 48 48
BASE008= 2 32
OFFSET008= 4 33
HEIGHT008= 4 36
MIX008= 4 39
COLOR008= 96 96 96
BANK032= 192.0 192.0 -192.0 16.0
BANK033= 8 8 0.0 0.75
BANK034= 1.0 3.0 0.35 0.2
BANK035= 2.0 2.0 0.25 0.5
BANK036= 8.0 8.0 16.0 5.0
BANK037= 27.0 23.0 0.15 1.3
BANK038= 35.0 17.0 0.2 0.0
BANK039= 0.15 0.0 0.05 0.0
BANK040= 1.0 2.0 0.15 0.2
BANK041= 0.0 2.0 0.05 0.1
#Twisted
#----------------------------------
#----------------------------------
#PlaneA
#OCUR= 9
#OCOUNT= 2
SIZE009= 96 96
SIZE010= 96 96
BASE009= 0 70
BASE010= 0 70
BANK070= 128.0 128.0 0.0 0.0
OFFSET009= 4 71
OFFSET010= 4 71
BANK071= 2.0 2.0 0 2.3
BANK072= 2.0 3.0 0.35 1.7
BANK073= 3.0 1.0 0.75 0.5
HEIGHT009= 0 74
HEIGHT010= 0 74
MIX009= 1 74
MIX010= 1 74
BANK074= 0.0 0.0 0.0 0.0
COLOR009= 255 255 255
COLOR010= 255 255 255
TRANS009= 1 75
TRANS010= 1 79
BANK075= 0.0 12.0 0.0 0.0
BANK076= 0.0 0.0 0.0 0.0
BANK077= 0.0 0.5 0.0 0.0
BANK078= 0.25 0.0 0.0 0.125
BANK079= 0.0 -12.0 0.0 0.0
BANK080= 0.0 0.0 0.0 0.0
BANK081= 0.0 0.0 0.0 0.0
BANK082= -0.25 0.0 0.0 0.125
#PlaneA
#----------------------------------
#----------------------------------
#PlaneB
#OCUR= 11
#OCOUNT= 2
SIZE011= 96 96
SIZE012= 96 96
BASE011= 0 70
BASE012= 0 70
OFFSET011= 4 71
OFFSET012= 4 71
HEIGHT011= 0 83
HEIGHT012= 0 83
MIX011= 1 83
MIX012= 1 83
BANK083= 1.0 0.1 0.0 0.0
COLOR011= 255 255 255
COLOR012= 255 255 255
TRANS011= 1 75
TRANS012= 1 79
#PlaneB
#----------------------------------
#----------------------------------
#PlaneC
#OCUR= 13
#OCOUNT= 2
SIZE013= 96 96
SIZE014= 96 96
BASE013= 0 70
BASE014= 0 70
OFFSET013= 4 71
OFFSET014= 4 71
HEIGHT013= 0 84
HEIGHT014= 0 84
MIX013= 1 84
MIX014= 1 84
BANK084= 8.0 1.0 0.0 0.0
COLOR013= 255 255 255
COLOR014= 255 255 255
TRANS013= 1 75
TRANS014= 1 79
#PlaneC
#----------------------------------
#----------------------------------
#PlaneD
#OCUR= 15
#OCOUNT= 1
SIZE015= 96 96
BASE015= 0 85
BANK085= 96.0 96.0 0.0 0.0
OFFSET015= 4 86
BANK086= 1.5 1.5 0 1.3
BANK087= 4.0 3.0 1.35 0.7
BANK088= 6.0 2.0 -0.75 1.3
HEIGHT015= 0 87
MIX015= 1 87
BANK087= 24.0 0.03 0.0 0.0
COLOR015= 255 255 255
TRANS015= 1 88
BANK088= 0.0 -48.0 0.0 0.0
BANK089= 0.0 0.0 0.0 0.0
BANK090= 0.0 0.0 0.0 0.0
BANK091= 0.0 0.0 0.0 0.125
#PlaneD
#----------------------------------
#----------------------------------
#SpikeCylinder
#OCUR= 16
#OCOUNT= 2
SIZE016= 32 48
SIZE017= 64 32
BASE016= 1 92
BASE017= 1 103
BANK092= 2.0 2.0 -64.0 0.0
BANK103= 2.0 2.0 192.0 0.0
OFFSET016= 5 93
OFFSET017= 5 104
BANK093= 24.0 1.5 1.0 0.2
BANK094= 1.0 2.0 3.0 1.0
BANK104= 160.0 0.0 0.0 0.0
BANK105= 0.0 0.0 0.0 0.0
HEIGHT016= 4 95
HEIGHT017= 4 95
BANK095= 6.0 10.0 16.0 1.0
BANK096= 3.0 1.0 0.27 1.0
BANK097= 2.0 2.0 0.7 1.0
MIX016= 0 98
MIX017= 1 98
BANK098= 1.0 0.2 0.0 0.0
COLOR016= 255 255 216
COLOR017= 247 167 0
TRANS016= 0 0
TRANS017= 0 0
#BANK099= 0.0 0.0 0.0 0.0
#BANK100= 0.0 0.0 0.0 0.0
#BANK101= 0.0 0.0 0.0 0.0
#BANK102= 0.0 0.0 0.0 0.125
#SpikeCylinder
#----------------------------------
#----------------------------------
#Blobding
#OCUR= 18
#OCOUNT= 2
SIZE018= 64 48
SIZE019= 64 32
BASE018= 2 106
BASE019= 1 107
BANK106= 24.0 8.0 8.0 0.0
BANK107= 2.0 2.0 192.0 0.0
OFFSET018= 5 108
OFFSET019= 5 110
BANK108= 6.0 1.5 1.0 0.2
BANK109= 1.0 2.0 3.0 1.0
BANK110= 160.0 0.0 0.0 0.0
BANK111= 0.0 0.0 0.0 0.0
HEIGHT018= 4 112
HEIGHT019= 4 112
BANK112= 5.0 8.0 13.0 1.0
BANK113= 3.0 1.0 0.27 1.0
BANK114= 2.0 2.0 0.7 1.0
MIX018= 4 116
MIX019= 4 116
BANK115= 0.2 0.75 0.0 0.0
BANK116= 0.15 0.15 0.325 2.0
BANK117= 3.0 7.0 0.65 1.6
BANK118= 5.0 2.0 0.85 1.4
COLOR018= 255 255 216
COLOR019= 247 167 0
TRANS016= 0 0
TRANS017= 0 0
#BANK099= 0.0 0.0 0.0 0.0
#BANK100= 0.0 0.0 0.0 0.0
#BANK101= 0.0 0.0 0.0 0.0
#BANK102= 0.0 0.0 0.0 0.125
#Blobding
#----------------------------------
#----------------------------------
#Tori
#OCUR= 20
#OCOUNT= 6
SIZE020= 20 80
SIZE021= 20 80
SIZE022= 20 80
SIZE023= 20 80
SIZE024= 20 80
COLOR020= 249 202 105
COLOR021= 249 202 105
COLOR022= 249 202 105
COLOR023= 249 202 105
COLOR024= 249 202 105
BASE020= 3 119
BASE021= 3 119
BASE022= 3 119
BASE023= 3 119
BASE024= 3 119
BANK119= 20.0 20.0 3.5 3.5
OFFSET020= 0 120
OFFSET021= 0 120
OFFSET022= 0 120
OFFSET023= 0 120
OFFSET024= 0 120
BANK120= 0.0 0.0 0.0 0.0
HEIGHT020= 4 121
HEIGHT021= 4 121
HEIGHT022= 4 121
HEIGHT023= 4 121
HEIGHT024= 4 121
BANK121= 0.3 0.3 1.3 17.0
BANK122= 31.0 37.0 0.047 0.13
BANK123= 27.0 43.0 0.07 0.087
MIX020= 0 124
MIX021= 0 124
MIX022= 0 124
MIX023= 0 124
MIX024= 0 124
BANK124= 0.125 0.0 0.0 0.0
TRANS020= 1 125
TRANS021= 1 129
TRANS022= 1 133
TRANS023= 1 137
TRANS024= 1 141
BANK125= 0.0 0.0 0.0 0.0
BANK126= 0.0 0.0 0.0 0.0
BANK127= 0.0 0.0 0.0 0.0
BANK128= -1.0 0.0 0.0 0.125
BANK129= 0.0 12.0 0.0 0.0
BANK130= 0.0 0.0 0.0 0.0
BANK131= 0.0 0.0 0.0 0.0
BANK132= 1.0 0.0 0.0 0.0625
BANK133= 0.0 -12.0 0.0 0.0
BANK134= 0.0 0.0 0.0 0.0
BANK135= 0.0 0.0 0.0 0.0
BANK136= 1.0 0.0 0.0 0.0625
BANK137= 0.0 24.0 0.0 0.0
BANK138= 0.0 0.0 0.0 0.0
BANK139= 0.0 0.0 0.0 0.0
BANK140= -1.0 0.0 0.0 0.0625
BANK141= 0.0 -24.0 0.0 0.0
BANK142= 0.0 0.0 0.0 0.0
BANK143= 0.0 0.0 0.0 0.0
BANK144= -1.0 0.0 0.0 0.0625
#Tori Sky
SIZE025= 48 48
BASE025= 2 148
OFFSET025= 5 150
HEIGHT025= 5 152
MIX025= 0 149
COLOR025= 130 180 255
BANK148= 224.0 256.0 -224.0 0.0
BANK149= 0.5 0.0 0.0 0.0
BANK150= 32.0 2.0 4.0 1.7
BANK151= 0.1 4.0 5.0 1.1
BANK152= 96.0 4.0 4.0 1.3
BANK153= 0.1 8.0 7.0 2.0
#Tori
#----------------------------------
#----------------------------------
#TripleTori
#OCUR= 26
#OCOUNT= 4
SIZE026= 48 80
BASE026= 3 154
BANK154= 48.0 48.0 -24.0 24.0
OFFSET026= -1 0
HEIGHT026= 4 155
BANK155= 0.5 0.5 2.0 17.0
BANK156= 31.0 37.0 0.047 0.13
BANK157= 27.0 43.0 0.07 0.087
MIX026= 0 158
BANK158= 0.05 1.2 0.0 0.0
COLOR026= 249 202 105
TRANS026= 1 159
BANK159= 0.0 0.0 0.0 0.0
BANK160= 0.0 0.0 0.0 0.0
BANK161= 0.0 0.0 0.0 0.0
BANK162= 1.0 0.0 0.0 0.0625
SIZE027= 24 160
SIZE028= 24 160
SIZE029= 24 160
BASE027= 3 163
BASE028= 3 164
BASE029= 3 165
BANK163= 38.0 38.0 3.0 3.0
BANK164= 48.0 48.0 3.0 3.0
BANK165= 58.0 58.0 3.0 3.0
OFFSET027= -1 0
OFFSET028= -1 0
OFFSET029= -1 0
HEIGHT027= 4 166
HEIGHT028= 4 166
HEIGHT029= 4 166
BANK166= 0.15 0.15 0.4 3.0
BANK167= 11.0 15.0 0.047 0.13
BANK168= 17.0 13.0 0.07 0.087
MIX027= 0 169
MIX028= 1 169
MIX029= 2 169
BANK169= 0.05 0.1 0.2 0.0
COLOR027= 255 255 216
COLOR028= 247 167 0
COLOR029= 191 217 230
TRANS027= 1 170
TRANS028= 1 174
TRANS029= 1 178
BANK170= 0.0 0.0 0.0 0.0
BANK171= 0.0 0.0 0.0 0.0
BANK172= 0.0 0.0 0.0 0.0
BANK173= -1.0 0.0 0.0 0.0625
BANK174= 0.0 0.0 0.0 0.0
BANK175= 0.0 0.0 0.0 0.0
BANK176= 0.0 0.0 0.0 0.0
BANK177= 1.5 0.0 0.0 0.0625
BANK178= 0.0 0.0 0.0 0.0
BANK179= 0.0 0.0 0.0 0.0
BANK180= 0.0 0.0 0.0 0.0
BANK181= -2.25 0.0 0.0 0.0625
#TripleTori
#----------------------------------
#----------------------------------
#Spikespere
OCUR= 30
OCOUNT= 4
SIZE030= 64 40
SIZE031= 64 40
BASE030= 2 182
BASE031= 2 189
BANK182= 32.0 32.0 32.0 8.0
BANK189= 32.0 32.0 32.0 8.0
OFFSET030= 4 183
OFFSET031= 4 183
BANK183= 4.0 4.0 0.0 0.75
BANK184= 1.0 2.0 0.047 0.13
BANK185= 1.0 1.0 0.07 0.087
HEIGHT030= 4 186
HEIGHT031= 4 190
BANK186= 0.25 0.25 4.0 17.0
BANK187= 31.0 33.0 0.047 0.13
BANK188= 27.0 43.0 0.07 0.087
BANK190= 6.0 6.0 12.0 4.0
BANK191= -0.02 1.0 0.047 0.13
BANK192= 0.01 0.02 0.07 0.087
MIX030= 0 193
MIX031= 1 193
BANK193= 0.125 1.0 0.0 0.0
COLOR030= 249 202 105
COLOR031= 247 167 0
TRANS030= 0 0
TRANS031= 0 0
#Spike Sky
SIZE032= 64 64
BASE032= 2 194
OFFSET032= 5 196
HEIGHT032= 5 198
MIX032= 0 195
COLOR032= 130 180 255
BANK194= 96.0 256.0 -224.0 0.0
BANK195= 0.1 0.0 0.0 0.0
BANK196= 32.0 2.0 4.0 1.7
BANK197= 0.1 4.0 5.0 1.1
BANK198= 14.0 2.0 2.0 1.3
BANK199= 0.1 8.0 7.0 2.0
SIZE033= 64 64
BASE033= 2 200
OFFSET033= 5 202
HEIGHT033= 5 204
MIX033= 0 201
COLOR033= 180 210 255
BANK200= 96.0 256.0 -224.0 0.0
BANK201= 0.75 0.0 0.0 0.0
BANK202= 32.0 2.0 4.0 1.7
BANK203= 0.1 4.0 5.0 1.1
BANK204= 18.0 8.0 8.0 0.3
BANK205= 2.0 5.0 7.0 0.7
#Spikespere
#----------------------------------

View File

@@ -0,0 +1,175 @@
PCUR= 2
PSCALE000= 204
PPOS000= -382 117 -180 80
PTEX000= 0
PWORD000=Ich habe hier schonmal<br>was vorberechnet!
PTICK000= 112
PSCALE001= 0
PPOS001= 0 0 0 0
PTEX001= -1
PWORD001=
PTICK001= 16
PSCALE002= 204
PPOS002= 353 117 40 60
PTEX002= 1
PWORD002=Music:<br>Turri
PTICK002= 64
PSCALE003= 204
PPOS003= -402 117 -200 60
PTEX003= 2
PWORD003=Code: <br>TGGC
PTICK003= 64
PSCALE004= 0
PPOS004= 0 0 -135 -100
PTEX004= 0
PWORD004= Evoke 2009
PTICK004= 32
PSCALE005= 0
PPOS005= 0 0 -280 -100
PTEX005= 0
PWORD005= CMath 4k Intro Wannabe
PTICK005= 64
PSCALE006= 0
PPOS006= 0 0 0 0
PTEX006= -1
PWORD006=
PTICK006= 48
PSCALE007= 204
PPOS007= -310 117 -90 80
PTEX007= 11
PWORD007= I are serious cat.
PTICK007= 48
PSCALE008= 204
PPOS008= -310 117 -90 80
PTEX008= 11
PWORD008= This is serious prod.
PTICK008= 48
PSCALE009= 204
PPOS009= 396 117 80 80
PTEX009= 9
PWORD009=BASS!
PTICK009= 64
PSCALE010= 204
PPOS010= -372 117 -180 80
PTEX010= 3
PWORD010=I like this BASS.
PTICK010= 64
PSCALE011= 204
PPOS011= 366 117 -220 60
PTEX011= 5
PWORD011=Nooo, they be<br>stealing my BASS!
PTICK011= 64
PSCALE012= 0
PPOS012= 0 0 0 0
PTEX012= -1
PWORD012=
PTICK012= 64
PSCALE013= 204
PPOS013= 390 117 -180 60
PTEX013= 6
PWORD013=.the .product<br>makes me happy.
PTICK013= 64
PSCALE014= 204
PPOS014= 390 117 -200 80
PTEX014= 6
PWORD014=See my happy face!
PTICK014= 64
PSCALE015= 0
PPOS015= 0 0 0 0
PTEX015= -1
PWORD015=
PTICK015= 64
PSCALE016= 204
PPOS016= 386 117 -140 60
PTEX016= 7
PWORD016=Old MacGyver<br>jokes are old.
PTICK016= 64
PSCALE017= 204
PPOS017= -330 117 -100 60
PTEX017= 14
PWORD017=Demo on, hats off<br>and Roundhouse Kick!
PTICK017= 64
PSCALE018= 204
PPOS018= 320 74 -300 60
PTEX018= 15
PWORD018=That is only a <br>piggy at pouet.net
PTICK018= 64
PSCALE019= 204
PPOS019= -379 117 -180 60
PTEX019= 13
PWORD019=Hey, you know my<br>new movie?
PTICK019= 48
PSCALE020= 204
PPOS020= -379 117 -180 60
PTEX020= 13
PWORD020=Uh, wrong demoparty...
PTICK020= 48
PSCALE021= 0
PPOS021= 0 0 0 0
PTEX021= -1
PWORD021=
PTICK021= 32
PSCALE022= 204
PPOS022= -310 117 -90 80
PTEX022= 11
PWORD022=Time for ribbons now.
PTICK022= 64
PSCALE023= 204
PPOS023= 378 117 -150 60
PTEX023= 4
PWORD023=Dude, there are <br>no ribbons here.
PTICK023= 64
PSCALE024= 204
PPOS024= -380 117 -200 60
PTEX024= 8
PWORD024=We have captains which<br>can beat your captains.
PTICK024= 64
PSCALE025= 204
PPOS025= 326 117 -230 80
PTEX025= 12
PWORD025=Schnauze Lübke!
PTICK025= 64
PSCALE026= 0
PPOS026= 0 0 -490 -270
PTEX026= 0
PWORD026=Conspiracy<br>Fairlight<br>Farbrausch<br>Kakiarts<br>Nuance<br>RGBA<br>Still<br>TBC<br>Titan
PTICK026= 96
PSCALE027= 204
PPOS027= -352 117 -150 60
PTEX027= 10
PWORD027=I love it when<br>a plan comes together!
PTICK027= 72
PSCALE028= 0
PPOS028= 0 0 0 0
PTEX028= -1
PWORD028=
PTICK028= 255

View File

@@ -0,0 +1,147 @@
float4 res : register(c0);
sampler2D colorSampler : register(s0);
sampler2D depthSampler : register(s1);
sampler2D ditherSampler : register(s2);
static float g_fRadiusBase = 0.005f;
static float g_fRadiusScale = 0.25f;
static float g_fFallOff = 0.7f;
static float g_fIntensity = 1.25f;
static float g_fGrain = 0.01f;
static float g_fRange = 1024.0f;
static float g_fBlurSensitivity = 250.f;
static const float3 vSamplePoints[12] = {
float3(0.083333f, 0.000000f, 0.083333f),
float3(-0.144338f, -0.083333f, 0.166667f),
float3(0.125000f, 0.216506f, 0.250000f),
float3(0.000000f, -0.333333f, 0.333333f),
float3(-0.208333f, 0.360844f, 0.416667f),
float3(0.433013f, -0.250000f, 0.500000f),
float3(-0.583333f, -0.000000f, 0.583333f),
float3(0.577350f, 0.333333f, 0.666667f),
float3(-0.375000f, -0.649519f, 0.750000f),
float3(-0.000000f, 0.833333f, 0.833333f),
float3(0.458333f, -0.793857f, 0.916667f),
float3(-0.866025f, 0.500000f, 1.000000f)
};
float4 ps_main(float2 TexCoord : TEXCOORD0) : COLOR0
{
// Sample random 2D matrix
float4 vRotation = tex2D(ditherSampler, TexCoord * res.xy / 32.0f) * 2.0f - 1.0f;
float2x2 mRotation = float2x2(vRotation.xy, vRotation.zw);
// Sample pixel depth
float fDepth = tex2D(depthSampler, TexCoord).x;
// Transform radius to screen space
float3 fScaledRadius = g_fRadiusBase + g_fRadiusScale / ( 8.0f + fDepth );
// Limit radius to reasonable sampling kernels
fScaledRadius = clamp(fScaledRadius, 4.0f * res.z, 64.0f * res.w);
// Transform sampling vector length back to world space
fScaledRadius.z *= fDepth;
float fOcclusion = 0.0f;
float fSampleWeight = 1.f / 18.849556f; // atan version
// float fSampleWeight = 1.f / 12.f;
// Loop over samples
for(int i = 0; i < 12; )
{
float4 fSampleDepth, fSampleRadius;
// Vectorize occlusion code
[unroll] for(int j = 0; j < 4; j++, i++)
{
// Randomly rotate scaled sample points
float3 vSampleOffset = fScaledRadius * vSamplePoints[i];
vSampleOffset.xy = mul(vSampleOffset.xy, mRotation);
// Sample depth texture
fSampleDepth[j] = tex2D(depthSampler, TexCoord + vSampleOffset.xy).x;
fSampleRadius[j] = vSampleOffset.z;
}
// Compute occlusion
float4 fDeltaDepth = (fDepth - fSampleDepth) / fSampleRadius;
float4 fAttenuation = g_fFallOff * fDeltaDepth;
float4 fBlocking = atan(fDeltaDepth) / (1.0f + max(0.0f, fAttenuation)); // atan version
// float4 fBlocking = fDeltaDepth / ( (1.0f + abs(fDeltaDepth)) * (1.0f + max(0.0f, fAttenuation)) );
fOcclusion += dot(fBlocking, fSampleWeight);
}
// Avoid ugly smudge artifacts
float2 fPixelPos = TexCoord * 2.0f - 1.0f;
float fBorderAttenuation = 1.0f - 0.7071f * dot(fPixelPos, fPixelPos);
// Write to intermediate buffer
float fAO = saturate(g_fIntensity * fOcclusion + g_fGrain) * fBorderAttenuation * step(fDepth, g_fRange);
return float4((float3)fAO, 0.f);
}
float4 ps_blur(float2 TexCoord, uniform bool bVertical)
{
float2 fStepSize = float2(1.f, bVertical ? -1.f : 1.f) * res.zw;
float3 fCenterDepths;
// Fetch 3 center depths
fCenterDepths.x = tex2D(depthSampler, TexCoord - fStepSize).x;
fCenterDepths.y = tex2D(depthSampler, TexCoord).x;
fCenterDepths.z = tex2D(depthSampler, TexCoord + fStepSize).x;
float3 fDepthContinuities, fDepthDeltas;
// Compute 3 depth continuity values
fDepthContinuities.x = tex2D(depthSampler, TexCoord - 2.0f * fStepSize).x;
fDepthContinuities.y = fCenterDepths.x;
fDepthContinuities.z = tex2D(depthSampler, TexCoord + 2.0f * fStepSize).x;
fDepthDeltas = fDepthContinuities - fCenterDepths.yzy;
fDepthContinuities += fCenterDepths.yzy - 2.0f * fCenterDepths;
// Correct AA issues
fDepthContinuities = abs(fDepthContinuities);
fDepthDeltas = abs(fDepthDeltas);
fDepthDeltas -= min(min(fDepthDeltas.x, fDepthDeltas.y), fDepthDeltas.z);
// Compute 3 weights
float3 fWeights = 1.0f / (1.0f + g_fBlurSensitivity * (fDepthContinuities + 16.f * fDepthDeltas));
float fOutput = 0.0f;
float3 fSamples;
float3 fSampleWeights = float3(3.0f, 1.5f, 1.0f);
// Blend 5 color samples respecting to the 3 depth continuity weights
fSamples.x = tex2D(colorSampler, TexCoord - 2.0f * fStepSize).x;
fSamples.y = tex2D(colorSampler, TexCoord - fStepSize).x;
fSamples.z = tex2D(colorSampler, TexCoord).x;
fOutput += dot(fSamples, fWeights.x);
fSamples.x = tex2D(colorSampler, TexCoord + fStepSize).x;
fOutput += dot(fSamples, fWeights.y);
fSamples.y = tex2D(colorSampler, TexCoord + 2.0f * fStepSize).x;
fOutput += dot(fSamples, fWeights.z);
// Average output weight
float fOutputWeight = dot(fWeights, 1.0f);
// Average output
fOutput /= 3.0f * fOutputWeight;
// Correction weight
float fCorrectionWeight = saturate(1.0f - fOutputWeight);
// Write to color buffer
fOutput = (1.0f - fCorrectionWeight) * fOutput + fCorrectionWeight * fSamples.z;
return float4((float3)fOutput, 0.f);
}
float4 ps_blur_hor(float2 TexCoord : TEXCOORD0) : COLOR0 { return ps_blur(TexCoord, false); }
float4 ps_blur_ver(float2 TexCoord : TEXCOORD0) : COLOR0 { return ps_blur(TexCoord, true); }

View File

@@ -0,0 +1,59 @@
float4 res : register(c0);
float4 glow : register(c31);
sampler2D colorSampler : register(s0);
sampler2D guideSampler : register(s4);
static float2 fGaussianWeights[] = {
float2(-3.0f, 0.015625f),
float2(-2.0f, 0.09375f),
float2(-1.0f, 0.234375f),
float2(0.0f, 0.3125f),
float2(1.0f, 0.234375f),
float2(2.0f, 0.09375f),
float2(3.0f, 0.015625f)
};
float4 ps_blur(float2 t : TEXCOORD0, uniform float2 vDir) : COLOR0
{
float2 vDelta = vDir * res.zw;
float4 fColor = 0.f;
for(int i = 0; i < 7; i++)
fColor += fGaussianWeights[i].y
* tex2D(colorSampler, t + fGaussianWeights[i].x * vDelta);
return fColor;
}
float4 ps_blur_hor(float2 t : TEXCOORD0) : COLOR0 { return ps_blur(t, float2(1.f, 0.f)); }
float4 ps_blur_ver(float2 t : TEXCOORD0) : COLOR0 { return ps_blur(t, float2(0.f, 1.f)); }
float4 ps_blur_bil(float2 t : TEXCOORD0, uniform float2 vDir) : COLOR0
{
float2 vDelta = vDir * res.zw;
float4 fGuide = tex2D(guideSampler, t);
float4 fColor = 0.f;
float fWeight = 0.f;
for(int i = 0; i < 7; i++)
{
float2 to = t + vDelta * fGaussianWeights[i].x;
float4 fSample = tex2D(colorSampler, to);
float fSampleWeight = (1.f - saturate(4.f * (fGuide.w - fSample.w))) * fGaussianWeights[i].y;
fColor += fSample * fSampleWeight;
fWeight += fSampleWeight;
}
return lerp(fGuide, fColor / fWeight, fWeight);
}
float4 ps_blur_bil_hor(float2 t : TEXCOORD0) : COLOR0 { return ps_blur_bil(t, float2(1.f, 0.f)); }
float4 ps_blur_bil_ver(float2 t : TEXCOORD0) : COLOR0 { return ps_blur_bil(t, float2(0.f, 1.f)); }
float4 ps_extract_inv_alpha(float2 t : TEXCOORD0) : COLOR0
{
float4 c = tex2D(colorSampler, t);
c.a = 1.f - c.a;
c.xyz *= c.a;
return c * glow;
}

View File

@@ -0,0 +1,4 @@
float4 ps_main(float4 s : TEXCOORD3):color
{
return s.z;
}

View File

@@ -0,0 +1,105 @@
float4 res : register(c0);
float2 Dist : register(c3);
sampler2D colorSampler : register(s0);
sampler2D depthSampler : register(s1);
sampler2D blurSampler : register(s4);
// Tweakables
static float g_fRadius = 0.005f;
static float g_fLowRadiusScaling = 0.4f;
static float g_fNearPlane = 1.0f;
static float g_fFocalPlane = Dist.y;
static float g_fDistScale = 1.0f / pow( g_fFocalPlane , 2.5f );
static float g_fFarPlane= 128.0f;
static const float2 vPoissonDisc[] = {
float2(-0.326212f, -0.40581f),
float2(-0.840144f, -0.07358f),
float2(-0.695914f, 0.457137f),
float2(-0.203345f, 0.620716f),
float2(0.96234f, -0.194983f),
float2(0.473434f, -0.480026f),
float2(0.519456f, 0.767022f),
float2(0.185461f, -0.893124f),
float2(0.507431f, 0.064425f),
float2(0.89642f, 0.412458f),
float2(-0.32194f, -0.932615f),
float2(-0.791559f, -0.59771f)
};
float4 ps_blur_intensity(float2 TexCoord : TEXCOORD0) : COLOR0
{
// Sample pixel depth
float fDepth = tex2D(depthSampler, TexCoord).x;
// Anti-aliasing
float4 fDDTexCoords1 = TexCoord.xyxy, fDDTexCoords2 = TexCoord.xyxy;
fDDTexCoords1.zw -= res.zw; fDDTexCoords2.zw += res.zw;
float4 fDDDepth4 = fDepth - float4(
tex2D(depthSampler, fDDTexCoords1.zy).x, tex2D(depthSampler, fDDTexCoords1.xw).x,
tex2D(depthSampler, fDDTexCoords2.zy).x, tex2D(depthSampler, fDDTexCoords2.xw).x );
// fDDDepth4 = lerp(fDDDepth4, abs(fDDDepth4), (fDDDepth4 * fDDDepth4.zwxy) > 0.f);
float2 fDeltaDepth2 = max(fDDDepth4.xy, fDDDepth4.zw);
float fDeltaDepth = max(fDeltaDepth2.x, fDeltaDepth2.y);
float fIntensity;
if(fDepth < g_fFocalPlane)
{
// Close-up blur
fIntensity = (fDepth - g_fFocalPlane) / (g_fFocalPlane - g_fNearPlane);
}
else
{
// Distance blur
float2 fDistances = (fDepth - g_fFocalPlane);
fDistances.y -= max(fDeltaDepth, 0.f);
float2 fIntensities = saturate(fDistances * g_fDistScale );
fIntensity = lerp(fIntensities.y, fIntensities.x, fIntensities.y);
}
// Bias to valid range
return float4(
tex2D(colorSampler, TexCoord).xyz,
saturate(0.5f + 0.5f * fIntensity) );
}
float4 ps_main(float2 TexCoord : TEXCOORD0) : COLOR0
{
// Center pixel depth
float fDepth = tex2D(colorSampler, TexCoord).w;
// Scale sampling radius
float fRadius = abs(2.0f * g_fRadius * fDepth - g_fRadius);
float fLowRadius = fRadius * g_fLowRadiusScaling;
float4 fColor = 0.0f;
float fAmount = 0.0f;
// Loop over samples
for(int i = 0; i < 12; i++)
{
// Sample on poisson disc
float2 fHighSampleTexCoord = TexCoord + fRadius * vPoissonDisc[i];
float2 fLowSampleTexCoord = TexCoord + fLowRadius * vPoissonDisc[i];
// Sample blurred and unblurred texture
float4 fHighSample = tex2D(colorSampler, fHighSampleTexCoord);
float4 fLowSample = tex2D(blurSampler, fLowSampleTexCoord);
// Blend between blurred and unblurred texture
float fSampleBlurIntensity = abs(2.f * fHighSample.w - 1.f);
// * saturate(1.f - 3.f * (fHighSample.w - fLowSample.w));
float4 fSample = lerp(fHighSample, fLowSample, fSampleBlurIntensity);
// Compute smart weight to avoid cross-edge leaking
float fWeight = fSample.w < fDepth ? abs(2.f * fSample.w - 1.f) : 1.f;
// Sum up
fColor += fSample * fWeight;
fAmount += fWeight;
}
return fColor / fAmount;
}

View File

@@ -0,0 +1,80 @@
float4 g_fResolution : register(c0);
float3 g_vLightDir : register(c1);
sampler2D randomSampler : register(s0);
sampler1D diffSampler : register(s2);
sampler2D shadowSampler : register(s4);
sampler2D depthSampler : register(s5);
static float3 g_fColor = float3(0.45f, 0.5f, 0.18f); // float3(.2f, .5f, .1f);
static float g_fTexScale = .25f;
static float g_fDensity = 3.f;
static float2 g_fInnerOuterRadiusSq = float2(240.f * 240.f, 380.f * 380.f);
static float4 g_fHaze = float4(0.765f, 0.808f, 0.871f, -0.3f);
static float2 g_fHazeDensityIntensity = float2(0.25f, 0.6f);
struct psIn
{
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
float noise(float2 t)
{
float4 r = tex2D(randomSampler, .03125f * t);
float lr = dot(r, float4(1.f, 10.f, 100.f, 1000.f));
return lr * 2.f / 1111.f - 1.f;
}
float abs_noise(float2 t) { return abs( noise(t) ); }
float4 ps_main(psIn i):color
{
float2 t = i.w.xz * g_fTexScale;
float fCenterDist = dot(i.w.xz, i.w.xz) - g_fInnerOuterRadiusSq.x;
fCenterDist /= g_fInnerOuterRadiusSq.y - g_fInnerOuterRadiusSq.x;
// Texturing
float4 fColor = abs_noise(t) / 2.f;
fColor.xyz = 0.5f + 0.1f * fColor.xyz;
fColor.zw += noise(2.f * t) / float2(32.f, 4.f);
fColor.xw += noise(4.f * t) / float2(64.f, 8.f);
fColor.yw += noise(8.f * t) / float2(16.f, 16.f);
fColor.xyz += noise(16.f * t) / 16.f;
fColor.xyz += noise(32.f * t) / 32.f;
fColor.xyz += noise(128.f * t) / 32.f;
fColor.xyz += noise(1024.f * t) / 32.f;
// Color
fColor.xyz *= 2.f * fColor.xyz;
fColor.xyz *= g_fColor;
// Density
fColor.w = saturate(g_fDensity * fColor.w + fCenterDist);
// Shadow (AA)
float2 sc = i.s.xy / i.s.w;
float aa = abs( tex2D(depthSampler, sc).x - i.s.z );
float2 ddaa = float2(ddx(aa), ddy(aa));
float2 aaetc = sign(-ddaa) * g_fResolution.zw;
sc += aaetc * saturate(4.f * aa);
float fShadow = 0.2f + 0.8f * (float)tex2D(shadowSampler, sc);
// Diffuse light
fColor.xyz *= tex1D( diffSampler, fShadow * (0.5f + 0.5f * dot(normalize(i.n), -g_vLightDir)) ).xyz;
// Haze
fColor.xyz = lerp( fColor.xyz, g_fHaze,
saturate(g_fHazeDensityIntensity.x * fCenterDist) * g_fHazeDensityIntensity.y );
// Premultiplied alpha
fColor.xyz *= fColor.a;
return fColor;
}

View File

@@ -0,0 +1,43 @@
float4 g_fResolution : register(c0);
float3 g_vLightDir : register(c1);
sampler1D dif : register(s2);
sampler1D spec : register(s3);
sampler2D shadowSampler : register(s4);
sampler2D depthSampler : register(s5);
static float4 g_fSpecularPower = {0.85f, 0.85f, 0.85f, 0.85f};
struct psIn
{
float4 c : COLOR0;
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
float4 ps_main(psIn i):color
{
// Shadow AA
float2 sc = i.s.xy / i.s.w;
float aa = abs( tex2D(depthSampler, sc).x - i.s.z );
float2 ddaa = float2(ddx(aa), ddy(aa));
float2 aaetc = sign(-ddaa) * g_fResolution.zw;
sc += aaetc * saturate(4.f * aa);
float4 fColor = i.c;
float fS= 0.2f + 0.8f * tex2D(shadowSampler, sc);
float3 n = normalize(i.n);
// Lighting
fColor.xyz *= tex1D( dif, fS * ( 0.5f + 0.5f * dot( n, -g_vLightDir) ) );
// Specular highlights
float3 h = normalize( normalize(i.v) + -g_vLightDir );
float s = dot(n, h);
fColor.xyz += g_fSpecularPower * tex1D(spec, fS * ( 0.5f + 0.5f * s ) );
return fColor;
}

View File

@@ -0,0 +1,108 @@
float2 g_fResolution : register(c0);
float3 g_vViewPos : register(c2);
float g_fSplit : register(c23);
float4x4 g_mShadowVP : register(c24);
float3 g_vShadowViewPos : register(c28);
float3 g_vShadowViewDir : register(c29);
float4 g_fShadowMapScalingRes : register(c30);
sampler2D shadowMapSampler : register(s0);
sampler2D depthSampler : register(s1);
sampler2D ditherSampler : register(s2);
static float g_fRadius = 6.0f / 64.0f;
static float g_fBias = 4.0f / 64.0f;
static float g_fDepthBias = 16.0f / 64.0f;
static float g_fBiasFalloff = 1.5f / 64.0f;
static float g_fSharpness = 640.0f / 64.0f;
static float g_fBlurSharpness = 640.0f / 64.0f;
static float g_fDepthBlurSharpness = 16.0f / 64.0f;
static const float2 s_vShadowDisc[] = {
float2(-0.326212f, -0.40581f),
float2(-0.840144f, -0.07358f),
float2(-0.695914f, 0.457137f),
float2(-0.203345f, 0.620716f),
float2(0.96234f, -0.194983f),
float2(0.473434f, -0.480026f),
float2(0.519456f, 0.767022f),
float2(0.185461f, -0.893124f),
float2(0.507431f, 0.064425f),
float2(0.89642f, 0.412458f),
float2(-0.32194f, -0.932615f),
float2(-0.791559f, -0.59771f)
};
float4 ps_main(float2 TexCoord : TEXCOORD0, float3 EyeDir : TEXCOORD1) : COLOR0
{
// Compute eye space position
float fEyeDepth = tex2D(depthSampler, TexCoord).x;
float4 vEyePoint = float4(g_vViewPos + fEyeDepth * EyeDir, 1.0f);
// Transform eye point to shadow space
float4 vShadowCoord = mul(vEyePoint, g_mShadowVP);
vShadowCoord.z = dot(vEyePoint.xyz - g_vShadowViewPos, g_vShadowViewDir);
vShadowCoord.xy = vShadowCoord.xy * float2(.5f, -.5f)
+ vShadowCoord.w * (.5f + .5f / g_fShadowMapScalingRes.zw);
// Scale radius
float2 fScaledRadius = g_fRadius * g_fShadowMapScalingRes.xy;
// Transform to shadow map
float2 vShadowCoordProj = vShadowCoord.xy / vShadowCoord.w;
// Clip pixels outside shadow map
clip( float4(vShadowCoordProj, 1.0f - vShadowCoordProj) - fScaledRadius.xyxy );
// Compute sampling plane
float4 vShadowCoordDDX = ddx(vShadowCoord), vShadowCoordDDY = ddy(vShadowCoord);
float2 vShadowCoordDeltaDepth = float2(
vShadowCoordDDX.y * vShadowCoordDDY.z - vShadowCoordDDY.y * vShadowCoordDDX.z,
vShadowCoordDDY.x * vShadowCoordDDX.z - vShadowCoordDDX.x * vShadowCoordDDY.z )
/ (vShadowCoordDDY.x * vShadowCoordDDX.y - vShadowCoordDDX.x * vShadowCoordDDY.y);
vShadowCoordDeltaDepth = vShadowCoord.w * clamp(vShadowCoordDeltaDepth, -16.f, 16.f);
// Compute bias
float fAdaption = 1.f / (1.0f + g_fBiasFalloff * fEyeDepth);
float fAdaptedBias = g_fBias; // lerp(g_fDepthBias, g_fBias, fAdaption);
float fAdaptedBlurSharpness = lerp(g_fDepthBlurSharpness, g_fBlurSharpness, fAdaption);
// Apply bias
float fReferenceDepth = vShadowCoord.z - fAdaptedBias;
// Sample random 2D matrix
float4 vRotation = tex2D(ditherSampler, TexCoord * g_fResolution / 32.0f) * 2.0f - 1.0f;
float2x2 mRotation = float2x2(vRotation.xy, vRotation.zw);
float fShadow = -1.f;
float fSampleWeight = 1.f / 6;
// Sample
for(int i = 0; i < 12; )
{
float4 fSampleDepth;
// Vectorize occlusion code
[unroll] for(int j = 0; j < 4; j++, i++)
{
// Compute some point around this pixel
float2 vSampleOffset = fScaledRadius * mul(s_vShadowDisc[i], mRotation);
// Compute depth delta
float fSampleDeltaDepth = dot(vSampleOffset * vShadowCoordDeltaDepth, 1.f);
// Sample shadow map
fSampleDepth[j] = tex2D(shadowMapSampler, vShadowCoordProj + vSampleOffset).x - fSampleDeltaDepth;
}
// Compare shadow map depth with pixel depth
// (fSampleDepth < fReferenceDepth)
float4 fOcclusion = saturate(fAdaptedBlurSharpness * (fReferenceDepth - fSampleDepth));
// Sum up samples
fShadow += dot(fOcclusion, fSampleWeight);
}
// Write to intermediate buffer
return (1.0f - fShadow); // * float4(g_fSplit == float3(0, 1, 2) || g_fSplit == float3(3, 4, 5), 1.0f);
}

View File

@@ -0,0 +1,46 @@
float4 g_fResolution : register(c0);
float3 g_vLightDir : register(c1);
sampler2D tex : register(s0);
sampler1D dif : register(s2);
sampler1D spec : register(s3);
sampler2D shadowSampler : register(s4);
sampler2D depthSampler : register(s5);
static float4 g_fSpecularPower = {0.85f, 0.85f, 0.85f, 0.85f};
struct psIn
{
float4 c : COLOR0;
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
float4 ps_main(psIn i):color
{
// Shadow AA
float2 sc = i.s.xy / i.s.w;
float aa = abs( tex2D(depthSampler, sc).x - i.s.z );
float2 ddaa = float2(ddx(aa), ddy(aa));
float2 aaetc = sign(-ddaa) * g_fResolution.zw;
sc += aaetc * saturate(4.f * aa);
float4 fColor = i.c * tex2D( tex, i.t );
float fS= 0.125f + 0.875f * tex2D(shadowSampler, sc);
// Lighting
fColor.xyz *= tex1D(dif, fS * ( 0.5f + 0.5f * dot( i.n, -g_vLightDir) ));
// Specular highlights
float3 h = normalize( normalize(i.v) + -g_vLightDir );
float s = dot(i.n, h);
fColor.xyz += g_fSpecularPower * tex1D(spec, fS * ( 0.5f + 0.5f * s ) );
// Red-only glow
// fColor.a = saturate(fColor.a + 1.f - fColor.r);
return fColor;
}

View File

@@ -0,0 +1,56 @@
float3 lightDir : register(c1);
float3 viewDir : register(c4);
float3 passID2expIsLast : register(c23);
sampler2D colorSampler : register(s0);
sampler2D depthSampler : register(s1);
// Tweakables
static float4 g_fRayColor = float4(0.9f, 0.8f, 0.7f, 1.0f);
static float g_fRayNearPlane = 10.0f;
static float g_fRayFarPlane = 500.0f;
static float g_fRayDensity = 0.25f;
static float g_fRayDecay = 0.9125f;
static float g_fRayAnglePersistence = 4.f;
float4 ps_ray_mask(float2 TexCoord : TEXCOORD0, float2 LightPos : TEXCOORD2) : COLOR0
{
float2 d = LightPos - TexCoord;
float r = saturate( 1.f - dot(d, d) );
r *= saturate( g_fRayAnglePersistence * dot(-lightDir, viewDir) );
float m = tex2D(depthSampler, TexCoord).x;
m = saturate( (m - g_fRayNearPlane) / (g_fRayFarPlane - g_fRayNearPlane) );
// m = saturate(1.f - m);
// float2 p = TexCoord * 2.0f - 1.0f;
// float b = saturate( 1.0f - 0.7071f * dot(p, p) );
return /* b */ m * r * g_fRayColor;
}
// Pixel shader
float4 ps_ray_extrude(float2 TexCoord : TEXCOORD0, float2 LightPos : TEXCOORD2) : COLOR0
{
float2 s = g_fRayDensity / (passID2expIsLast.y) * (LightPos - TexCoord) / 8.f;
float4 r = 0.f, ro = 0.f, rm = 0.f, rd = .125f;
float2 c = TexCoord;
for(int i = 0; i < 8; i++)
{
float4 rs = tex2D(colorSampler, c);
ro = (i == 0) ? rs : ro;
rm = max(rs, rm);
rs.xyz = rm.xyz;
r += rs * rd;
rd.xyz *= (float3)g_fRayDecay;
c += s;
}
r.a = min(ro.a, r.a);
return r * saturate(1.f - passID2expIsLast.z * r.a);
}

View File

@@ -0,0 +1,80 @@
float3 g_vLightDir : register(c1); // = normalize( float3(1.f,-3.f,-2.f) );
float3 g_fTime : register(c3);
sampler3D randomSampler : register(s0);
static float4 g_fSky = float4(0.392f, 0.502f, 0.702f, 0.7f);
static float4 g_fHaze = float4(0.765f, 0.808f, 0.871f, -0.3f);
//static float4 g_fAbyss = float4(0.01f, 0.01f, 0.04f, -1.0f);
static float g_fSunSize = .0025f;
static float g_fCoronaSize = .005f;
static float4 g_fSunColor = float4(0.925f, 1.0f, 0.75f, 1.f);
float4 clouds(float3 d, float4 color)
{
float3 t = float3(g_fTime.x*0.001, 0, 0);
float3 bumpOffset = float3(0.f, .07f, 0.f);
float3 d1 = normalize(d + bumpOffset), d2 = normalize(d + cross(bumpOffset, d));
float4 cloud = tex3D(randomSampler, float3(0.2,0.6,0.2) * d);
float4 cloud1 = tex3D(randomSampler, float3(0.2,0.6,0.2) * d1);
float4 cloud2 = tex3D(randomSampler, float3(0.2,0.6,0.2) * d2);
float cover = g_fTime.z;
float3 smoothAlpha = float3(cloud.a, cloud1.a, cloud2.a);
smoothAlpha = saturate( smoothAlpha - max(cover - smoothAlpha, 0.f) * .25f );
float bumpDepth = .5f;
float3 cloudel = d + d * (bumpDepth - bumpDepth * smoothAlpha.x);
float3 cloudel1 = d1 + d1 * (bumpDepth - bumpDepth * smoothAlpha.y);
float3 cloudel2 = d2 + d2 * (bumpDepth - bumpDepth * smoothAlpha.z);
float3 normal = normalize( cross(cloudel1 - cloudel, cloudel2 - cloudel) );
cloud *= 0.5;
cloud += tex3D(randomSampler, float3(0.4,1.2,0.4) * (d + t)) * 0.25;
cloud += tex3D(randomSampler, float3(0.8,2.4,0.8) * d) * 0.125;
cloud += tex3D(randomSampler, float3(1.6,4.8,1.6) * (d + t)) * 0.0625;
cloud.a = saturate( saturate( cloud.a * 2.5f ) - max(cover - cloud.a, 0.f) * 25.f );
float3 sdd = d + g_vLightDir;
float sd = dot(sdd, sdd);
float s = g_fCoronaSize / ( g_fCoronaSize + saturate(sd - g_fSunSize) );
float light = 0.5f + 0.7f * dot(normal, -g_vLightDir);
float3 stormNormal = normalize(cloud.xyz * 2 - 1);
float stormLight = 0.5f + 0.5f * dot(stormNormal, g_vLightDir);
cloud.xyz = lerp(cloud.xyz, stormLight, 0.3f * saturate(1.f - cover));
cloud.xyz = dot(cloud.xyz, .3f) + 0.1f * cloud.xyz;
cloud.xyz = 1.f - .65f * cloud.xyz * (1.f - 0.2f * cover);
cloud.xyz += 0.4f * light * saturate(cover);
cloud.xyz = cloud.a * cloud.xyz + (1 - cloud.a) * color.xyz;
cloud.xyz += (1 - 0.5f * cloud.a) * g_fSunColor.xyz * s;
float3 riseColor = float3(0.9,0.8,0) * (1 - g_fTime.z * 0.5);
float a = pow( max(0, dot(g_vLightDir, -d)), 2 ) * 0.7 * (1.f - .9f * abs(g_vLightDir.y));
float risefac = -1.f - g_vLightDir.y;
if (sign(dot(g_vLightDir, d)) > 0)
risefac = -1.0;
cloud.xyz += max( 0, a * lerp( riseColor, 1, min(1.0, risefac*1.5) + risefac ) );
cloud.a = 1.f;
return cloud;
}
float4 ps_main(float3 w : TEXCOORD4):color
{
float4 fColor = g_fSky;
float3 d = normalize(w);
float g1 = saturate( (d.y - g_fSky.w) / (g_fHaze.w - g_fSky.w) );
fColor.xyz = lerp(g_fSky.xyz, g_fHaze.xyz, g1);
return clouds(d, fColor);
}

View File

@@ -0,0 +1,115 @@
float4 g_fResolution : register(c0);
float3 g_vLightDir : register(c1);
sampler3D randomSampler : register(s0);
sampler1D diffSampler : register(s2);
sampler1D specSampler : register(s3);
sampler2D shadowSampler : register(s4);
sampler2D depthSampler : register(s5);
static float g_fTileHardness = .6f;
static float g_fTileDepth = 8.f;
static float g_fBumpDepth = .75f;
static float g_fTexScale = 1.f;
static float g_fSpecularPower = 0.5f;
static float g_fSpecularHardness = 32.f;
struct psIn
{
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
float rand_val(float4 r)
{
float lr = dot(r, float4(10.f, 100.f, 1000.f, 1.f));
return lr / 1111.f;
}
float noise(float3 t)
{
float4 r = tex3D(randomSampler, .03125f * t);
return rand_val(r)* 2.f - 1.f;
}
float noise_grad(float3 t, float3 dtX, float3 dtY)
{
float4 r = tex3Dgrad(randomSampler, .03125f * t, .0625f * dtX, .0625f * dtY);
return rand_val(r)* 2.f - 1.f;
}
float abs_noise(float3 t)
{
return abs( noise(t) );
}
float abs_noise_grad(float3 t, float3 dtX, float3 dtY)
{
return abs( noise_grad(t, dtX, dtY) );
}
float4 ps_main(psIn i) : COLOR0
{
float3 t = i.w * g_fTexScale;
float3 pw = i.w.xxz; pw.y = 0.0f; // i.w - i.n * dot(i.w, i.n);
float3 pt = pw * g_fTexScale + .5f;
float3 tt = floor(pt);
float3 dttX = ddx(pt);
float3 dttY = ddy(pt);
// Texturing
float3 fColor = 0.15f * saturate( dot(1.f, abs(dttX) + abs(dttY)) );
fColor += abs_noise_grad(tt, dttX, dttY);
fColor += abs_noise(2.f * t) / 8.f;
fColor += noise(4.f * t) / 8.f;
float fDetail = noise(8.f * t) / 16.f;
fDetail += noise(16.f * t) / 16.f;
fDetail += noise(32.f * t) / 32.f;
fDetail += noise(128.f * t) / 32.f;
fDetail += noise(1024.f * t) / 32.f;
fColor += fDetail;
// Contrast
fColor = 1.0f - saturate(fColor);
fColor *= fColor;
fColor = 1.0f - fColor;
// Super tile
float3 tb = 2.f * frac(pt) - 1.f;
float3 te = tb * tb; // ^2
te *= te; // ^4
te *= te; // ^8
float tdd = saturate(1.f - 2.f * fwidth(pt));
float td = saturate( dot(tdd, te) );
float3 tc = 1.f - td;
float3 ti = saturate(td - g_fTileHardness);
// Bump mapping
float3 n = normalize(i.n + g_fBumpDepth * g_fTileDepth * ti * tb);
// Shadow (AA)
float2 sc = i.s.xy / i.s.w;
float aa = abs( tex2D(depthSampler, sc).x - i.s.z );
float2 ddaa = float2(ddx(aa), ddy(aa));
float2 aaetc = sign(-ddaa) * g_fResolution.zw;
sc += aaetc * saturate(4.f * aa);
float fShadow = 0.2f + 0.8f * (float)tex2D(shadowSampler, sc);
// Diffuse light
fColor *= tex1D( diffSampler, fShadow * (0.5f + 0.5f * dot(n, -g_vLightDir)) ).xyz;
// Specular highlights
float3 h = normalize( normalize(i.v) + -g_vLightDir );
float s = 0.5f + 0.5f * dot(n, h);
s *= saturate(1.f + g_fBumpDepth * fDetail);
fColor += g_fSpecularPower * tex1D(specSampler, fShadow * s).xyz; // pow(s, g_fSpecularHardness)
// Tile borders
fColor *= tc;
return float4(fColor, 1.0f);
}

View File

@@ -0,0 +1,43 @@
float4 g_fResolution : register(c0);
float3 g_vLightDir : register(c1);
sampler1D dif : register(s2);
sampler1D spec : register(s3);
sampler2D shadowSampler : register(s4);
sampler2D depthSampler : register(s5);
static float4 g_fSpecularPower = {1.15f, 1.05f, 1.0f, 1.25f};
struct psIn
{
float4 c : COLOR0;
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
float4 ps_main(psIn i):color
{
// Shadow AA
float2 sc = i.s.xy / i.s.w;
float aa = abs( tex2D(depthSampler, sc).x - i.s.z );
float2 ddaa = float2(ddx(aa), ddy(aa));
float2 aaetc = sign(-ddaa) * g_fResolution.zw;
sc += aaetc * saturate(4.f * aa);
float3 fColor = float3( 0.25f, 0.3f, 0.4f );
float fS= 0.2f + 0.8f * tex2D(shadowSampler, sc);
float3 n = normalize(i.n);
// Lighting
fColor.xyz *= tex1D( dif, fS * ( 0.5f + 0.5f * dot( n, -g_vLightDir) ) );
// Specular highlights
float3 h = normalize( normalize(i.v) + -g_vLightDir );
float s = dot( n, h);
fColor += g_fSpecularPower * tex1D(spec, fS * ( 0.5f + 0.5f * s ) );
return float4(fColor, 1.0f);
}

View File

@@ -0,0 +1,99 @@
float4 g_fResolution : register(c0);
float3 g_vLightDir : register(c1);
float4 g_fTime : register(c3);
sampler3D randomSampler : register(s0);
sampler2D tex : register(s1);
sampler1D diffSampler : register(s2);
sampler1D specSampler : register(s3);
sampler2D shadowSampler : register(s4);
sampler2D depthSampler : register(s5);
static float g_fVariation = .1f;
static float g_fBumpDepth = .02f;
static float g_fBumpFalloff = 256.f;
static float g_fTexScale = 1.f;
static float g_fSpecularPower = 0.2f;
static float g_fSpecularHardness = 32.f;
struct psIn
{
float4 c : COLOR0;
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
float noise(float3 t)
{
float4 r = tex3D(randomSampler, .03125f * t);
float lr = dot(r, float4(1.f, 10.f, 100.f, 1000.f));
return lr * 2.f / 1111.f - 1.f;
}
float abs_noise(float3 t) { return abs( noise(t) ); }
float4 ps_main(psIn i) : COLOR0
{
float3 t = i.w * g_fTexScale;
float4 fColor = i.c;
float fStruct = noise(t) / 2.f;
fStruct += noise(4.f * t) / 4.f;
fStruct += noise(8.f * t) / 8.f;
fStruct += noise(16.f * t) / 16.f;
fStruct += noise(32.f * t) / 32.f;
fColor.xyz *= (1.f - g_fVariation) + g_fVariation * fStruct;
float fDetail = noise(81.f * t) / 2.f;
fDetail += noise(243.f * t) / 4.f;
fDetail += noise(729.f * t) / 8.f;
// Bump mapping
// float ddf = g_fBumpFalloff * dot(fwidth(i.w), 1.f);
float3 pp = i.w + i.n * g_fBumpDepth * (fStruct + fDetail / 16.f); // (1.f + ddf)
float3 ddppx = ddx(pp);
float3 ddppy = ddy(pp);
float3 n = normalize( cross(ddppx, ddppy) );
// calculate coloration (hypno toad commands you!)
float3 wrd= float3(
round( i.w.x / g_fTime.w ) * g_fTime.w,
round( i.w.y / g_fTime.w ) * g_fTime.w,
round( i.w.z / g_fTime.w ) * g_fTime.w );
float fOffset= 33.0f - wrd.z / 8.0f - g_fTime / 56.0f;
if( fOffset < 0.0f )
{
fOffset= 0.0f;
}
float plasmaVal =
sin( sin ( 0.021f * g_fTime + wrd.y * 0.23f ) * 0.7f + wrd.x * 0.09f )
+ sin( 0.009f * g_fTime + sin ( wrd.z * 0.35f ) * 0.9f + wrd.y * 0.47f )
+ sin( sin ( 0.013f * g_fTime + wrd.x * 0.17f ) * 1.3f + wrd.z * 0.13f )
+ fOffset;
if( plasmaVal > 0.0f && plasmaVal < 1.0f )
{
fColor.xyz= tex2D( tex, plasmaVal ).xyz;
}
// Shadow (AA)
float2 sc = i.s.xy / i.s.w;
float aa = abs( tex2D(depthSampler, sc).x - i.s.z );
float2 ddaa = float2(ddx(aa), ddy(aa));
float2 aaetc = sign(-ddaa) * g_fResolution.zw;
sc += aaetc * saturate(4.f * aa);
float fShadow = 0.2f + 0.8f * (float)tex2D(shadowSampler, sc);
// Diffuse light
fColor.xyz *= tex1D( diffSampler, fShadow * (0.5f + 0.5f * dot(n, -g_vLightDir)) ).xyz;
// Specular highlights
float3 h = normalize( normalize(i.v) + -g_vLightDir );
float s = saturate( dot(n, h) );
fColor.xyz += g_fSpecularPower * tex1D(specSampler, fShadow * s).xyz;
return fColor;
}

View File

@@ -0,0 +1,440 @@
CSPEED= 1.0
OSPEED= 1.0
CTIME= 0.0
OTIME= 1.0
CAM= 10
OBJ= 10 1
TICK= 16
OBJ= 9 2
TICK= 16
OBJ= 10 2
TICK= 16
OBJ= 11 2
TICK= 16
OBJ= 12 2
TICK= 16
OBJ= 13 2
TICK= 16
OBJ= 14 1
TICK= 16
OBJ= 14 0
TICK= 16
#Start-Main
OBJ= 16 2
CTIME= 0.0
OTIME= 0.0
CAM= 11
TICK= 4
CAM= 12
TICK= 8
CAM= 13
TICK= 8
CTIME= 5.0
CAM= 14
TICK= 8
CAM= 11
TICK= 8
CAM= 12
TICK= 8
CAM= 13
TICK= 8
CTIME= 14.0
CSPEED= -6.0
CAM= 14
TICK= 12
CTIME= 0.0
OTIME= 0.0
CSPEED= 1.0
OSPEED= 8.0
CAM= 11
TICK= 16
CSPEED= 2.0
CAM= 12
TICK= 16
CAM= 13
TICK= 16
CAM= 14
TICK= 20
CTIME= 0.0
OTIME= 0.0
CSPEED= 1.0
OSPEED= 0.0
OBJ= 18 2
CAM= 0
TICK= 12
CTIME= 3.0
CAM= 17
TICK= 16
CTIME= 2.0
CAM= 15
TICK= 16
CTIME= 5.0
CAM= 14
TICK= 20
CTIME= 0.0
OSPEED= 1.0
CAM= 11
TICK= 12
CTIME= 0.0
OSPEED= 4.0
CSPEED= 4.0
CAM= 12
TICK= 16
CTIME= 0.0
OSPEED= 4.0
CSPEED= 8.0
CAM= 13
TICK= 12
CSPEED= -8.0
TICK= 8
CSPEED= 8.0
OSPEED= 8.0
CAM= 11
TICK= 16
CTIME= 0.0
OTIME= 0.0
CSPEED= 1.0
OSPEED= 0.0
OBJ= 7 2
CAM= 6
TICK= 24
CTIME= 6.0
OTIME= 0.0
CSPEED= -1.0
OSPEED= 1.0
CAM= 7
TICK= 32
CTIME= 0.0
CSPEED= 1.0
CAM= 8
TICK= 32
CTIME= 0.0
CAM= 6
TICK= 40
CTIME= 6.0
CSPEED= -1.5
CAM= 7
TICK= 24
CTIME= 6.0
CSPEED= -2.0
CAM= 8
TICK= 16
CTIME= 12.0
CSPEED= 1.0
CAM= 16
TICK= 24
CSPEED= 2.0
OSPEED= 2.0
OBJ= 16 2
CAM= 11
TICK= 16
CTIME= 0.0
CAM= 12
TICK= 16
CSPEED= -2.0
OSPEED= 2.0
OBJ= 18 2
CAM= 11
TICK= 16
CSPEED= 4.0
OSPEED= 8.0
CTIME= 0.0
CAM= 13
TICK= 12
CTIME= 0.0
OTIME= 0.0
CSPEED= 1.0
OSPEED= 1.0
OBJ= 0 7
CAM= 0
TICK= 32
CAM= 1
TICK= 32
CAM= 2
TICK= 32
CAM= 4
TICK= 32
CTIME= 6.0
CSPEED= -1.0
CAM= 5
TICK= 32
CTIME= 3.25
CAM= 4
TICK= 32
CSPEED= -2.0
OSPEED= 2.0
CAM= 1
TICK= 32
CTIME= 0.0
CSPEED= 0.25
OTIME= -2.0
OSPEED= 0.25
CAM= 3
TICK= 24
CSPEED= 1.0
OSPEED= 1.0
TICK= 4
CSPEED= 2.0
OSPEED= 2.0
TICK= 8
CTIME= 0.0
OTIME= 24.0
CSPEED= 1.0
OSPEED= 0.0
OBJ= 30 4
CAM= 23
TICK= 16
OTIME= 0.0
TICK= 2
OTIME= 24.0
TICK= 6
OTIME= 0.0
TICK= 1
OTIME= 24.0
TICK= 1
OTIME= 0.0
TICK= 1
OTIME= 24.0
TICK= 5
OTIME= 0.0
TICK= 2
OTIME= 24.0
TICK= 6
OSPEED= 16.0
TICK= 8
OSPEED= 1.0
TICK= 16
CTIME= 8.0
CSPEED= 1.0
CAM= 12
TICK= 8
CSPEED= -4.0
OSPEED= 8.0
TICK= 8
CAM= 13
TICK= 8
CSPEED= 4.0
TICK= 16
CSPEED= 2.0
OSPEED= 2.0
CAM= 11
TICK= 48
CSPEED= 1.0
CTIME= 4.0
CAM= 14
TICK= 32
CTIME= 2.0
CAM= 15
TICK= 32
CTIME= 13.5
CSPEED= 0.5
CAM= 17
TICK= 32
CTIME= 0.0
OTIME= 24.0
CSPEED= 1.0
OSPEED= 0.0
OBJ= 20 6
CAM= 11
TICK= 32
CSPEED= 2.0
CTIME= 0.0
CAM= 12
TICK= 32
CTIME= 0.0
CAM= 13
TICK= 32
CTIME= 0.0
CAM= 14
TICK= 32
CTIME= 0.0
CAM= 15
TICK= 32
CTIME= 0.0
CAM= 16
TICK= 32
CTIME= -0.5
CAM= 17
TICK= 64
CTIME= 0.0
OTIME= 0.0
CSPEED= 1.0
OSPEED= 1.0
OBJ= 26 4
CAM= 18
TICK= 32
CAM= 19
TICK= 32
CTIME= -0.125
CSPEED= 0.25
CAM= 20
TICK= 32
CTIME= 0.0
CSPEED= 1.0
CAM= 22
TICK= 32
CTIME= 0.0
CSPEED= 1.0
CAM= 21
TICK= 24
OSPEED= -2.0
TICK= 12
CSPEED= -2.0
CAM= 18
TICK= 24
CSPEED= 4.0
OSPEED= -2.0
TICK= 8
CTIME= 0.0
CSPEED= 2.0
OSPEED= 1.0
CAM= 19
TICK= 24
CSPEED= 4.0
OSPEED= 4.0
TICK= 8
CTIME= 2.0
CSPEED= -1.0
OSPEED= -1.0
CAM= 22
TICK= 24
CSPEED= 2.0
OSPEED= 2.0
TICK= 8
CSPEED= 1.0
OSPEED= 1.0
CTIME= 0.0
OTIME= 0.0
OBJ= 16 2
CAM= 11
TICK= 2
OBJ= 18 2
CAM= 11
TICK= 2
OBJ= 7 2
CAM= 6
TICK= 2
OBJ= 0 7
CAM= 0
TICK= 2
OBJ= 30 4
CAM= 23
TICK= 2
OBJ= 20 6
CAM= 11
TICK= 2
OBJ= 26 4
CAM= 18
TICK= 2
CAM= 10
OBJ= 13 2
TICK= 2
OBJ= 13 1
TICK= 2
OBJ= 14 0
TICK= 32
QUIT= 0
SKIP= 0

View File

@@ -0,0 +1,166 @@
Text=imagine
Pos= -45 301 -50
Scale= 48 48 32
Rot= -90 0 0
Move= 0 -400 0
Time= 3530 1000
Text=Music
Pos= 152 1 -208.5
Rot= -90 0 90
Scale= 6 6 8
Move= -5 0 0
Time= -77000 1500
Text=Turri
Pos= 153 12 -207
Rot= -90 0 0
Scale= 6 6 6
Move= 0.0 -32 0
Time= -77200 600
Text=Code
Pos= 125 1 -177.75
Rot= -90 0 90
Scale= 8 8 8
Move= -5 0 0
Time= -79500 1500
Text=CodingCat
Pos= 126 15 -176
Rot= -90 0 0
Scale= 6 6 6
Move= 0.0 -32 0
Time= -79700 600
Text=TGGC
Pos= 126 10.125 -175
Move= 0.0 -32 0
Time= -79800 600
Text=Hel
Pos= 126 5.25 -174
Move= 0.0 -32 0
Time= -79900 600
Text=obey
Scale= 4 4 2
Pos= 33 18.25 -77
Rot= 90 0 0
Move= 2 0 0
Time= 39000 2000
Text=conform
Rot= 0 0 90
Pos= 9.5 20 -61.25
Move= 0 0 2
Time= 40000 2000
Text=work
Rot= 0 0 0
Pos= 5 24.5 -103
Move= 0 0 2
Time= 43000 2000
Text=consume
Rot= 0 0 90
Pos= 33 4 -126.3
Move= 0 0 2
Time= 44000 2000
Text=no
Rot= 90 0 90
Pos= -15.4 8 -53
Move= 2 0 0
Time= 34700 300
Text=creativity
Pos= -15.4 8 -56
Move= -1 0 0
Time= 34700 300
Text=no
Pos= -13 16 -36
Move= 2 0 0
Time= 33500 300
Text=imagination
Pos= -13 16 -39
Move= -1 0 0
Time= 33500 300
Text=every day is the same day
Pos= 15.25 1 -37
Rot= -90 0 90
Move= -2 0 0
Time= 34000 2000
Text=wake up
Pos= -97.5 3 -42
Rot= 90 0 90
Scale= 4 4 2
Move= 2 0 0
Time= 101500 2000
Text= be
Pos= -79.5 18.2 -48.75
Rot= 90 0 0
Scale= 4 4 2
Move= 2 0 0
Time= 98000 2000
Text= smart
Pos= -79.5 16 -48.75
Rot= 90 0 0
Scale= 4 4 2
Move= 2 0 0
Time= 97500 2000
Text= be
Pos= -98 6 -55.5
Rot= 90 0 25
Scale= 4 4 2
Move= 2 0 0
Time= 93500 2000
Text= fancy
Pos= -98.2 9 -61.5
Rot= 0 0 -20
Scale= 4 4 2
Move= 0 0 2
Time= 93000 2000
Text= be
Pos= -118 3 -34.5
Rot= 180 0 0
Scale= 4 4 2
Move= 0 0 2
Time= 80500 2000
Text= awesome
Pos= -126.25 1.75 -34.5
Rot= 180 0 90
Scale= 4 4 2
Move= 0 0 2
Time= 81000 2000
Text=be
Pos= -22 -16 36
Scale= 4 4 4
Rot= 0 0 0
Move= 0 88 0
Time= 255400 1200
Text=like
Pos= -22 -19 36
Scale= 4 4 4
Rot= 0 0 0
Move= 0 88 0
Time= 255500 1200

View File

@@ -0,0 +1,29 @@
float4x4 matWVP : register(c0);
float4 res : register(c5);
float3 viewPos : register(c4);
float3 lightDir : register(c6);
float3x3 viewMatrixRotInv : register(c7);
float4 projScaleOffsetInv : register(c11);
struct vsOut
{
float4 p : POSITION;
float2 t : TEXCOORD0;
float3 e : TEXCOORD1;
float2 l : TEXCOORD2;
};
vsOut vs_main(float4 p : POSITION)
{
vsOut o = { p, p.xy, p.xyw, (float2)0.f };
o.p.xy += float2(-1.f, 1.f) * res.zw;
o.t = o.t * float2(.5f, -.5f) + .5f;
o.e.xy = o.e.xy * projScaleOffsetInv.xy + projScaleOffsetInv.zw;
o.e = mul(o.e, viewMatrixRotInv);
o.e.xy += float2(-1.f, 1.f) * res.zw;
// Compute light position
float4 lightPos = mul( float4(viewPos - lightDir, 1.0f), matWVP );
o.l = clamp( lightPos.xy / abs(lightPos.w), -1.f, 1.f );
o.l = o.l * float2(.5f, -.5f) + .5f;
return o;
};

View File

@@ -0,0 +1,51 @@
float4x4 matWVP : register(c0);
float4x4 matWorld : register(c12);
float4x4 matWorldI : register(c16);
float3 viewPos : register(c4);
float3 viewDir : register(c10);
float4 res : register(c5);
struct vsIn
{
float4 p : POSITION;
float3 n : NORMAL;
float4 c : COLOR;
float2 t : TEXCOORD;
};
struct vsOut
{
float4 p : POSITION;
float4 c : COLOR0;
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
vsOut vs_main(vsIn i)
{
vsOut o;
// Basic transformation of untransformed vertex into clip-space
o.p= mul(i.p, matWVP);
// No scaling or translation is done, simply assign them and let the GPU interpolate
o.c = i.c;
o.t = i.t;
// Trasform to world space
o.w= mul(i.p, matWorld).xyz;
o.n= mul(i.n, transpose((float3x3)matWorldI));
//OUT.normal = mul(matWorldIT, IN.normal);
// Calculate the view vector
o.v= viewPos - o.w;
// (Pre-proj biased screen texcoords, unscaled z, w)
o.s = o.p;
o.s.xy = o.s.xy * float2(.5f, -.5f) + o.s.w * (.5f + .5f * res.zw);
o.s.z = dot(o.w - viewPos, viewDir);
return o;
};

View File

@@ -0,0 +1,25 @@
float4x4 matWVP : register(c0);
float3 viewPos : register(c4);
struct vsOut
{
float4 p : POSITION;
float4 s : TEXCOORD3;
float3 w : TEXCOORD4;
};
vsOut vs_main(float4 p : POSITION)
{
vsOut o;
o.p = p;
o.p.xyz += viewPos;
o.p= mul(o.p, matWVP);
o.p.z= (1.f - 4.8e-6f) * o.p.w;
o.w= p.xyz;
o.s= 4.e3f;
return o;
};

View File

@@ -0,0 +1,112 @@
float3 g_vLightDir : register(c1);
float g_fTime : register(c3);
sampler3D randomSampler : register(s0);
sampler1D diffSampler : register(s2);
sampler1D specSampler : register(s3);
sampler2D shadowSampler : register(s4);
static float g_fVariation = .1f;
static float g_fBumpDepth = .02f;
static float g_fBumpFalloff = 256.f;
static float g_fTexScale = 1.f;
static float g_fSpecularPower = 0.2f;
static float g_fSpecularHardness = 32.f;
struct psIn
{
float4 c : COLOR0;
float2 t : TEXCOORD0;
float3 n : TEXCOORD1;
float3 v : TEXCOORD2;
float4 s : TEXCOORD3_CENTROID;
float3 w : TEXCOORD4;
};
float3 hslToRgb(float3 color)
{
float3 result = 0;
float h = color.r;
float s = color.g;
float l = color.b;
float q,p;
if (l < 0.5)
q = l*(1+s);
else if (l >= 0.5)
q = l+s-(l*s);
p=2*l-q;
result.r=h+1.0/3.0;
result.g=h;
result.b=h-1.0/3.0;
for (int j = 0; j < 3; ++j)
{
if (result[j]<0) result[j] += 1;
if (result[j]>1) result[j] -= 1;
}
for (int i = 0; i < 3; ++i)
{
if (result[i]<1.0/6.0)
result[i]=p+((q-p)*6*result[i]);
else if (result[i]<0.5)
result[i]=q;
else if (result[i]<2.0/3.0)
result[i]=p+((q-p)*6*(2.0/3.0-result[i]));
else
result[i]=p;
}
return result;
}
float noise(float3 t)
{
float4 r = tex3D(randomSampler, .03125f * t);
float lr = dot(r, float4(1.f, 10.f, 100.f, 1000.f));
return lr * 2.f / 1111.f - 1.f;
}
float abs_noise(float3 t) { return abs( noise(t) ); }
float4 ps_main(psIn i) : COLOR0
{
float3 t = i.w * g_fTexScale;
float3 fColor = i.c;
float fStruct = noise(t) / 2.f;
fStruct += noise(4.f * t) / 4.f;
fStruct += noise(8.f * t) / 8.f;
fStruct += noise(16.f * t) / 16.f;
fStruct += noise(32.f * t) / 32.f;
fColor *= (1.f - g_fVariation) + g_fVariation * fStruct;
float fDetail = noise(81.f * t) / 2.f;
fDetail += noise(243.f * t) / 4.f;
fDetail += noise(729.f * t) / 8.f;
// Bump mapping
// float ddf = g_fBumpFalloff * dot(fwidth(i.w), 1.f);
float3 pp = i.w + i.n * g_fBumpDepth * (fStruct + fDetail / 16.f); // (1.f + ddf)
float3 ddppx = ddx(pp);
float3 ddppy = ddy(pp);
float3 n = normalize( cross(ddppx, ddppy) );
// Shadow
float fShadow = 0.2f + 0.8f * (float)tex2Dproj(shadowSampler, i.s);
// Diffuse light
fColor *= tex1D( diffSampler, fShadow * (0.5f + 0.5f * dot(n, -g_vLightDir)) ).xyz;
// Specular highlights
float3 h = normalize( normalize(i.v) + -g_vLightDir );
float s = saturate( dot(n, h) );
fColor += g_fSpecularPower * tex1D(specSampler, fShadow * s).xyz;
//return float4(fColor, 1.f);
// calculate coloration (hypno toad commands you!)
float4 plasmaVal = tex3D(randomSampler, g_fTime * 0.001 + t * 0.0025);
float plasmaPower = saturate((i.w.z - 80) + g_fTime * 15 ) * plasmaVal.a;
float3 plasmaColor = lerp(1, hslToRgb(1 + plasmaVal.rgb), plasmaPower);
return float4(fColor * plasmaColor, 1.f);
}

View File

@@ -0,0 +1,89 @@
float2 res : register(c0);
sampler2D colorSampler : register(s0);
sampler2D depthSampler : register(s1);
sampler2D blurSampler : register(s4);
// Tweakables
static float g_fRadius = 0.005f;
static float g_fLowRadiusScaling = 0.4f;
static float g_fNearPlane = 1.0f;
static float g_fFocalPlane = 8.0f;
static float g_fFarPlane = 128.0f;
static float g_fMaxDistBlur = 0.45f;
static const float2 vPoissonDisc[] = {
float2(-0.326212f, -0.40581f),
float2(-0.840144f, -0.07358f),
float2(-0.695914f, 0.457137f),
float2(-0.203345f, 0.620716f),
float2(0.96234f, -0.194983f),
float2(0.473434f, -0.480026f),
float2(0.519456f, 0.767022f),
float2(0.185461f, -0.893124f),
float2(0.507431f, 0.064425f),
float2(0.89642f, 0.412458f),
float2(-0.32194f, -0.932615f),
float2(-0.791559f, -0.59771f)
};
float4 ps_blur_intensity(float2 TexCoord : TEXCOORD0) : COLOR0
{
// Sample pixel depth
float fDepth = tex2D(depthSampler, TexCoord).x;
// Fix canvas depth
fDepth += (fDepth < 0.001f) * g_fFarPlane;
float fIntensity;
// Close-up blur
if(fDepth < g_fFocalPlane)
fIntensity = (fDepth - g_fFocalPlane) / (g_fFocalPlane - g_fNearPlane);
// Distance blur
else
fIntensity = min((fDepth - g_fFocalPlane) / (g_fFarPlane - g_fFocalPlane), g_fMaxDistBlur);
// Bias to valid range
return float4(
tex2D(colorSampler, TexCoord).xyz,
0.5f + 0.5f * fIntensity);
}
float4 ps_main(float2 TexCoord : TEXCOORD0) : COLOR0
{
// Center pixel depth
float fDepth = tex2D(colorSampler, TexCoord).w;
// Scale sampling radius
float fRadius = abs(2.0f * g_fRadius * fDepth - g_fRadius);
float fLowRadius = fRadius * g_fLowRadiusScaling;
float4 fColor = 0.0f;
float fAmount = 0.0f;
// Loop over samples
for(int i = 0; i < 12; i++)
{
// Sample on poisson disc
float2 fHighSampleTexCoord = TexCoord + fRadius * vPoissonDisc[i];
float2 fLowSampleTexCoord = TexCoord + fLowRadius * vPoissonDisc[i];
// Sample blurred and unblurred texture
float4 fHighSample = tex2D(colorSampler, fHighSampleTexCoord);
float4 fLowSample = tex2D(blurSampler, fLowSampleTexCoord);
// Blend between blurred and unblurred texture
float fSampleBlurIntensity = abs(2.0f * fHighSample.w - 1.0f);
float4 fSample = lerp(fHighSample, fLowSample, fSampleBlurIntensity);
// Compute smart weight to avoid cross-edge leaking
float fWeight = fSample.w < fDepth ? abs(2.0f * fSample.w - 1.0f) : 1.0f;
// Sum up
fColor += fSample * fWeight;
fAmount += fWeight;
}
return fColor / fAmount;
}