public static void SetupVoxelEntity(MyLodTypeEnum lod, MyEffectBase shader, MyRender.MyRenderElement renderElement) { MyEffectVoxels effectVoxels = shader as MyEffectVoxels; { MatrixD worldMatrixD = renderElement.WorldMatrix; worldMatrixD.Translation -= MyRenderCamera.Position; var worldMatrix = (Matrix)worldMatrixD; effectVoxels.SetWorldMatrix(ref worldMatrix); } //effectVoxels.SetVoxelMapPosition((Vector3)(renderElement.WorldMatrix.Translation - MyRenderCamera.Position)); //effectVoxels.SetPositionLocalOffset((Vector3)(renderElement.WorldMatrix.Right)); //effectVoxels.SetPositionLocalScale((Vector3)(renderElement.WorldMatrix.Up)); //effectVoxels.SetLodBounds(new Vector2((float)renderElement.WorldMatrix.M14, (float)renderElement.WorldMatrix.M24)); effectVoxels.SetDiffuseColor(Vector3.One); if (MyRenderSettings.DebugClipmapLodColor && renderElement.VoxelBatch.Lod < MyRenderVoxelCell.LOD_COLORS.Length) { effectVoxels.SetDiffuseColor(MyRenderVoxelCell.LOD_COLORS[renderElement.VoxelBatch.Lod].ToVector3()); } effectVoxels.EnablePerVertexAmbient(MyRender.Settings.EnablePerVertexVoxelAmbient); if (lod == MyLodTypeEnum.LOD_BACKGROUND && renderElement.RenderObject is MyRenderVoxelCellBackground) { SetupAtmosphere(effectVoxels, renderElement.RenderObject as MyRenderVoxelCellBackground); } }
public static void SetupVoxelEntity(MyLodTypeEnum lod, MyEffectBase shader, MyRender.MyRenderElement renderElement) { MyEffectVoxels effectVoxels = shader as MyEffectVoxels; { MatrixD worldMatrixD = renderElement.WorldMatrix; worldMatrixD.Translation -= MyRenderCamera.Position; var worldMatrix = (Matrix)worldMatrixD; effectVoxels.SetWorldMatrix(ref worldMatrix); } var voxelCell = renderElement.RenderObject as MyRenderVoxelCell; if (voxelCell != null) { MyRenderVoxelCell.EffectArgs args; voxelCell.GetEffectArgs(out args); effectVoxels.VoxelVertex.SetArgs(ref args); } effectVoxels.SetDiffuseColor(Vector3.One); if (MyRenderSettings.DebugClipmapLodColor && renderElement.VoxelBatch.Lod < MyRenderVoxelCell.LOD_COLORS.Length) { effectVoxels.SetDiffuseColor(MyRenderVoxelCell.LOD_COLORS[renderElement.VoxelBatch.Lod].ToVector3()); } effectVoxels.EnablePerVertexAmbient( MyRenderSettings.EnableVoxelAo, MyRenderSettings.VoxelAoMin, MyRenderSettings.VoxelAoMax, MyRenderSettings.VoxelAoOffset); }