Ejemplo n.º 1
0
        public override void OnValidate(PPData_SSAO ppDataSsao)
        {
            base.OnValidate(ppDataSsao);
            Random random = new Random(ppDataSsao.m_RandomVectorKeywords?.GetHashCode() ?? "AOCodeDefault".GetHashCode());

            Vector4[] randomVectors = new Vector4[m_MaxArraySize];
            for (int i = 0; i < m_MaxArraySize; i++)
            {
                randomVectors[i] = URandom.RandomVector3(random) * Mathf.Lerp(1f - ppDataSsao.m_Radius, 1f, URandom.Random01(random));
            }
            m_Material.SetFloat(ID_Bias, ppDataSsao.m_Radius + ppDataSsao.m_Bias);
            m_Material.SetFloat(ID_Radius, ppDataSsao.m_Radius);
            m_Material.SetInt(ID_SampleCount, ppDataSsao.m_SampleCount);
            m_Material.SetVectorArray(ID_SampleSphere, randomVectors);
            m_Material.SetColor(ID_Color, ppDataSsao.m_Color);
            m_Material.SetFloat(ID_Intensity, ppDataSsao.m_Intensity);
            m_Material.EnableKeyword(KW_Dither, ppDataSsao.m_Dither);
        }