protected internal override void OnLoad() { base.OnLoad(); // 書き出しRT glareRT = new RenderTexture(MMW.RenderResolution); glareRT.MagFilter = TextureMagFilter.Linear; glareRT.MinFilter = TextureMinFilter.Linear; glareRT.ColorFormat0 = MMW.Configuration.DefaultPixelFormat; glareRT.Load(); // HDR抽出RT hdrRT = new RenderTexture(MMW.RenderResolution); hdrRT.MagFilter = TextureMagFilter.Linear; hdrRT.MinFilter = TextureMinFilter.Linear; hdrRT.ColorFormat0 = MMW.Configuration.DefaultPixelFormat; hdrRT.Load(); // Blur適用RT blurRT1s = new RenderTexture[BlurNum]; blurRT2s = new RenderTexture[BlurNum]; blurRT3s = new RenderTexture[BlurNum]; blurs = new GlareBlur[BlurNum]; var blurSizes = new Size[] { new Size(MMW.RenderResolution.Width / 4, MMW.RenderResolution.Height / 4), new Size(MMW.RenderResolution.Width / 8, MMW.RenderResolution.Height / 8), new Size(MMW.RenderResolution.Width / 16, MMW.RenderResolution.Height / 16), }; var reduct = 1.0f; for (var i = 0; i < BlurNum; i++) { var size = blurSizes[i]; if (size.Width < 128) { size.Width = 128; } if (size.Height < 128) { size.Height = 128; } blurRT1s[i] = new RenderTexture(size); blurRT1s[i].MagFilter = TextureMagFilter.Linear; blurRT1s[i].MinFilter = TextureMinFilter.Linear; blurRT1s[i].WrapMode = TextureWrapMode.ClampToEdge; blurRT1s[i].ColorFormat0 = MMW.Configuration.DefaultPixelFormat; blurRT1s[i].Load(); blurRT2s[i] = new RenderTexture(size); blurRT2s[i].MagFilter = TextureMagFilter.Linear; blurRT2s[i].MinFilter = TextureMinFilter.Linear; blurRT2s[i].WrapMode = TextureWrapMode.ClampToEdge; blurRT2s[i].ColorFormat0 = MMW.Configuration.DefaultPixelFormat; blurRT2s[i].Load(); blurRT3s[i] = new RenderTexture(size); blurRT3s[i].MagFilter = TextureMagFilter.Linear; blurRT3s[i].MinFilter = TextureMinFilter.Linear; blurRT3s[i].WrapMode = TextureWrapMode.ClampToEdge; blurRT3s[i].ColorFormat0 = MMW.Configuration.DefaultPixelFormat; blurRT3s[i].Load(); blurs[i] = new GlareBlur(3.0f * reduct, Direction, GlareBlur.GlareType.Line); blurs[i].RenderTexture = blurRT1s[i]; blurs[i].OnLoad(); reduct *= 2.0f; } // HDR抽出シェーダ hdrShader = (ExtractHDRShader)MMW.GetAsset <Shader>("Extract HDR"); if (hdrShader == null) { hdrShader = new ExtractHDRShader(); MMW.RegistAsset(hdrShader); } // Bloomシェーダ glareShader = (GlareShader)MMW.GetAsset <Shader>("Glare"); if (glareShader == null) { glareShader = new GlareShader(); MMW.RegistAsset(glareShader); } if (GameObject != null) { Camera = GameObject.GetComponent <Camera>(); RenderTexture = Camera.TargetTexture; } orthoMatrix = Matrix4.CreateOrthographicOffCenter(-1, 1, -1, 1, -1, 1); }