internal MyMergeInstancing(MyMeshTableSRV meshTable) { m_meshTable = meshTable; m_instancesDataDirty = false; m_tableDirty = false; }
internal MyMergeInstancing(MyMeshTableSRV meshTable) { m_meshTable = meshTable; m_instancesDataDirty = false; m_tablesDirty = false; }
internal MyMaterialMergeGroup(MyMeshTableSRV meshTable, MyMeshMaterialId matId, int index) { m_mergeGroup = new MyMergeInstancing(meshTable); m_rootMaterialRK = MyMeshMaterials1.Table[matId.Index].RepresentationKey; m_index = index; m_actors = new HashSet <MyActor>(); }
internal MyMaterialMergeGroup(MyMeshTableSRV meshTable, MyMeshMaterialId matId, int index) { m_mergeGroup = new MyMergeInstancing(meshTable); m_rootMaterialRK = MyMeshMaterials1.Table[matId.Index].RepresentationKey; Index = index; m_actors = new Dictionary <uint, MyActor>(); m_actorIndices = new Dictionary <MyActor, int>(); }
internal static unsafe void InitSubsystems() { InitializeBlendStates(); InitializeRasterizerStates(); InitilizeSamplerStates(); MyCommon.Init(); MyPipelineStates.Init(); MyTextures.Init(); MyVertexLayouts.Init(); MyShaders.Init(); MyRwTextures.Init(); MyHwBuffers.Init(); MyMeshes.Init(); MyMeshTableSRV.Init(); MyMergeInstancing.Init(); MyGeometryRenderer.Init(); MyLightRendering.Init(); MyShadows.Init(); MyLinesRenderer.Init(); MySpritesRenderer.Init(); MyPrimitivesRenderer.Init(); MyFoliageRenderer.Init(); MyOutline.Init(); MyComponents.Init(); MyBillboardRenderer.Init(); // hardcoded limits MyDebugRenderer.Init(); MyGPUFoliageGenerating.Init(); MyScreenDecals.Init(); MyEnvProbeProcessing.Init(); MyShadowsResolve.Init(); MyAtmosphereRenderer.Init(); MyAAEdgeMarking.Init(); MyScreenPass.Init(); MyCopyToRT.Init(); MyBlendTargets.Init(); MyFXAA.Init(); MyDepthResolve.Init(); MyBloom.Init(); MyLuminanceAverage.Init(); MyToneMapping.Init(); MySSAO.Init(); MyHdrDebugTools.Init(); MySceneMaterials.Init(); MyMaterials1.Init(); MyVoxelMaterials1.Init(); MyMeshMaterials1.Init(); //MyShaderFactory.RunCompilation(); // rebuild }
internal static unsafe void InitSubsystems() { MyRwTextures.Init(); MyHwBuffers.Init(); MyPipelineStates.Init(); ResetShadows(MyRenderProxy.Settings.ShadowCascadeCount, RenderSettings.ShadowQuality.ShadowCascadeResolution()); MyRender11.Init(); MyCommon.Init(); SamplerStates.Init(); MyDepthStencilState.Init(); MyTextures.Init(); MyVertexLayouts.Init(); MyShaders.Init(); MyMeshes.Init(); MyMeshTableSRV.Init(); MyLightRendering.Init(); MyLinesRenderer.Init(); MySpritesRenderer.Init(); MyPrimitivesRenderer.Init(); MyOutline.Init(); MyBlur.Init(); MyTransparentRendering.Init(); MyFoliageComponents.Init(); MyBillboardRenderer.Init(); // hardcoded limits MyDebugRenderer.Init(); MyScreenDecals.Init(); MyEnvProbeProcessing.Init(); MyAtmosphereRenderer.Init(); MyCloudRenderer.Init(); MyAAEdgeMarking.Init(); MyScreenPass.Init(); MyCopyToRT.Init(); MyBlendTargets.Init(); MyFXAA.Init(); MyDepthResolve.Init(); MyBloom.Init(); MyLuminanceAverage.Init(); MyToneMapping.Init(); MySSAO.Init(); MyPlanetBlur.Init(); MyHdrDebugTools.Init(); MySceneMaterials.Init(); MyMaterials1.Init(); MyVoxelMaterials1.Init(); MyMeshMaterials1.Init(); }
internal void AddEntity(uint ID, MeshId model) { var instanceIndex = m_perInstance.Allocate(); m_entities[ID] = new MyInstanceInfo { InstanceIndex = instanceIndex, PageHandles = new List <MyPackedPoolHandle>() }; foreach (var id in m_meshTable.Pages(MyMeshTableSRV.MakeKey(model))) { var pageHandle = m_instancingTable.Allocate(); m_instancingTable.Data[m_instancingTable.AsIndex(pageHandle)] = new MyInstancingTableEntry { InstanceId = instanceIndex, InnerMeshId = id }; m_entities[ID].PageHandles.Add(pageHandle); } m_perInstance.Data[instanceIndex] = MyPerInstanceData.FromWorldMatrix(ref MatrixD.Zero); m_tablesDirty = true; }
internal void AddEntity(MyActor actor, MeshId model) { uint ID = actor.ID; var instanceIndex = m_perInstance.Allocate(); var entityIndex = m_entityInfos.Allocate(); Debug.Assert(instanceIndex == entityIndex); m_entities[ID] = new MyInstanceInfo { InstanceIndex = instanceIndex, PageHandles = new List <MyPackedPoolHandle>() }; int pageOffset = -1; foreach (var id in m_meshTable.Pages(MyMeshTableSRV.MakeKey(model))) { if (pageOffset == -1) { pageOffset = id; } var pageHandle = m_instancingTable.Allocate(); m_instancingTable.Data[m_instancingTable.AsIndex(pageHandle)] = new MyInstancingTableEntry { InstanceId = instanceIndex, InnerMeshId = id }; m_entities[ID].PageHandles.Add(pageHandle); } m_perInstance.Data[instanceIndex] = MyPerInstanceData.FromWorldMatrix(ref MatrixD.Zero, 0); m_entityInfos.Data[instanceIndex] = new MyInstanceEntityInfo { EntityId = ID, PageOffset = pageOffset }; m_tableDirty = true; }
internal MyMaterialMergeGroup(MyMeshTableSRV meshTable, MyMeshMaterialId matId, int index) { m_mergeGroup = new MyMergeInstancing(meshTable); m_rootMaterialRK = MyMeshMaterials1.Table[matId.Index].RepresentationKey; m_index = index; m_actors = new HashSet<MyActor>(); }
internal MyMaterialMergeGroup(MyMeshTableSRV meshTable, MyMeshMaterialId matId, int index) { m_mergeGroup = new MyMergeInstancing(meshTable); m_rootMaterialRK = MyMeshMaterials1.Table[matId.Index].RepresentationKey; Index = index; m_actors = new Dictionary<uint, MyActor>(); m_actorIndices = new Dictionary<MyActor, int>(); }
internal static unsafe void InitSubsystems() { MyRwTextures.Init(); MyHwBuffers.Init(); MyPipelineStates.Init(); ResetShadows(MyRenderProxy.Settings.ShadowCascadeCount, RenderSettings.ShadowQuality.ShadowCascadeResolution()); MyRender11.Init(); MyCommon.Init(); SamplerStates.Init(); MyDepthStencilState.Init(); MyTextures.Init(); MyVertexLayouts.Init(); MyShaders.Init(); MyMeshes.Init(); MyMeshTableSRV.Init(); MyLightRendering.Init(); MyLinesRenderer.Init(); MySpritesRenderer.Init(); MyPrimitivesRenderer.Init(); MyOutline.Init(); MyBlur.Init(); MyTransparentRendering.Init(); MyFoliageComponents.Init(); MyBillboardRenderer.Init(); // hardcoded limits MyDebugRenderer.Init(); MyScreenDecals.Init(); MyEnvProbeProcessing.Init(); MyAtmosphereRenderer.Init(); MyCloudRenderer.Init(); MyAAEdgeMarking.Init(); MyScreenPass.Init(); MyCopyToRT.Init(); MyBlendTargets.Init(); MyFXAA.Init(); MyDepthResolve.Init(); MyBloom.Init(); MyLuminanceAverage.Init(); MyToneMapping.Init(); MySSAO.Init(); MyPlanetBlur.Init(); MyHdrDebugTools.Init(); MySceneMaterials.Init(); MyMaterials1.Init(); MyVoxelMaterials1.Init(); MyMeshMaterials1.Init(); try { if (m_settings.UseStereoRendering) { var openVR = new MyOpenVR(); MyStereoStencilMask.InitUsingOpenVR(); } } catch (System.Exception e) { if (!VRage.MyCompilationSymbols.DX11ForceStereo) { throw; } MyStereoStencilMask.InitUsingUndefinedMask(); } }