public WaterSubMesh(Mesh mesh, RenderTarget2D reflectionBuffer, RenderTarget2D refractionBuffer, Texture2D offsetMap, Texture2D normalMap) : base(mesh)
 {
     m_ReflectionTarget = reflectionBuffer;
     m_RefractionTarget = refractionBuffer;
     m_OffsetMap = offsetMap;
     m_NormalMap = normalMap;
 }
 public WaterSubMesh(Mesh mesh) : base(mesh)
 {
 }
 public SkySphereSubMesh(Mesh mesh) : base(mesh)
 {
 }
示例#4
0
 protected virtual SubMesh CreateSubMesh(Mesh mesh)
 {
     return new SubMesh(mesh);
 }
 protected override SubMesh CreateSubMesh(Mesh mesh)
 {
     return new SkySphereSubMesh(mesh);
 }
示例#6
0
 protected override SubMesh CreateSubMesh(Mesh mesh)
 {
     return new WaterSubMesh(mesh, m_ReflectionTarget, m_RefractionTarget, m_OffsetMap, m_NormalMap);
 }
示例#7
0
 public SubMesh(Mesh parent)
 {
     m_Parent = parent;
 }
 private void DeferShadowMesh(Mesh mesh)
 {
     if (mesh != null)
     {
         if (!m_ShadowedMeshes.Contains(mesh))
             m_ShadowedMeshes.Add(mesh);
     }
 }
        /// <summary>
        /// Call this for every mesh you create, so it sets the GBuffer textures only once
        /// </summary>
        /// <param name="mesh"></param>
        private void SetupMesh(Mesh mesh)
        {
            Camera3D camera = (CameraManager.Instance.ActiveCamera as Camera3D);

            if (mesh.SubMeshes.Count > 0)
            {
                foreach (SubMesh subMesh in mesh.SubMeshes)
                {
                    if (subMesh.RenderEffect != null)
                    {
                        subMesh.RenderEffect.SetLightBuffer(m_LightTarget);
                        subMesh.RenderEffect.SetLightBufferPixelSize(m_HalfPixel);
                        subMesh.RenderEffect.SetAmbientColor(AmbientLighting);
                        subMesh.RenderEffect.SetFogProperties(m_FogProperties);
                        subMesh.RenderEffect.SetToneMappingProperties(m_ToneMappingProperties);
                        subMesh.RenderEffect.EnableLighting(subMesh.MetaData.EnableLighting);
                        subMesh.RenderEffect.EnableNormalMap(subMesh.MetaData.UseNormalMap);
                        subMesh.RenderEffect.SetDepthBuffer(m_SecondaryDepthTarget);

                        if (camera != null)
                            subMesh.RenderEffect.SetFarClip(camera.FarPlane);
                    }
                }
            }

            // If it is shadowed add it to the shadow buffer ( if it hasn't already )
            if (mesh.CastShadows)
                DeferShadowMesh(mesh);
        }