|
@@ -812,6 +812,13 @@ void MaterialStorage::MaterialData::update_uniform_buffer(const HashMap<StringNa
|
|
|
_fill_std140_variant_ubo_value(E.value.type, E.value.array_size, Color(0, 0, 0, 1), data, p_use_linear_color);
|
|
|
} else if ((E.value.type == ShaderLanguage::TYPE_VEC3 || E.value.type == ShaderLanguage::TYPE_VEC4) && E.value.hint == ShaderLanguage::ShaderNode::Uniform::HINT_COLOR_CONVERSION_DISABLED) {
|
|
|
_fill_std140_variant_ubo_value(E.value.type, E.value.array_size, Color(0, 0, 0, 1), data, false);
|
|
|
+ } else if (E.value.type == ShaderLanguage::TYPE_MAT2) {
|
|
|
+ // mat uniforms are identity matrix by default.
|
|
|
+ _fill_std140_variant_ubo_value(E.value.type, E.value.array_size, Transform2D(), data, false);
|
|
|
+ } else if (E.value.type == ShaderLanguage::TYPE_MAT3) {
|
|
|
+ _fill_std140_variant_ubo_value(E.value.type, E.value.array_size, Basis(), data, false);
|
|
|
+ } else if (E.value.type == ShaderLanguage::TYPE_MAT4) {
|
|
|
+ _fill_std140_variant_ubo_value(E.value.type, E.value.array_size, Projection(), data, false);
|
|
|
} else {
|
|
|
//else just zero it out
|
|
|
_fill_std140_ubo_empty(E.value.type, E.value.array_size, data);
|