示例#1
0
文件: UVOffset.cs 项目: Thaon/IRNBRU
	public static string GenerateMap(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Map,ref int UVDimensions,ref int TypeDimensions){
		if (TypeDimensions==3){
			if (UVDimensions == 1)
				Map = "float3("+Map+",0,0)";
			if (UVDimensions == 2)
				Map = "float3("+Map+",0)";
			UVDimensions = 3;
			if (SL.LayerType.Type==(int)LayerTypes.Noise)
				return "("+Map+"+float3("+SE.Inputs[0].Get()+","+SE.Inputs[1].Get()+","+SE.Inputs[2].Get(1f/3f)+"))";
			else
				return "("+Map+"+float3("+SE.Inputs[0].Get()+","+SE.Inputs[1].Get()+","+SE.Inputs[2].Get(1f)+"))";
		}
		if (TypeDimensions==2){
			if (UVDimensions == 1)
				Map = "float2("+Map+",0)";
			
			if (UVDimensions<3){
				UVDimensions = 2;
				return "("+Map+"+float2("+SE.Inputs[0].Get()+","+SE.Inputs[1].Get()+"))";
			}
			else{
				return "("+Map+"+float3("+SE.Inputs[0].Get()+","+SE.Inputs[1].Get()+",0))";
			}
		}
		if (TypeDimensions==1)
		return "("+Map+"+("+SE.Inputs[0].Get()+"))";
		return Map;
	}
示例#2
0
文件: UVSet.cs 项目: Thaon/IRNBRU
	public static void Activate(ShaderEffect SE,bool BInputs,ShaderLayer SL){
		SE.TypeS = "SSEUVSet";
		SE.Name = "Mapping/Set";//+UnityEngine.Random.value.ToString();
		
		SE.Function = "";
		SE.LinePre = "";
		if (BInputs==true||SE.Inputs.Count!=2){
			SE.Inputs = new List<ShaderVar>();
			SE.Inputs.Add(new ShaderVar("Values (RGBA)","ListOfObjects"));
			SE.Inputs.Add(new ShaderVar("Scale",1));
		} 
//if (SL!=null)
//Debug.Log(SL.IsLighting);
		if (SL!=null)
		SE.Inputs[0].LightingMasks = SL.IsLighting;
		
		SE.Inputs[0].SetToMasks(null,0);
		SE.Inputs[0].NoInputs = true;
		SE.Inputs[0].RGBAMasks = true;		
		SE.Inputs[1].NoSlider = true;
		SE.WorldPos = false;
		SE.WorldRefl = false;
		SE.WorldNormals = false;
		SE.IsUVEffect = true;
	}
示例#3
0
文件: UVSet.cs 项目: Thaon/IRNBRU
	public static string GenerateMap(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Map,ref int UVDimensions,ref int TypeDimensions){
		if (TypeDimensions==3){
			if (UVDimensions == 1)
				Map = "float3("+Map+",0,0)";
			if (UVDimensions == 2)
				Map = "float3("+Map+",0)";
			UVDimensions = 3;
			return "(((float3("+SE.Inputs[0].GetMaskName()+".r,"+SE.Inputs[0].GetMaskName()+".g,"+SE.Inputs[0].GetMaskName()+".b))*"+SE.Inputs[1].Get()+"))";
		}
		if (TypeDimensions==2){
			if (UVDimensions == 1)
				Map = "float2("+Map+",0)";
			
			if (UVDimensions<3){
				UVDimensions = 2;
				return "(((float2("+SE.Inputs[0].GetMaskName()+".r,"+SE.Inputs[0].GetMaskName()+".g))*"+SE.Inputs[1].Get()+"))";
			}
			else{
				return "(((float3("+SE.Inputs[0].GetMaskName()+".r,"+SE.Inputs[0].GetMaskName()+".g,0))*"+SE.Inputs[1].Get()+"))";
			}
		}
		if (TypeDimensions==1){
			//if (UVDimensions==1)
			return "((("+SE.Inputs[0].GetMaskName()+".r)*"+SE.Inputs[1].Get()+"))";
		}
		return Map;
	}
