protected override void UpdateInternalVariables(DeviceContextProxy context) { if (NeedUpdate) { materialStruct = new PhongMaterialStruct { Ambient = material.AmbientColor, Diffuse = material.DiffuseColor, Emissive = material.EmissiveColor, Reflect = material.ReflectiveColor, Specular = material.SpecularColor, Shininess = material.SpecularShininess, HasDiffuseMap = material.RenderDiffuseMap && TextureResources[DiffuseIdx] != null ? 1 : 0, HasDiffuseAlphaMap = 0, HasNormalMap = 0, HasDisplacementMap = 0, DisplacementMapScaleMask = material.DisplacementMapScaleMask, RenderShadowMap = 0, HasCubeMap = 0, UVTransformR1 = material.UVTransform.Column1, UVTransformR2 = material.UVTransform.Column2 }; NeedUpdate = false; } }
protected sealed override void UpdateInternalVariables(DeviceContextProxy context) { if (NeedUpdate) { materialStruct = new PhongMaterialStruct { Ambient = material.AmbientColor, Diffuse = material.DiffuseColor, Emissive = material.EmissiveColor, Reflect = material.ReflectiveColor, Specular = material.SpecularColor, Shininess = material.SpecularShininess, HasDiffuseMap = material.RenderDiffuseMap && TextureResources[DiffuseIdx] != null ? 1 : 0, HasDiffuseAlphaMap = material.RenderDiffuseAlphaMap && TextureResources[AlphaIdx] != null ? 1 : 0, HasNormalMap = material.RenderNormalMap && TextureResources[NormalIdx] != null ? 1 : 0, HasDisplacementMap = material.RenderDisplacementMap && TextureResources[DisplaceIdx] != null ? 1 : 0, DisplacementMapScaleMask = material.DisplacementMapScaleMask, RenderShadowMap = material.RenderShadowMap ? 1 : 0, HasCubeMap = material.RenderEnvironmentMap ? 1 : 0, MaxTessDistance = material.MaxTessellationDistance, MinTessDistance = material.MinTessellationDistance, MaxDistTessFactor = material.MaxDistanceTessellationFactor, MinDistTessFactor = material.MinDistanceTessellationFactor, UVTransformR1 = material.UVTransform.Column1, UVTransformR2 = material.UVTransform.Column2 //UVTransformRow1 = new Vector2(material.UVTransform.M11, material.UVTransform.M12), //UVTransformRow2 = new Vector2(material.UVTransform.M21, material.UVTransform.M22), //UVTransformRow3 = Vector2.Zero, //UVTransformRow4 = new Vector2(material.UVTransform.M41, material.UVTransform.M42) }; NeedUpdate = false; } }
protected override void UpdateInternalVariables(DeviceContextProxy context) { if (NeedUpdate) { materialStruct = new PhongMaterialStruct { Diffuse = material.DiffuseColor, HasDiffuseMap = material.ColorStripeXEnabled && (textureIndex & 1u) != 0 ? 1 : 0, HasDiffuseAlphaMap = material.ColorStripeYEnabled && (textureIndex & 1u << 1) != 0 ? 1 : 0, UVTransformR1 = new Vector4(1, 0, 0, 0), UVTransformR2 = new Vector4(0, 1, 0, 0) }; NeedUpdate = false; } }