Ejemplo n.º 1
0
        public override void Render(GraphicsPipeline gPipeline)
        {
            // set scale
            gPipeline.BeginScene();

            base.Render(gPipeline);

            if (shape.IsIndexed)
            {
                for (int i = 0; i < shape.Indices.Length; i++)
                {
                    gDevice.Indices = shape.Indices[i];
                    int vIdx = shape.IndexVRefs[i];
                    gDevice.VertexFormat = shape.VertexFormats[vIdx];
                    gDevice.SetStreamSource(0, shape.Vertices[vIdx], 0);
                    gDevice.DrawIndexedPrimitives(shape.PrimTypes[i], 0, 0, shape.VertexCount[vIdx], 0, shape.PrimitiveCounts[i]);
                }
            }
            else
            {
                for (int i = 0; i < shape.Vertices.Length; i++)
                {
                    gDevice.VertexFormat = shape.VertexFormats[i];
                    gDevice.SetStreamSource(0, shape.Vertices[i], 0);
                    gDevice.DrawPrimitives(shape.PrimTypes[i], 0, shape.PrimitiveCounts[i]);
                }
            }

            gPipeline.EndScene();
        }
Ejemplo n.º 2
0
        public override void Render(GraphicsPipeline gPipeline)
        {
            gDevice.RenderState.Lighting = false;
            gPipeline.BeginScene();

            // just draw bounding box for now
            //NuGenRenderCore.Rendering.BoundingBox.DrawWireframe(gDevice, bBox, Color.DarkRed.ToArgb());

            // draw geometry
            if (geom != null)
            {
                geom.UseDiffuseTexture = ((GeometryVisLayer)devIf.LocalSettings["GeometryVisLayer.Diffuse"]).Enabled;

                ShaderInterface shader = null;
                /*if ((bool)devIf.LocalSettings["GeometryVis.HeightShadingEnabled"])
                {
                    shader = hClrShader;
                    shader.Effect.SetValue("MinHeight", -0.5f);
                    shader.Effect.SetValue("HeightScale", 1f);
                    shader.Effect.SetValue("HeightClr", ColorValue.FromColor((Color)devIf.LocalSettings["GeometryVis.HeightShadingClr"]));
                }
                else if (((GeometryVisLayer)devIf.LocalSettings["GeometryVisLayer.Overlay"]).Enabled)
                {
                    shader = defaultShader;
                    shader.Effect.SetValue("OverlayTexture", overlayTexRz.Texture);
                }*/
                shader = sm3Shader;

                if (shader != null)
                {
                    gPipeline.ShaderIf = shader;
                    gPipeline.ShaderEnabled = true;

                    /*shader.Effect.Begin(FX.None);
                    shader.Effect.BeginPass(0);*/

                    geom.Render(gPipeline);

                    /*shader.Effect.EndPass();
                    shader.Effect.End();*/

                    gPipeline.ShaderEnabled = false;
                }
                else
                {
                    geom.Render(gPipeline);
                }

                //gDevice.SetTexture(1, null);
            }

            /*gDevice.VertexFormat = CustomVertex.PositionColored.Format;
            gDevice.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, clipBottomSideQuad);*/

            gPipeline.EndScene();
        }
Ejemplo n.º 3
0
        public override void Render(GraphicsPipeline gPipeline)
        {
            // set scale
            gPipeline.BeginScene();

            base.Render(gPipeline);

            if (shape.IsIndexed)
            {
                for (int i = 0; i < shape.Indices.Length; i++)
                {
                    gDevice.Indices = shape.Indices[i];
                    int vIdx = shape.IndexVRefs[i];
                    gDevice.VertexFormat = shape.VertexFormats[vIdx];
                    gDevice.SetStreamSource(0, shape.Vertices[vIdx], 0);
                    gDevice.DrawIndexedPrimitives(shape.PrimTypes[i], 0, 0, shape.VertexCount[vIdx], 0, shape.PrimitiveCounts[i]);
                }
            }
            else
            {
                for (int i = 0; i < shape.Vertices.Length; i++)
                {
                    gDevice.VertexFormat = shape.VertexFormats[i];
                    gDevice.SetStreamSource(0, shape.Vertices[i], 0);
                    gDevice.DrawPrimitives(shape.PrimTypes[i], 0, shape.PrimitiveCounts[i]);
                }
            }

            gPipeline.EndScene();
        }
Ejemplo n.º 4
0
        public override void Render(GraphicsPipeline gPipeline)
        {
            gPipeline.BeginScene();

            gDevice.RenderState.ZBufferEnable = false;

            gDevice.VertexFormat = CustomVertex.PositionColored.Format;
            gDevice.SetStreamSource(0, vBuffer, 0);
            gDevice.DrawPrimitives(PrimitiveType.LineList, 0, 3);

            if (Selected)
            {
                // just draw yellow line over selected axis
                gDevice.SetStreamSource(0, selectionVBuffer, 0);
                gDevice.DrawPrimitives(PrimitiveType.LineList, InternalSelectedValue - 1, 1);

                // TODO: draw triangular tube on that axis
                /*gDevice.Indices = selectionIBuffer;
                gDevice.SetStreamSource(0, selectionVBuffers[InternalSelectedValue - 1], 0);
                gDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, 6, 0, 6);*/
            }

            gDevice.RenderState.ZBufferEnable = true;

            gPipeline.EndScene();
        }