示例#4
0
文件: MathFrac.cs 项目: Thaon/IRNBRU
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		SE.Inputs[0].Float = Mathf.Round(SE.Inputs[0].Float);
		if (SE.Inputs[0].Get()=="0")
		return "fmod("+Line+",1)";

		return "fmod("+Line+"*"+SE.Inputs[0].Get()+",1)";
	}
示例#5
0
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		string[] Colors = new string[]{"r","g","b","a"};
		string Line1 = "(("+Line+"."+Colors[SE.Inputs[2].Type]+"-"+SL.StartNewBranch(SG,SL.GCUVs(SG,SE.Inputs[0].Get(),"0","0"),Effect)+"."+Colors[SE.Inputs[2].Type]+")*"+SE.Inputs[1].Get()+")";
		string Line2 = "(("+Line+"."+Colors[SE.Inputs[2].Type]+"-"+SL.StartNewBranch(SG,SL.GCUVs(SG,"0",SE.Inputs[0].Get(),"0"),Effect)+"."+Colors[SE.Inputs[2].Type]+")*"+SE.Inputs[1].Get()+")";
		//string retVal = "(float4("+Line1+","+Line2+","+"sqrt((1-pow("+Line1+",2)-pow("+Line2+",2))),"+Line+".a))";///2+0.5";
		string retVal = "(float4("+Line1+","+Line2+",1,"+Line+".a))";///2+0.5";
		return retVal;
	}
示例#6
0
 private static void RegisterShader(
   string name,
   ChromaShader shader,
   ChromaCondition condition,
   ShaderLayer layer)
 {
   ChromaInitializer._engine.RegisterShader(shader, condition, layer);
 }
示例#7
0
文件: UVFlip.cs 项目: Thaon/IRNBRU
	public static string GenerateMap(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Map,ref int UVDimensions,ref int TypeDimensions){
		//return "float3("+((SE.Inputs[0].On)?"1-":"")+")";
		if (UVDimensions==3)
		return "float3("+((SE.Inputs[0].On)?"1-":"")+Map+".x,"+((SE.Inputs[1].On)?"1-":"")+Map+".y,"+((SE.Inputs[2].On)?"1-":"")+Map+".z)";
		if (UVDimensions==2)
		return "float2("+((SE.Inputs[0].On)?"1-":"")+Map+".x,"+((SE.Inputs[1].On)?"1-":"")+Map+".y)";
		if (UVDimensions==1)
		return ""+(((SE.Inputs[0].On)?"1-":"")+Map);
		return Map;
	}
示例#8
0
文件: UVRotate.cs 项目: Thaon/IRNBRU
	public static string GenerateMap(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Map,ref int UVDimensions,ref int TypeDimensions){
		//return "float3("+((SE.Inputs[0].On)?"1-":"")+")";
		string MapX = "0";
		string MapY = "0";
		//string MapZ = Map+".z";
		//Debug.Log(UVDimensions);
		bool UpSize1 = false;
		if (UVDimensions==1&&TypeDimensions>1)
		UpSize1 = true;
		if (SE.Inputs[0].Type==0){
			MapX = Map+".x";
			if (!UpSize1)
			MapY = Map+".y";
		}
		if (SE.Inputs[0].Type==1){
			if (!UpSize1){
				MapX = "1-"+Map+".y";
				MapY = Map+".x";
			}
			else{
				MapY = "1-"+Map+".x";
			}
		}
		if (SE.Inputs[0].Type==2){
			MapX = "1-"+Map+".x";
			if (!UpSize1)
			MapY = "1-"+Map+".y";
		}
		if (SE.Inputs[0].Type==3){
			if (!UpSize1){
				MapX = Map+".y";
				MapY = "1-"+Map+".x";
			}
			else{
				MapY = Map+".x";
			}
		}
		if (UVDimensions==3)
			return "float3("+MapX+","+MapY+","+Map+".z)";
		if (UVDimensions==2)
			return "float2("+MapX+","+MapY+")";
		if (UVDimensions==1)
			return "("+MapX+")";
		return Map;
	}
