public DeferredMaterial GetDeferredMaterial(MeshCoreData.Material material)
        {
            if (pool.ContainsKey(material))
            {
                return((DeferredMaterial)pool[material]);
            }

            var ret = new DeferredMaterial(game,
                                           material.DiffuseMap == null ? null : texturePool.LoadTexture(material.DiffuseMap),
                                           material.NormalMap == null ? null : texturePool.LoadTexture(material.NormalMap),
                                           material.SpecularMap == null ? null : texturePool.LoadTexture(material.SpecularMap));

            pool.Add(material, ret);

            return(ret);
        }
 private DeferredMaterial.PerObjectConstantBuffer getPerObjectCB(WorldMeshPart part)
 {
     return(sharedPerObjectCB ?? (sharedPerObjectCB = DeferredMaterial.CreatePerObjectCB(game)));
 }
 /// <summary>
 /// Create GPU buffers necessary for the object
 /// </summary>
 public void CreateBuffers(DX11Game game)
 {
     perObject = DeferredMaterial.CreatePerObjectCB(game);
     perObject.UpdatePerObjectBuffer(game.Device.ImmediateContext, Matrix.Identity);
 }
 public MeshElementPart(DeferredMaterial mat, MeshPartRenderData part)
 {
     this.mat  = mat;
     this.part = part;
 }