/// <summary> /// The render. /// </summary> /// <remarks></remarks> private void Render() { if (render.pause) { return; } render.BeginScene(Color.Black); cam.move(); SetupMatrices(); render.device.RenderState.Lighting = true; render.device.Lights[0].Type = LightType.Directional; render.device.Lights[0].Ambient = Color.FromArgb(0x80, 0x80, 0x80); render.device.Lights[0].Diffuse = Color.FromArgb(0x80, 0x80, 0x80); render.device.Lights[0].Direction = new Vector3(2.5f, 5.0f, 2.5f); render.device.Material = m1; if (useShaders) { ParsedModel.DisplayedInfo.Draw(ref render.device, pm); } else { ParsedModel.DisplayedInfo.DrawMeshes(ref render.device, pm); } render.EndScene(); }
/// <summary> /// The render. /// </summary> /// <remarks></remarks> private void Render() { if (render.pause) { return; } render.BeginScene(Color.Blue); cam.move(); CheckKeys(); SetupMatrices(); // Reset all face Counts to proper amount, then we zero out any that are drawn as Lightmap surfaces for (int x = 0; x < faceCount.Length; x++) { bsp.BSPRawDataMetaChunks[x].FaceCount = faceCount[x]; } /* * text.DrawText(null, "[Left/Right] Portal #" + portal.ToString() + " / " + portals.Length.ToString(), new Point(5, 5), Color.White); * text.DrawText(null, "Cluster Count", new Point(5, 30), Color.White); * text.DrawText(null, "[1] Front front", new Point(10, 44), showFrontFronts ? Color.Red : Color.White); * text.DrawText(null, bsp.ClusterInfo[portals[portal].FrontCluster].FrontVisibleClusters.Count.ToString(), new Point(120, 44), Color.White); * text.DrawText(null, "[2] Front back", new Point(10, 58), showFrontBacks ? Color.Purple : Color.White); * text.DrawText(null, bsp.ClusterInfo[portals[portal].FrontCluster].BackVisibleClusters.Count.ToString(), new Point(120, 58), Color.White); * text.DrawText(null, "[3] Back front", new Point(10, 72), showBackFronts ? Color.Yellow : Color.White); * text.DrawText(null, bsp.ClusterInfo[portals[portal].BackCluster].FrontVisibleClusters.Count.ToString(), new Point(120, 72), Color.White); * text.DrawText(null, "[4] Back back", new Point(10, 86), showBackBacks ? Color.Green : Color.White); * text.DrawText(null, bsp.ClusterInfo[portals[portal].BackCluster].BackVisibleClusters.Count.ToString(), new Point(120, 86), Color.White); */ render.device.Transform.World = Matrix.Identity; BSPModel.BSPDisplayedInfo.Draw(ref render.device, ref bsp, false, ref cam, null); render.device.Transform.World = Matrix.Identity; // pc.DrawIndex(lightmap, ref render.device); render.EndScene(); }
/// <summary> /// The render. /// </summary> /// <remarks></remarks> private void Render() { if (pause) { return; } device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0); device.BeginScene(); cam.move(); SetupMatrices(); device.Material = DefaultMaterial; device.Transform.World = Matrix.Identity; device.RenderState.CullMode = Cull.Clockwise; // Raw.ParsedModel.DisplayedInfo.Draw(ref device, ref bsp.SkyBox); Material m = new Material(); device.RenderState.CullMode = Cull.None; device.RenderState.FillMode = FillMode.WireFrame; device.RenderState.AlphaBlendEnable = false; device.RenderState.AlphaTestEnable = false; device.Material = DefaultMaterial; dxcoll.DrawMeshes(ref device); if (sphereDisplayAll) { device.Material = BlueMaterial; dxcoll.DrawSpheres(ref device); device.Transform.World = Matrix.Identity; } if (planeDisplayAll) { for (int i = 0; i < mList.Count; i++) { m.Ambient = Color.FromArgb(130, (24 - (i % 25)) * 10, i % 25 * 10); m.Diffuse = m.Ambient; device.Material = m; device.SetTexture(0, null); device.RenderState.AlphaBlendEnable = true; device.RenderState.AlphaTestEnable = true; device.RenderState.DestinationBlend = Blend.Zero; device.RenderState.SourceBlend = Blend.One; device.RenderState.FillMode = FillMode.Solid; mList[i].DrawSubset(0); } // Draw normals device.SetStreamSource(0, Vb, 0); device.Transform.World = Matrix.Identity; device.VertexFormat = CustomVertex.PositionColored.Format; device.DrawPrimitives(PrimitiveType.LineList, 0, normalVertices.Length / 2); } else { m.Ambient = Color.Red; m.Diffuse = Color.Red; device.Material = m; device.SetTexture(0, null); device.RenderState.AlphaBlendEnable = true; device.RenderState.AlphaTestEnable = true; device.RenderState.DestinationBlend = Blend.Zero; device.RenderState.SourceBlend = Blend.One; device.RenderState.FillMode = FillMode.Solid; mList[planeDisplay].DrawSubset(0); // Draw normals device.SetStreamSource(0, Vb, 0); device.Transform.World = Matrix.Identity; device.VertexFormat = CustomVertex.PositionColored.Format; int tpd = planeDisplay; int mesh = 0; while (tpd >= coll.Meshes[mesh].SurfaceData.Length) { tpd -= coll.Meshes[mesh++].SurfaceData.Length; } short s = (short)coll.Meshes[mesh].SurfaceData[tpd].Plane; if (s >= 0) { device.DrawPrimitives(PrimitiveType.LineList, coll.Meshes[mesh].SurfaceData[tpd].Plane * 2, 1); } } device.EndScene(); // Update the screen device.Present(); }
/// <summary> /// The render. /// </summary> /// <remarks></remarks> private void Render() { if (pause) { return; } device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0); device.BeginScene(); cam.move(); SetupMatrices(); MoveSpawnsWithKeyboard(); device.RenderState.FillMode = FillMode.WireFrame; device.Material = DefaultMaterial; device.RenderState.Lighting = true; device.RenderState.CullMode = Cull.None; render.device.SetTexture(0, null); render.device.RenderState.AlphaBlendEnable = true; render.device.RenderState.AlphaTestEnable = true; render.device.RenderState.DestinationBlend = Blend.DestinationAlpha; render.device.RenderState.SourceBlend = Blend.SourceAlpha; device.Transform.World = Matrix.Identity; //Raw.ParsedModel.DisplayedInfo.Draw(ref device, ref bsp.SkyBox); dxcoll.Draw(ref device); if (currentMode == editingModes.Point) { device.RenderState.FillMode = FillMode.Point; device.Material = BlueMaterial; device.RenderState.PointSize = 4; dxcoll.Draw(ref device); #region Render Spheres over selected points device.Material = GreenMaterial; device.RenderState.FillMode = FillMode.WireFrame; device.VertexFormat = CustomVertex.PositionColored.Format; device.RenderState.AlphaBlendEnable = false; device.RenderState.AlphaTestEnable = false; device.SetTexture(0, null); for (int i = 0; i < SelectedPoints.Count; i++) { device.Transform.World = Matrix.Translation(coll.Vertices[SelectedPoints[i]].X, coll.Vertices[SelectedPoints[i]].Y, coll.Vertices[SelectedPoints[i]].Z); sphere.DrawSubset(0); } #endregion } else if (currentMode == editingModes.Surface) { if (currentSurface != -1) { device.RenderState.Lighting = false; device.RenderState.ZBufferEnable = false; device.RenderState.CullMode = Cull.None; device.RenderState.AlphaBlendEnable = true; device.TextureState[0].ColorOperation = TextureOperation.SelectArg1; device.TextureState[0].AlphaOperation = TextureOperation.SelectArg1; device.TextureState[0].ColorArgument1 = TextureArgument.TextureColor; device.TextureState[0].AlphaArgument1 = TextureArgument.TextureColor; //device.Material = GreenMaterial; device.RenderState.FillMode = FillMode.Solid; device.Transform.World = Matrix.Identity; device.DrawIndexedUserPrimitives(PrimitiveType.TriangleFan, 0, coll.Vertices.Length, polygons[currentSurface].indices.Length - 2, polygons[currentSurface].indices, true, coll.Vertices); } } device.EndScene(); // Update the screen device.Present(); }