示例#9
0
	public static string GetAddBlurString(ShaderGenerate SG,ShaderLayer SL,ShaderEffect SE,int Effect,int XAdd,int YAdd){
		string XAnti = "AntiAlias";//IN.screenPos.z/300";
		string YAnti = XAnti;//"IN.screenPos.z";
		
		
		//if (SE.Inputs[1].Input!=null)
		string XX = ((float)XAdd/SE.Inputs[0].Float).ToString()+"*"+XAnti;
		//if (SE.Inputs[2].Input!=null)
		string YY = ((float)YAdd/SE.Inputs[0].Float).ToString()+"*"+YAnti;
		
		//if (!SE.Inputs[0].On){
		//	if (SE.Inputs[1].Input!=null)
		//	YY = ((float)YAdd/SE.Inputs[0].Float).ToString()+"*"+XAnti;
		//}
		
		return "+("+SL.StartNewBranch(SG,SL.GCUVs(SG,XX,YY,"0"),Effect)+")";
		//return OldColors[ShaderUtil.FlatArray(XX,YY,W,H)];	
	}
示例#10
0
文件: UVScale.cs 项目: Thaon/IRNBRU
	public static string GenerateMap(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Map,ref int UVDimensions,ref int TypeDimensions){
		if (!SE.Inputs[0].On){
			if (UVDimensions==3)
			return "("+Map+"*float3("+SE.Inputs[1].Get()+","+SE.Inputs[1].Get()+","+SE.Inputs[1].Get()+"))";
			if (UVDimensions==2)
			return "("+Map+"*float2("+SE.Inputs[1].Get()+","+SE.Inputs[1].Get()+"))";
			if (UVDimensions==1)
			return "("+Map+"*("+SE.Inputs[1].Get()+"))";
		}
		else{
			if (UVDimensions==3)
			return "("+Map+"*float3("+SE.Inputs[1].Get()+","+SE.Inputs[2].Get()+","+SE.Inputs[3].Get()+"))";
			if (UVDimensions==2)
			return "("+Map+"*float2("+SE.Inputs[1].Get()+","+SE.Inputs[2].Get()+"))";
			if (UVDimensions==1)
			return "("+Map+"*("+SE.Inputs[1].Get()+"))";
		}
		return Map;
	}
示例#11
0
	public static string GenerateBase(ShaderEffect SE,ShaderLayer SL,string PixCol,string Map){
		if (SL.LayerType.Type == (int)LayerTypes.Texture){
			PixCol = "tex2Dlod("+SL.Image.Input.Get()+",float4("+Map+",0,"+SE.Inputs[0].Get()+"))";
		}
		if (SL.LayerType.Type == (int)LayerTypes.Cubemap){
			PixCol = "texCUBElod("+SL.Cube.Input.Get()+",float4("+Map+","+SE.Inputs[0].Get()+"))";		
		}
		if (SL.LayerType.Type == (int)LayerTypes.GrabDepth){
			if (SL.SpecialType.Type==0)
			PixCol = "tex2Dlod( _GrabTexture, float4("+Map+",0,"+SE.Inputs[0].Get()+"))";
			else{
				if (SL.LinearizeDepth.On)
				PixCol = "(LinearEyeDepth(tex2Dlod(_CameraDepthTexture, floatt4("+Map+",0,"+SE.Inputs[0].Get()+")).r).rrrr)";
				else
				PixCol = "(tex2Dlod(_CameraDepthTexture, float4("+Map+",0,"+SE.Inputs[0].Get()+")).rrrr)";
			}
		}
		return PixCol;
	}
示例#12
0
文件: Pixelate.cs 项目: Thaon/IRNBRU
	public static string GenerateMap(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Map,int UVDimensions,int TypeDimensions){
		if (!SE.Inputs[0].On){
		SE.Inputs[2].Float = SE.Inputs[1].Float;
		SE.Inputs[3].Float = SE.Inputs[1].Float;
		SE.Inputs[2].Input = SE.Inputs[1].Input;
		SE.Inputs[3].Input = SE.Inputs[1].Input;
		}
		string Mapping="";
		if (UVDimensions==3)
		Mapping = "float3("+SE.Inputs[1].Get()+","+SE.Inputs[2].Get()+","+SE.Inputs[3].Get()+")";
		if (UVDimensions==2)
		Mapping = "float2("+SE.Inputs[1].Get()+","+SE.Inputs[2].Get()+")";
		if (UVDimensions==1)
		Mapping = "("+SE.Inputs[1].Get()+")";
		
		if (Mapping!="")
		return "(round("+Map+"/"+Mapping+")*"+Mapping+")";
		
		return Map;
	}
