Advertisement
CapsAdmin

Untitled

Feb 22nd, 2013
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.97 KB | None | 0 0
  1. local fade_speed = 5
  2.  
  3. -- if you're not in an area, this will apply instead (like if you're in space and not on a planet)
  4. local fallback =
  5. {
  6.     color_mul = Vector(1,1,1),
  7.     color_add = Vector(0,0,0),
  8.     color_brightness = 0,
  9.     color_contrast = 1,
  10.     color_saturation = 2,
  11. }
  12.  
  13. local locations =
  14. {
  15.     {
  16.         location = Vector(7625.0327148438, 7992.2504882812, -7691.0395507812),
  17.         radius = 500,
  18.        
  19.         params =
  20.         {
  21.             color_mul = Vector(1,1,1),
  22.             color_add = Vector(0,0,0),
  23.            
  24.             color_brightness = 0.5,
  25.             color_contrast = 1,
  26.             color_saturation = 1,
  27.            
  28.             bloom_multiply = 0.1,
  29.             bloom_darken = 0,
  30.             bloom_color_mul = Vector(1,1,1),
  31.             bloom_size = Vector(1,1),
  32.             bloom_saturation = 10,
  33.             bloom_passes = 1,
  34.            
  35.             sharpen_contrast = 5,
  36.             sharpen_distance = 5,
  37.            
  38.             motionblur_draw_alpha = 0.5,
  39.         }
  40.     },
  41.    
  42.     {
  43.         location = Vector(10274.5546875, 7951.13671875, -7501.1787109375),
  44.         radius = 500,
  45.        
  46.         params =
  47.         {
  48.             color_mul = Vector(1,1,1),
  49.             color_add = Vector(0,0,0),
  50.            
  51.             color_brightness = 0.5,
  52.             color_contrast = 1,
  53.             color_saturation = -1,
  54.            
  55.             bloom_multiply = 0.1,
  56.             bloom_darken = 0,
  57.             bloom_color_mul = Vector(1,1,1),
  58.             bloom_size = Vector(1,1),
  59.             bloom_saturation = 10,
  60.             bloom_passes = 1,
  61.            
  62.             sharpen_contrast = 5,
  63.             sharpen_distance = 5,
  64.            
  65.             motionblur_draw_alpha = 0.5,
  66.         }
  67.     },
  68. }
  69.  
  70. table.insert(locations, 1, {params = fallback})
  71.  
  72. for key, data in pairs(locations) do
  73.     local temp = {}
  74.    
  75.     temp.params = {}
  76.     temp.radius = data.radius
  77.     temp.location = data.location
  78.    
  79.     temp.params.color = {}
  80.     local p = temp.params.color
  81.    
  82.     p["$pp_colour_addr"] = data.params.color_add.r or 0
  83.     p["$pp_colour_addg"] = data.params.color_add.g or 0
  84.     p["$pp_colour_addb"] = data.params.color_add.b or 0
  85.    
  86.     p["$pp_colour_mulr"] = data.params.color_mul.r or 1
  87.     p["$pp_colour_mulg"] = data.params.color_mul.g or 1
  88.     p["$pp_colour_mulb"] = data.params.color_mul.b or 1
  89.    
  90.     p["$pp_colour_brightness"] = data.params.color_brightness or 0
  91.     p["$pp_colour_contrast"] = data.params.color_contrast or 1
  92.     p["$pp_colour_colour"] = data.params.color_saturation or 1
  93.    
  94.     temp.params.bloom = {}
  95.     local p = temp.params.bloom
  96.    
  97.     data.params.bloom_size = data.params.bloom_size or Vector(1,1)
  98.     data.params.bloom_color_mul = data.params.bloom_color_mul or Vector(1,1,1)
  99.    
  100.     p[1] = data.params.bloom_darken or 1
  101.     p[2] = data.params.bloom_multiply or 1
  102.     p[3] = data.params.bloom_size.x
  103.     p[4] = data.params.bloom_size.y
  104.     p[5] = data.params.bloom_passes or 1
  105.     p[6] = data.params.bloom_saturation or 1
  106.     p[7] = data.params.bloom_color_mul.r
  107.     p[8] = data.params.bloom_color_mul.g
  108.     p[9] = data.params.bloom_color_mul.b
  109.    
  110.     temp.params.sharpen = {}
  111.     local p = temp.params.sharpen
  112.    
  113.     p[1] = data.params.sharpen_contrast or 0
  114.     p[2] = data.params.sharpen_distance or 0
  115.    
  116.     temp.params.motionblur = {}
  117.     local p = temp.params.motionblur
  118.    
  119.     p[1] = data.params.motionblur_add_alpha or 0
  120.     p[2] = data.params.motionblur_draw_alpha or 0
  121.     p[3] = 0 -- delay... is this useful for anything?
  122.    
  123.     locations[key] = temp
  124. end
  125.  
  126. local origin = Vector()
  127. local params = {}
  128.  
  129. hook.Add("RenderScene", "planet_colors", function(pos) origin = pos end)
  130.  
  131. hook.Add("RenderScreenspaceEffects", "planet_colors", function()
  132.  
  133.     local delta = FrameTime() * fade_speed
  134.     local cur_params = locations[1].params
  135.    
  136.     for key, data in pairs(locations) do
  137.         if data.location and data.location:Distance(origin) < data.radius then
  138.             cur_params = data.params
  139.             break
  140.         end
  141.     end
  142.        
  143.     for mod, pp in pairs(cur_params) do
  144.         params[mod] = params[mod] or {}
  145.         for key, cur in pairs(pp) do
  146.             local prev = params[mod][key] or 0
  147.             params[mod][key] = (prev + (cur - prev) * delta)
  148.         end
  149.     end
  150.    
  151.     if params.bloom[1] ~= 1 and params.bloom[2] ~= 0 then      
  152.         DrawBloom(unpack(params.bloom))
  153.     end
  154.    
  155.     if params.sharpen[1] ~= 0 then
  156.         DrawSharpen(unpack(params.sharpen))
  157.     end
  158.    
  159.     if params.motionblur[2] ~= 0 then
  160.         DrawMotionBlur(unpack(params.motionblur))
  161.     end
  162.    
  163.     DrawColorModify(params.color)
  164.  
  165. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement