GetPixel() private method

private GetPixel ( CubemapFace face, int x, int y ) : Color
face CubemapFace
x int
y int
return Color
コード例 #1
0
 static public int GetPixel(IntPtr l)
 {
     try {
         UnityEngine.Cubemap     self = (UnityEngine.Cubemap)checkSelf(l);
         UnityEngine.CubemapFace a1;
         checkEnum(l, 2, out a1);
         System.Int32 a2;
         checkType(l, 3, out a2);
         System.Int32 a3;
         checkType(l, 4, out a3);
         var ret = self.GetPixel(a1, a2, a3);
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
コード例 #2
0
 static public int GetPixel(IntPtr l)
 {
     try{
         UnityEngine.Cubemap     self = (UnityEngine.Cubemap)checkSelf(l);
         UnityEngine.CubemapFace a1;
         checkEnum(l, 2, out a1);
         System.Int32 a2;
         checkType(l, 3, out a2);
         System.Int32 a3;
         checkType(l, 4, out a3);
         UnityEngine.Color ret = self.GetPixel(a1, a2, a3);
         pushValue(l, ret);
         return(1);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
コード例 #3
0
 static public int GetPixel(IntPtr l)
 {
     try {
                     #if DEBUG
         var    method     = System.Reflection.MethodBase.GetCurrentMethod();
         string methodName = GetMethodName(method);
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.BeginSample(methodName);
                     #else
         Profiler.BeginSample(methodName);
                     #endif
                     #endif
         UnityEngine.Cubemap     self = (UnityEngine.Cubemap)checkSelf(l);
         UnityEngine.CubemapFace a1;
         a1 = (UnityEngine.CubemapFace)LuaDLL.luaL_checkinteger(l, 2);
         System.Int32 a2;
         checkType(l, 3, out a2);
         System.Int32 a3;
         checkType(l, 4, out a3);
         var ret = self.GetPixel(a1, a2, a3);
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
             #if DEBUG
     finally {
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.EndSample();
                     #else
         Profiler.EndSample();
                     #endif
     }
             #endif
 }
コード例 #4
0
	private void setCornerAverage(ref Cubemap filteredCubeMap, 
	                              int a, int b, int c, int d, int e, int f, int g, int h, int i)
	{
		Color average = 
			(filteredCubeMap.GetPixel((CubemapFace)a, b, c) 
			 + filteredCubeMap.GetPixel((CubemapFace)d, e, f) 
			 + filteredCubeMap.GetPixel((CubemapFace)g, h, i)) / 3.0f;
		filteredCubeMap.SetPixel((CubemapFace)a, b, c, average);
		filteredCubeMap.SetPixel((CubemapFace)d, e, f, average);
		filteredCubeMap.SetPixel((CubemapFace)g, h, i, average);
	}
コード例 #5
0
	private void setFaceAverage(ref Cubemap filteredCubeMap, 
	                            int a, int b, int c, int d, int e, int f)
	{
		Color average = 
			(filteredCubeMap.GetPixel((CubemapFace)a, b, c) 
			 + filteredCubeMap.GetPixel((CubemapFace)d, e, f)) / 2.0f;
		filteredCubeMap.SetPixel((CubemapFace)a, b, c, average);
		filteredCubeMap.SetPixel((CubemapFace)d, e, f, average);
	}
コード例 #6
0
ファイル: ShaderPreview.cs プロジェクト: Thaon/IRNBRU
	void CalcAmbientLight(Cubemap TempCube){
			//AMBIENT LIGHT CALCULATION
			string path = AssetDatabase.GetAssetPath(TempCube);
			TextureImporter ti =  TextureImporter.GetAtPath(path) as TextureImporter;
			bool OldIsReadable = false;
			int OldMaxSize = 1;
			if (ti!=null){
					OldIsReadable = ti.isReadable;
					ti.isReadable = true;
					OldMaxSize = ti.maxTextureSize;
					ti.maxTextureSize = 32;
					AssetDatabase.ImportAsset(path);
			}
			//CubeResize = new Texture2D(70,70,TextureFormat.ARGB32,false);
			//Color[] colors = new Color[(int)(CubeResize.width*CubeResize.height)];
			Cubemap UseCube = TempCube;
			int MipmapLevel = 0;
			try {
				TempCube.GetPixel(CubemapFace.PositiveX,0,0);
			}
			catch {
				UseCube = defaultBackCube;
			}
			int i = 1;
			if (UseCube.height>4){
				for (i=1;i<9;i++){
					bool Continue = false;
					try {
						Continue = false;
						Color[] colors2 = UseCube.GetPixels(CubemapFace.PositiveX,i);
						if (colors2!=null&&colors2.Length>1)
						Continue = true;
					}
					catch{
						Continue = false;
					}
	//				Debug.Log(Continue);
					if (!Continue)
					break;
				}
			}
			MipmapLevel = i-1;
//			Debug.Log(MipmapLevel);
			
			
			Color PosXo = UseCube.GetPixel(CubemapFace.PositiveX,0,0);
			Color NegXo = UseCube.GetPixel(CubemapFace.NegativeX,0,0);
			Color PosYo = UseCube.GetPixel(CubemapFace.PositiveY,0,0);
			Color NegYo = UseCube.GetPixel(CubemapFace.NegativeY,0,0);
			Color PosZo = UseCube.GetPixel(CubemapFace.PositiveZ,0,0);
			Color NegZo = UseCube.GetPixel(CubemapFace.NegativeZ,0,0);
			
			if (MipmapLevel!=0){
				PosXo = UseCube.GetPixels(CubemapFace.PositiveX,MipmapLevel)[0];
				NegXo = UseCube.GetPixels(CubemapFace.NegativeX,MipmapLevel)[0];
				PosYo = UseCube.GetPixels(CubemapFace.PositiveY,MipmapLevel)[0];
				NegYo = UseCube.GetPixels(CubemapFace.NegativeY,MipmapLevel)[0];
				PosZo = UseCube.GetPixels(CubemapFace.PositiveZ,MipmapLevel)[0];
				NegZo = UseCube.GetPixels(CubemapFace.NegativeZ,MipmapLevel)[0];
			}
			
			Color PosX = Color.Lerp(PosXo,NegYo,0.5f);
			Color NegX = Color.Lerp(NegXo,NegYo,0.5f);
			Color PosY = Color.Lerp(PosYo,PosXo,0.2f);
			Color NegY = Color.Lerp(NegYo,NegXo,0.2f);
			Color PosZ = Color.Lerp(PosZo,NegYo,0.5f);
			Color NegZ = Color.Lerp(NegZo,NegYo,0.5f);
			
			#if UNITY_5
			SphericalHarmonicsL2 L = new SphericalHarmonicsL2();
			L.AddDirectionalLight(new Vector3(1,0,0),PosX,ToGreyscale(PosX));
			L.AddDirectionalLight(new Vector3(0,1,0),PosY,ToGreyscale(PosY));
			L.AddDirectionalLight(new Vector3(0,0,1),PosZ,ToGreyscale(PosZ));
			
			L.AddDirectionalLight(new Vector3(-1,0,0),NegX,ToGreyscale(NegX));
			L.AddDirectionalLight(new Vector3(0,-1,0),NegY,ToGreyscale(NegY));
			L.AddDirectionalLight(new Vector3(0,0,-1),NegZ,ToGreyscale(NegZ));
			

			(previewCam.GetComponent("PreviewCameraSet") as PreviewCameraSet).NewAmbient = L;
			#endif
			Color C = (PosX/6f)+(NegX/6f)+(PosY/6f)+(NegY/6f)+(PosZ/6f)+(NegZ/6f);
			//Debug.Log(C);
			(previewCam.GetComponent("PreviewCameraSet") as PreviewCameraSet).NewAmbientColor = C;
			//L.AddDirectionalLight(new Vector3(0,0,1),new Color(0.5f,0,0),1f);
			//Debug.Log(ToGreyscale(new Color(0.5f,0,0)));
			//CubeResize.SetPixels(colors);
			//CubeResize.Apply(false,false);
			if (ti!=null){
				ti.isReadable = OldIsReadable;
				ti.maxTextureSize = OldMaxSize;
				AssetDatabase.ImportAsset(path);
			}
	}