private void drawMeshPart(WorldMeshPart part) { var material = resourcePool.GetDeferredMaterial(part.Material); var partData = resourcePool.GetMeshPartRenderData(part.Part); var perObjectCB = getPerObjectCB(part); perObjectCB.UpdatePerObjectBuffer(ctx, part.WorldMatrix); material.SetCamera(currentCamera.View, currentCamera.Projection); material.SetPerObjectBuffer(ctx, perObjectCB); material.SetToContext(ctx); partData.Draw(ctx); }
private DeferredMaterial.PerObjectConstantBuffer getPerObjectCB(WorldMeshPart part) { return(sharedPerObjectCB ?? (sharedPerObjectCB = DeferredMaterial.CreatePerObjectCB(game))); }