static void InitTextures() { //Reflective cubemap var cubemap = GLTextureCubeArray.FromDDS( new DDS($"Resources\\CubemapHDR.dds")); CubemapManager.InitDefault(cubemap); CubemapManager.CubeMapTextureArray = GLTexture2DArray.FromDDS(new DDS($"Resources\\CubemapHDR.dds")); DiffuseLightmapTextureArray = GLTexture2DArray.FromDDS(new DDS[2] { new DDS(new MemoryStream(Resources.CubemapLightmap)), new DDS(new MemoryStream(Resources.CubemapLightmapShadow)) }); //Diffuse cubemap lighting //Map gets updated when an object moves using probe lighting. DiffuseLightmapTexture = GLTextureCube.FromDDS( new DDS(new MemoryStream(Resources.CubemapLightmap)), new DDS(new MemoryStream(Resources.CubemapLightmapShadow))); LightingEngine.LightSettings.InitTextures(); DepthShadowCascadeTexture = GLTexture2D.CreateWhiteTexture(4, 4); //Tire marks ProjectionTexture = GLTexture2D.CreateWhiteTexture(4, 4); //Depth information. Likely for shadows NormalizedLinearDepth = GLTexture2D.FromBitmap(Resources.black); //Adjust mip levels CubemapManager.CubeMapTexture.Bind(); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureBaseLevel, 0); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureMaxLevel, 13); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(CubemapManager.CubeMapTexture.Target, TextureParameterName.TextureWrapR, (int)TextureWrapMode.ClampToEdge); CubemapManager.CubeMapTexture.Unbind(); DiffuseLightmapTexture.Bind(); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureBaseLevel, 0); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureMaxLevel, 2); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureWrapR, (int)TextureWrapMode.ClampToEdge); DiffuseLightmapTexture.Unbind(); }
void Awake() { if (instance == null) { instance = this; } else if (instance != null) { Destroy(gameObject); } DontDestroyOnLoad(instance); }
static void InitTextures() { //Reflective cubemap CubeMapTexture = GLTextureCubeArray.FromDDS(new DDS($"Resources\\CubemapHDR.dds")); CubemapManager.InitDefault(CubeMapTexture); //Diffuse cubemap lighting //Map gets updated when an object moves using probe lighting. DiffuseLightmapTexture = GLTextureCube.FromDDS( new DDS(new MemoryStream(Resources.CubemapLightmap)), new DDS(new MemoryStream(Resources.CubemapLightmapShadow))); //Shadows //Channel usage: //Red - Dynamic shadows //Green - Static shadows (course) //Blue - Soft shading (under kart, dynamic AO?) //Alpha - Usually gray DepthShadowTexture = GLTexture2D.FromBitmap(Resources.white); DepthShadowCascadeTexture = GLTexture2D.FromBitmap(Resources.white); //Tire marks ProjectionTexture = GLTexture2D.FromBitmap(Resources.white); //Used for dynamic lights. Ie spot, point, kart lights //Dynamic lights are setup using the g buffer pass (normals) and depth information before material pass is drawn //Additional slices may be used for bloom intensity LightPPTexture = GLTexture2DArray.FromBitmap(Resources.black); //Depth information. Likely for shadows NormalizedLinearDepth = GLTexture2D.FromBitmap(Resources.black); //Adjust mip levels CubeMapTexture.Bind(); GL.TexParameter(CubeMapTexture.Target, TextureParameterName.TextureBaseLevel, 0); GL.TexParameter(CubeMapTexture.Target, TextureParameterName.TextureMaxLevel, 13); CubeMapTexture.Unbind(); DiffuseLightmapTexture.Bind(); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureBaseLevel, 0); GL.TexParameter(DiffuseLightmapTexture.Target, TextureParameterName.TextureMaxLevel, 2); DiffuseLightmapTexture.Unbind(); }
// Use this for initialization void Start() { manager = UnityEngine.Object.FindObjectOfType<CubemapManager>(); meshRenderer = GetComponent<MeshRenderer>(); }