示例#13
0
	public static string GetAddBlurString(ShaderGenerate SG,ShaderLayer SL,ShaderEffect SE,int Effect,int XAdd,int YAdd){
		string XX = ((float)XAdd*SE.Inputs[1].Float/SE.Inputs[4].Float).ToString();
		string YY = ((float)YAdd*SE.Inputs[2].Float/SE.Inputs[4].Float).ToString();
		if (!SE.Inputs[0].On){
			YY = ((float)YAdd*SE.Inputs[1].Float/SE.Inputs[4].Float).ToString();
		}
		
		if (SE.Inputs[1].Input!=null)
		XX = ((float)XAdd/SE.Inputs[4].Float).ToString()+"*"+SE.Inputs[1].Get();
		if (SE.Inputs[2].Input!=null)
		YY = ((float)YAdd/SE.Inputs[4].Float).ToString()+"*"+SE.Inputs[2].Get();
		
		if (!SE.Inputs[0].On){
			if (SE.Inputs[1].Input!=null)
			YY = ((float)YAdd/SE.Inputs[4].Float).ToString()+"*"+SE.Inputs[1].Get();
		}
		
		return "+("+SL.StartNewBranch(SG,SL.GCUVs(SG,XX,YY,"0"),Effect)+")";
		//return OldColors[ShaderUtil.FlatArray(XX,YY,W,H)];	
	}
示例#14
0
	public static string Generate(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		if (!SL.IsVertex){
		string retVal = "((("+Line+")";
		int AddCount = 0;
		for(int i = (int)(-SE.Inputs[0].Float);i<=(int)(SE.Inputs[0].Float);i+=2){
		if (i!=0){retVal+=GetAddBlurString(SG,SL,SE,Effect,i,i);AddCount+=1;}}
		for(int i = (int)(-SE.Inputs[0].Float);i<=(int)(SE.Inputs[0].Float);i+=2){
		if (i!=0){retVal+=GetAddBlurString(SG,SL,SE,Effect,-i,-i);AddCount+=1;}}	
		for(int i = (int)(-SE.Inputs[0].Float);i<=(int)(SE.Inputs[0].Float);i+=2){
		if (i!=0){retVal+=GetAddBlurString(SG,SL,SE,Effect,-i,i);AddCount+=1;}}
		for(int i = (int)(-SE.Inputs[0].Float);i<=(int)(SE.Inputs[0].Float);i+=2){
		if (i!=0){retVal+=GetAddBlurString(SG,SL,SE,Effect,i,-i);AddCount+=1;}}
		for(int i = (int)(-SE.Inputs[0].Float);i<=(int)(SE.Inputs[0].Float);i++){
		if (i!=0){retVal+=GetAddBlurString(SG,SL,SE,Effect,i,0);AddCount+=1;}}
		for(int i = (int)(-SE.Inputs[0].Float);i<=(int)(SE.Inputs[0].Float);i++){
		if (i!=0){retVal+=GetAddBlurString(SG,SL,SE,Effect,0,i);AddCount+=1;}}
		
		retVal += ")/"+(AddCount+1).ToString()+")";

		//+("+SL.GetSubPixel(SG,SL.GCUVs(SG,"0.01","0","0"),Effect)+"))/2)";
		return retVal;
		}
		return Line;
	}
示例#15
0
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return GenerateGeneric(SE,Line);
	}
示例#16
0
文件: MathClamp.cs 项目: Thaon/IRNBRU
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		if (SE.Inputs[0].Get()=="0"&&SE.Inputs[0].Get()=="1")
		return "saturate("+Line+")";
		return "clamp("+Line+","+SE.Inputs[0].Get()+","+SE.Inputs[1].Get()+")";
	}
示例#17
0
 private static void RegisterShader(string name, ChromaShader shader, ChromaCondition condition, ShaderLayer layer)
 {
     //IL_0007: Unknown result type (might be due to invalid IL or missing references)
     _engine.RegisterShader(shader, condition, layer);
 }
示例#18
0
	public static string Generate(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "("+Line+"/2+0.5)";///2+0.5)";
	}
