} // SetCommonParameters /// <summary> /// Begins the G Buffer simple technique. /// </summary> internal void RenderModelSimple(ref Matrix worldMatrix, Assets.Model model, Material material, int meshIndex, int meshPart) { try { Resource.CurrentTechnique = gBufferSimpleTechnique; // Does not produce a graphic call. SetCommonParameters(ref worldMatrix, material); Resource.CurrentTechnique.Passes[0].Apply(); model.RenderMeshPart(meshIndex, meshPart); } catch (Exception e) { throw new InvalidOperationException("G-Buffer: Unable to render model.", e); } } // RenderModelSimple
} // RenderModelWithParallax /// <summary> /// Begins the G Buffer "skinned simple" technique. /// </summary> internal void RenderModelSkinnedSimple(ref Matrix worldMatrix, Assets.Model model, Material material, int meshIndex, int meshPart, Matrix[] boneTransform) { try { Resource.CurrentTechnique = gBufferSkinnedSimple; SetCommonParameters(ref worldMatrix, material); spBones.Value = boneTransform; Resource.CurrentTechnique.Passes[0].Apply(); model.RenderMeshPart(meshIndex, meshPart); } catch (Exception e) { throw new InvalidOperationException("G-Buffer: Unable to render model.", e); } } // RenderModelSkinnedSimple
} // RenderModelSimple /// <summary> /// Begins the G Buffer "with normals" technique. /// </summary> internal void RenderModelWithNormals(ref Matrix worldMatrix, Assets.Model model, Material material, int meshIndex, int meshPart) { try { Resource.CurrentTechnique = gBufferWithNormalMap; SetCommonParameters(ref worldMatrix, material); spObjectNormalTexture.Value = material.NormalTexture; Resource.CurrentTechnique.Passes[0].Apply(); model.RenderMeshPart(meshIndex, meshPart); } catch (Exception e) { throw new InvalidOperationException("G-Buffer: Unable to render model.", e); } } // RenderModelWithNormals
} // RenderModelWithNormals /// <summary> /// Begins the G Buffer "with parallax" technique. /// </summary> internal void RenderModelWithParallax(ref Matrix worldMatrix, Assets.Model model, Material material, int meshIndex, int meshPart) { try { Resource.CurrentTechnique = gBufferWithParallax; SetCommonParameters(ref worldMatrix, material); spObjectNormalTexture.Value = material.NormalTexture; spObjectNormalTextureSize.Value = new Vector2(material.NormalTexture.Width, material.NormalTexture.Height); spLODThreshold.Value = material.ParallaxLodThreshold; spMinimumNumberSamples.Value = material.ParallaxMinimumNumberSamples; spMaximumNumberSamples.Value = material.ParallaxMaximumNumberSamples; spHeightMapScale.Value = material.ParallaxHeightMapScale; Resource.CurrentTechnique.Passes[0].Apply(); model.RenderMeshPart(meshIndex, meshPart); } catch (Exception e) { throw new InvalidOperationException("G-Buffer: Unable to render model.", e); } } // RenderModelWithParallax