mirror of
https://github.com/imperialsushi/gutterball-3.git
synced 2025-06-15 05:07:42 +00:00
New Version 1.6
New 125 balls & powerups. Improved graphics.
This commit is contained in:
parent
b35433ae45
commit
71779ef7ac
9413 changed files with 193360 additions and 264803 deletions
|
@ -0,0 +1,107 @@
|
|||
|
||||
#pragma strict
|
||||
|
||||
@script ExecuteInEditMode
|
||||
@script RequireComponent (Camera)
|
||||
@script AddComponentMenu ("Image Effects/Noise And Grain (Overlay)")
|
||||
|
||||
class NoiseAndGrain extends PostEffectsBase {
|
||||
|
||||
public var strength : float = 1.0f;
|
||||
public var blackIntensity : float = 1.0f;
|
||||
public var whiteIntensity : float = 1.0f;
|
||||
|
||||
public var redChannelNoise : float = 0.975f;
|
||||
public var greenChannelNoise : float = 0.875f;
|
||||
public var blueChannelNoise : float = 1.2f;
|
||||
|
||||
public var redChannelTiling : float = 24.0f;
|
||||
public var greenChannelTiling : float = 28.0f;
|
||||
public var blueChannelTiling : float = 34.0f;
|
||||
|
||||
public var filterMode : FilterMode = FilterMode.Bilinear;
|
||||
|
||||
public var noiseShader : Shader;
|
||||
public var noiseTexture : Texture2D;
|
||||
|
||||
private var noiseMaterial : Material = null;
|
||||
|
||||
function CheckResources () : boolean {
|
||||
CheckSupport (false);
|
||||
|
||||
noiseMaterial = CheckShaderAndCreateMaterial (noiseShader, noiseMaterial);
|
||||
|
||||
if(!isSupported)
|
||||
ReportAutoDisable ();
|
||||
return isSupported;
|
||||
}
|
||||
|
||||
function OnRenderImage (source : RenderTexture, destination : RenderTexture) {
|
||||
if(CheckResources()==false) {
|
||||
Graphics.Blit (source, destination);
|
||||
return;
|
||||
}
|
||||
|
||||
noiseMaterial.SetVector ("_NoisePerChannel", Vector3(redChannelNoise, greenChannelNoise, blueChannelNoise));
|
||||
noiseMaterial.SetVector ("_NoiseTilingPerChannel", Vector3(redChannelTiling, greenChannelTiling, blueChannelTiling));
|
||||
noiseMaterial.SetVector ("_NoiseAmount", Vector3(strength, blackIntensity, whiteIntensity));
|
||||
noiseMaterial.SetTexture ("_NoiseTex", noiseTexture);
|
||||
noiseTexture.filterMode = filterMode;
|
||||
|
||||
DrawNoiseQuadGrid (source, destination, noiseMaterial, noiseTexture, 0);
|
||||
}
|
||||
|
||||
static function DrawNoiseQuadGrid (source : RenderTexture, dest : RenderTexture, fxMaterial : Material, noise : Texture2D, passNr : int) {
|
||||
RenderTexture.active = dest;
|
||||
|
||||
var noiseSize : float = (noise.width * 1.0f);
|
||||
|
||||
var tileSize : float = noiseSize;
|
||||
|
||||
var subDs : float = (1.0f * source.width) / tileSize;
|
||||
|
||||
fxMaterial.SetTexture ("_MainTex", source);
|
||||
|
||||
GL.PushMatrix ();
|
||||
GL.LoadOrtho ();
|
||||
|
||||
var aspectCorrection : float = (1.0f * source.width) / (1.0f * source.height);
|
||||
var stepSizeX : float = 1.0f / subDs;
|
||||
var stepSizeY : float = stepSizeX * aspectCorrection;
|
||||
var texTile : float = tileSize / (noise.width * 1.0f);
|
||||
|
||||
fxMaterial.SetPass (passNr);
|
||||
|
||||
GL.Begin (GL.QUADS);
|
||||
|
||||
for (var x1 : float = 0.0; x1 < 1.0; x1 += stepSizeX) {
|
||||
for (var y1 : float = 0.0; y1 < 1.0; y1 += stepSizeY) {
|
||||
|
||||
var tcXStart : float = Random.Range (0.0f, 1.0f);
|
||||
var tcYStart : float = Random.Range (0.0f, 1.0f);
|
||||
|
||||
tcXStart = Mathf.Floor(tcXStart*noiseSize) / noiseSize;
|
||||
tcYStart = Mathf.Floor(tcYStart*noiseSize) / noiseSize;
|
||||
|
||||
//var texTileMod : float = Mathf.Sign (Random.Range (-1.0f, 1.0f));
|
||||
var texTileMod : float = 1.0f / noiseSize;
|
||||
|
||||
GL.MultiTexCoord2 (0, tcXStart, tcYStart);
|
||||
GL.MultiTexCoord2 (1, 0.0f, 0.0f);
|
||||
GL.Vertex3 (x1, y1, 0.1);
|
||||
GL.MultiTexCoord2 (0, tcXStart + texTile * texTileMod, tcYStart);
|
||||
GL.MultiTexCoord2 (1, 1.0f, 0.0f);
|
||||
GL.Vertex3 (x1 + stepSizeX, y1, 0.1);
|
||||
GL.MultiTexCoord2 (0, tcXStart + texTile * texTileMod, tcYStart + texTile * texTileMod);
|
||||
GL.MultiTexCoord2 (1, 1.0f, 1.0f);
|
||||
GL.Vertex3 (x1 + stepSizeX, y1 + stepSizeY, 0.1);
|
||||
GL.MultiTexCoord2 (0, tcXStart, tcYStart + texTile * texTileMod);
|
||||
GL.MultiTexCoord2 (1, 0.0f, 1.0f);
|
||||
GL.Vertex3 (x1, y1 + stepSizeY, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
GL.End ();
|
||||
GL.PopMatrix ();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue