Esempio n. 1
0
        public SamplerObject GetSampler(MatlEnums.ParamId paramId)
        {
            if (!samplerByParamId.ContainsKey(paramId))
            {
                return(defaultSampler);
            }

            // TODO: Log this error?
            return(samplerByParamId[paramId]);
        }
 // TODO: This should be a part of SSBHLib
 private MatlAttribute CreateTexture(MatlEnums.ParamId paramId, string value)
 {
     return(new MatlAttribute
     {
         ParamId = paramId,
         DataType = MatlEnums.ParamDataType.String,
         DataObject = new MatlAttribute.MatlString {
             Text = value
         }
     });
 }
Esempio n. 3
0
        private void SetFloat(UniformBlock uniformBlock, MatlEnums.ParamId paramId, float defaultValue)
        {
            var name = paramId.ToString();

            if (floatByParamId.ContainsKey(paramId))
            {
                var value = floatByParamId[paramId];
                uniformBlock.SetValue(name, value);
            }
            else
            {
                uniformBlock.SetValue(name, defaultValue);
            }
        }
Esempio n. 4
0
        private void SetBool(UniformBlock uniformBlock, MatlEnums.ParamId paramId, bool defaultValue)
        {
            var name = paramId.ToString();

            if (boolByParamId.ContainsKey(paramId))
            {
                var value = boolByParamId[paramId];
                uniformBlock.SetValue(name, value ? 1 : 0);
            }
            else
            {
                uniformBlock.SetValue(name, defaultValue ? 1 : 0);
            }
        }
Esempio n. 5
0
        private void AddFloat(UniformBlock genericMaterial, MatlEnums.ParamId paramId, float defaultValue)
        {
            var name = paramId.ToString();

            if (floatByParamId.ContainsKey(paramId))
            {
                var value = floatByParamId[paramId];
                genericMaterial.SetValue(name, value);
            }
            else
            {
                genericMaterial.SetValue(name, defaultValue);
            }
        }
Esempio n. 6
0
        private void AddBool(UniformBlock genericMaterial, MatlEnums.ParamId paramId, bool defaultValue)
        {
            var name = paramId.ToString();

            if (boolByParamId.ContainsKey(paramId))
            {
                var value = boolByParamId[paramId];
                genericMaterial.SetValue(name, value ? 1 : 0);
            }
            else
            {
                genericMaterial.SetValue(name, defaultValue ? 1 : 0);
            }
        }
Esempio n. 7
0
        private void SetVec4(UniformBlock uniformBlock, MatlEnums.ParamId paramId, Vector4 defaultValue, bool isDebug = false)
        {
            // Convert parameters into colors for easier visualization.
            var name = paramId.ToString();

            if (isDebug)
            {
                name = "vec4Param";
            }

            if (Vec4ParamsMaterialAnimation.ContainsKey(paramId))
            {
                var value = Vec4ParamsMaterialAnimation[paramId];
                uniformBlock.SetValue(name, value);
            }
            else if (vec4ByParamId.ContainsKey(paramId))
            {
                var value = vec4ByParamId[paramId];
                uniformBlock.SetValue(name, value);
            }
            else if (boolByParamId.ContainsKey(paramId))
            {
                var value = boolByParamId[paramId];
                if (value)
                {
                    uniformBlock.SetValue(name, new Vector4(1, 0, 1, 0));
                }
                else
                {
                    uniformBlock.SetValue(name, new Vector4(0, 0, 1, 0));
                }
            }
            else if (floatByParamId.ContainsKey(paramId))
            {
                var value = floatByParamId[paramId];
                uniformBlock.SetValue(name, new Vector4(value, value, value, 0));
            }
            else
            {
                uniformBlock.SetValue(name, defaultValue);
            }
        }
Esempio n. 8
0
        private Texture GetTexture(MatlEnums.ParamId paramId)
        {
            // Set a default to avoid unnecessary conditionals in the shader.
            if (!textureNameByParamId.ContainsKey(paramId))
            {
                return(defaultTextureByParamId[paramId]);
            }

            var textureName = textureNameByParamId[paramId];

            if (TextureByName.ContainsKey(textureName))
            {
                return(TextureByName[textureName]);
            }

            if (DefaultTexturesByName.ContainsKey(textureName))
            {
                return(DefaultTexturesByName[textureName]);
            }
            else
            {
                return(DefaultTextures.Instance.DefaultWhite);
            }
        }
Esempio n. 9
0
        public static Texture GetTexture(RMaterial material, MatlEnums.ParamId paramId)
        {
            // Set a default to avoid unnecessary conditionals in the shader.
            if (!material.HasTexture(paramId))
            {
                return(defaultTextureByParamId[paramId]);
            }

            var textureName = material.GetTextureName(paramId);

            if (material.TextureByName.ContainsKey(textureName))
            {
                return(material.TextureByName[textureName].Texture);
            }

            if (defaultTexturesByName.ContainsKey(textureName))
            {
                return(defaultTexturesByName[textureName]);
            }
            else
            {
                return(DefaultTextures.Instance.Value.DefaultWhite);
            }
        }
Esempio n. 10
0
 public void UpdateBoolean(MatlEnums.ParamId paramId, bool value)
 {
     boolByParamId[paramId]   = value;
     shouldUpdateUniformBlock = true;
 }
Esempio n. 11
0
 public void UpdateFloat(MatlEnums.ParamId paramId, float value)
 {
     floatByParamId[paramId]  = value;
     shouldUpdateUniformBlock = true;
 }
Esempio n. 12
0
 public void UpdateTexture(MatlEnums.ParamId paramId, string value)
 {
     textureNameByParamId[paramId] = value;
     shouldUpdateTextures          = true;
 }
Esempio n. 13
0
 public void UpdateVec4(MatlEnums.ParamId paramId, Vector4 value)
 {
     vec4ByParamId[paramId]   = value;
     shouldUpdateUniformBlock = true;
 }
Esempio n. 14
0
 public void UpdateSampler(MatlEnums.ParamId paramId, SamplerData sampler)
 {
     samplerUpdates.Enqueue(new Tuple <MatlEnums.ParamId, SamplerData>(paramId, sampler));
     shouldUpdateTexturesAndSamplers = true;
 }
Esempio n. 15
0
 public string GetTextureName(MatlEnums.ParamId paramId) => textureNameByParamId[paramId];
Esempio n. 16
0
 public bool HasTexture(MatlEnums.ParamId paramId) => textureNameByParamId.ContainsKey(paramId);