//namespace UnityEngine.PostProcessing //{ // public sealed class DitheringComponent : PostProcessingComponentRenderTexture // { // static class Uniforms // { // internal static readonly int _DitheringTex = Shader.PropertyToID("_DitheringTex"); // internal static readonly int _DitheringCoords = Shader.PropertyToID("_DitheringCoords"); // } // public override bool active // { // get // { // return model.enabled // && !context.interrupted; // } // } // // Holds 64 64x64 Alpha8 textures (256kb total) // Texture2D[] noiseTextures; // int textureIndex = 0; // const int k_TextureCount = 64; // public override void OnDisable() // { // noiseTextures = null; // } // void LoadNoiseTextures() // { // noiseTextures = new Texture2D[k_TextureCount]; // for (int i = 0; i < k_TextureCount; i++) // noiseTextures[i] = Resources.Load("Bluenoise64/LDR_LLL1_" + i); // } // public override void Prepare(Material uberMaterial) // { // float rndOffsetX; // float rndOffsetY; //#if POSTFX_DEBUG_STATIC_DITHERING // textureIndex = 0; // rndOffsetX = 0f; // rndOffsetY = 0f; //#else // if (++textureIndex >= k_TextureCount) // textureIndex = 0; // rndOffsetX = Random.value; // rndOffsetY = Random.value; //#endif // if (noiseTextures == null) // LoadNoiseTextures(); // var noiseTex = noiseTextures[textureIndex]; // uberMaterial.EnableKeyword("DITHERING"); // uberMaterial.SetTexture(Uniforms._DitheringTex, noiseTex); // uberMaterial.SetVector(Uniforms._DitheringCoords, new Vector4( // (float)context.width / (float)noiseTex.width, // (float)context.height / (float)noiseTex.height, // rndOffsetX, // rndOffsetY // )); // } // } //}