public virtual void AssignMatrixParameters() { var transform = ParentObject.GetComponent <TransformComponent>(); Matrix worldViewProj = Matrix.CreateScale(ParentObject.Transform.Scale) * transform.AbsoluteTransform; worldViewProj *= SystemCore.GetCamera(Camera).View; worldViewProj *= SystemCore.GetCamera(Camera).Projection; if (ParameterExists("World")) { effect.Parameters["World"].SetValue(Matrix.CreateScale(ParentObject.Transform.Scale) * transform.AbsoluteTransform); } if (ParameterExists("View")) { effect.Parameters["View"].SetValue(SystemCore.GetCamera(Camera).View); } if (ParameterExists("Projection")) { effect.Parameters["Projection"].SetValue(SystemCore.GetCamera(Camera).Projection); } if (ParameterExists("WorldViewProjection")) { effect.Parameters["WorldViewProjection"].SetValue(worldViewProj); } if (ParameterExists("CameraPosition")) { effect.Parameters["CameraPosition"].SetValue(SystemCore.GetCamera(Camera).Position); } if (ParameterExists("ViewInvert")) { effect.Parameters["ViewInvert"].SetValue(Matrix.Invert(SystemCore.GetCamera(Camera).View)); } }
public virtual void AssignMatrixParameters() { var transform = ParentObject.GetComponent <TransformComponent>(); Matrix worldViewProj = Matrix.CreateScale(ParentObject.Transform.Scale) * transform.AbsoluteTransform; worldViewProj *= SystemCore.GetCamera(Camera).View; worldViewProj *= SystemCore.GetCamera(Camera).Projection; if (ParameterExists("World")) { effect.Parameters["World"].SetValue(Matrix.CreateScale(ParentObject.Transform.Scale) * transform.AbsoluteTransform); } if (ParameterExists("View")) { effect.Parameters["View"].SetValue(SystemCore.GetCamera(Camera).View); } if (ParameterExists("Projection")) { effect.Parameters["Projection"].SetValue(SystemCore.GetCamera(Camera).Projection); } if (ParameterExists("WorldViewProjection")) { effect.Parameters["WorldViewProjection"].SetValue(worldViewProj); } if (ParameterExists("CameraPosition")) { effect.Parameters["CameraPosition"].SetValue(SystemCore.GetCamera(Camera).Position); } if (ParameterExists("ViewInvert")) { effect.Parameters["ViewInvert"].SetValue(Matrix.Invert(SystemCore.GetCamera(Camera).View)); } if (ParameterExists("WorldInverseTranspose")) { effect.Parameters["WorldInverseTranspose"].SetValue(Matrix.Transpose(Matrix.Invert(transform.AbsoluteTransform))); } if (ParameterExists("ViewVector")) { effect.Parameters["ViewVector"].SetValue((SystemCore.GetCamera(Camera).View.Forward)); } if (ParameterExists("LightViewProj")) { effect.Parameters["LightViewProj"].SetValue(SystemCore.ShadowMapRenderer.LightViewProj); } if (ParameterExists("CameraDirection")) { effect.Parameters["CameraDirection"].SetValue(SystemCore.ActiveCamera.View.Forward); } if (ParameterExists("CameraPosition")) { effect.Parameters["CameraPosition"].SetValue(SystemCore.ActiveCamera.Position); } if (ParameterExists("FogEnabled")) { effect.Parameters["FogEnabled"].SetValue(SystemCore.ActiveScene.FogEnabled); } if (ParameterExists("c")) { effect.Parameters["c"].SetValue(SystemCore.ActiveScene.FogC); } if (ParameterExists("b")) { effect.Parameters["b"].SetValue(SystemCore.ActiveScene.FogB); } if (ParameterExists("fogColor")) { effect.Parameters["fogColor"].SetValue(SystemCore.ActiveScene.FogColor.ToVector3()); } }