示例#19
0
文件: Pixelate.cs 项目: Thaon/IRNBRU
	public static string GenerateBase(ShaderGenerate SG, ShaderEffect SE,ShaderLayer SL,string PixCol,string Map){
		if (SL.LayerType.Type == (int)LayerTypes.Texture){
			if (SG.InVertex)
			PixCol = "tex2Dlod("+SL.Image.Input.Get()+",float4("+Map+",0,0))";
			else
			PixCol = "tex2D("+SL.Image.Input.Get()+","+Map+",ddx("+SL.GCUVs(SG,false)+"), ddy("+SL.GCUVs(SG,false)+"))";
		}
		//if (SL.LayerType.Type == (int)LayerTypes.Cubemap){
		//	PixCol = "texCUBE("+SL.Cube.Input.Get()+",float4("+Map+","+SE.Inputs[0].Get()+"))";		
		//}	
		return PixCol;
	}
示例#20
0
	public static string Generate(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "float3(dot(float3(0.3,0.59,0.11),"+Line+".rgb),dot(float3(0.3,0.59,0.11),"+Line+".rgb),dot(float3(0.3,0.59,0.11),"+Line+".rgb))";
	}
示例#21
0
文件: MathPow.cs 项目: Thaon/IRNBRU
	public static string GenerateAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "pow("+Line+","+SE.Inputs[0].Get()+")";
	}
示例#22
0
	public void LayerCopy(object SL){ClipboardLayer = ((ShaderLayer)SL).Copy();}
示例#23
0
文件: Threshold.cs 项目: Thaon/IRNBRU
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "lerp(float4(0,0,0,0),"+Line+",ceil(dot(float3(0.3,0.59,0.11),"+Line+".rgb)-"+SE.Inputs[0].Get()+")*ceil("+Line+".a-"+SE.Inputs[0].Get()+"))";
	}
示例#24
0
	public void ChangeSaveTemp_Real(ShaderLayer Up,bool UpdateInputs){
		if (GUI.changed)
		ValueChanged = true;
		if (ValueChanged&&OpenShader!=null){//DrawLayer!=null&&
			if (Up!=null){
			Up.Parent.UpdateIcon(new Vector2(70,70));
			//Debug.Log("UpdatedIcon");
			}
			
			if (UpdateInputs){
			OpenShader.RecalculateAutoInputs();}
			
			UpdateShaderPreview();
		}
		if (!GUI.changed&&OpenShader!=null){
			GUIChangedTimer-=1;
			if (GUIChangedTimer==0){
			RegenShaderPreview();
			UpdateShaderPreview();
			}
		}
		else{
			GUIChangedTimer=20;
		}
	}
示例#25
0
文件: Contrast.cs 项目: Thaon/IRNBRU
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "lerp(float4(0.5,0.5,0.5,0.5),"+Line+","+SE.Inputs[0].Get()+")";
	}
示例#26
0
文件: MathRound.cs 项目: Thaon/IRNBRU
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "(round("+Line+"*"+SE.Inputs[0].Get()+")/"+SE.Inputs[0].Get()+")";
	}
示例#27
0
	public static string Generate(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "(normalize("+Line+"))";
	}
示例#28
0
文件: MathSin.cs 项目: Thaon/IRNBRU
	public static string GenerateWAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		if (SE.Inputs[0].On)
		return "((sin("+Line+")+1)/2)";
		else
		return "sin("+Line+")";
	}
示例#29
0
	public static string GenerateAlpha(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "("+Line+")";
	}
示例#30
0
	public void ChangeSaveTemp(ShaderLayer Up){
		ChangeSaveTemp_Real(Up,true);
	}
示例#31
0
文件: HueShift.cs 项目: Thaon/IRNBRU
	public static string Generate(ShaderGenerate SG,ShaderEffect SE, ShaderLayer SL,string Line,int Effect){
		return "hsv2rgb(rgb2hsv("+Line+")+float3("+SE.Inputs[0].Get()+","+SE.Inputs[1].Get()+","+SE.Inputs[2].Get()+"))";
	}
示例#32
0
	public void ChangeSaveTemp(ShaderLayer Up,bool UpdateInputs){
		ChangeSaveTemp_Real(Up,UpdateInputs);
	}