public static bool AllowQuickAndDirtyMeshing = true;
public static int MeshesPerFrame = 2;
public static int TexturesToDownloadPerFrame = 2;
+ /// <summary>Should we try to optimize by not drawing objects occluded behind other objects</summary>
+ public static bool OcclusionCullingEnabled = true;
}
}
public bool RenderAvatarSkeleton = false;\r
\r
/// <summary>\r
- /// Should we try to optimize by not drawing objects occluded behind other objects\r
- /// </summary>\r
- public bool OcclusionCullingEnabled = true;\r
-\r
- /// <summary>\r
/// Cache images after jpeg2000 decode. Uses a lot of disk space and can cause disk trashing\r
/// </summary>\r
public bool CacheDecodedTextures = false;\r
{\r
SortedObjects = new List<SceneObject>();\r
VisibleAvatars = new List<RenderAvatar>();\r
- if (OcclusionCullingEnabled)\r
+ if (RenderSettings.OcclusionCullingEnabled)\r
{\r
OccludedObjects = new List<SceneObject>();\r
}\r
if (LODFactor(obj.DistanceSquared, obj.BasePrim.Scale, obj.BoundingVolume.R) < minLODFactor) continue;\r
\r
obj.Attached = false;\r
- if (OcclusionCullingEnabled && obj.Occluded())\r
+ if (obj.Occluded())\r
{\r
OccludedObjects.Add(obj);\r
}\r
obj.AttachedStateKnown = true;\r
}\r
\r
- if (OcclusionCullingEnabled && obj.Occluded())\r
+ if (obj.Occluded())\r
{\r
OccludedObjects.Add(obj);\r
}\r
\r
private void RenderOccludedObjects()\r
{\r
- if (!OcclusionCullingEnabled) return;\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
\r
GL.EnableClientState(ArrayCap.VertexArray);\r
GL.ColorMask(false, false, false, false);\r
private void cbMisc_CheckedChanged(object sender, EventArgs e)\r
{\r
miscEnabled = cbMisc.Checked;\r
- OcclusionCullingEnabled = miscEnabled;\r
+ RenderSettings.OcclusionCullingEnabled = miscEnabled;\r
}\r
}\r
}\r
\r
public void StartQuery(RenderPass pass)\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
if (pass == RenderPass.Simple)\r
{\r
StartSimpleQuery();\r
\r
public void EndQuery(RenderPass pass)\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
if (pass == RenderPass.Simple)\r
{\r
EndSimpleQuery();\r
\r
public void StartAlphaQuery()\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
if (AlphaQueryID == -1)\r
{\r
GL.GenQueries(1, out AlphaQueryID);\r
\r
public void EndAlphaQuery()\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
if (AlphaQueryID > 0)\r
{\r
GL.EndQuery(QueryTarget.SamplesPassed);\r
\r
public void StartSimpleQuery()\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
if (SimpleQueryID == -1)\r
{\r
GL.GenQueries(1, out SimpleQueryID);\r
\r
public void EndSimpleQuery()\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return;\r
+\r
if (SimpleQueryID > 0)\r
{\r
GL.EndQuery(QueryTarget.SamplesPassed);\r
\r
public bool Occluded()\r
{\r
+ if (!RenderSettings.OcclusionCullingEnabled) return false;\r
+\r
if ((SimpleQueryID == -1 && AlphaQueryID == -1))\r
{\r
return false;\r