コード例 #1
0
        private void OpenGLControl_OpenGLDraw(object sender, OpenGLEventArgs args)
        {
            world.Step(1.0f / 100.0f, true);

            OpenGL gl = args.OpenGL;

            // Clear The Screen And The Depth Buffer
            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);

            // Move Left And Into The Screen
            gl.LoadIdentity();

            float[] position    = Conversion.ToFloat(body.Position);
            float[] orientation = Conversion.ToFloat(body.Orientation);

            gl.PushMatrix();
            setTransform(gl, position, orientation);

            //Teapot tp = new Teapot();
            //tp.Draw(gl, 14, 1, OpenGL.GL_FILL);
            Cube cube  = new Cube();
            var  faces = cube.Faces;

            foreach (var face in faces)
            {
                SharpGL.SceneGraph.Assets.Material material = new SharpGL.SceneGraph.Assets.Material();
                material.Ambient = System.Drawing.Color.Crimson;
                face.Material    = material;
            }

            cube.Render(gl, SharpGL.SceneGraph.Core.RenderMode.Render);
            gl.PopMatrix();

            setTransform(gl, position, orientation);

            //Teapot tp = new Teapot();
            //tp.Draw(gl, 14, 1, OpenGL.GL_FILL);
            Cube cube  = new Cube();
            var  faces = cube.Faces;

            foreach (var face in faces)
            {
                SharpGL.SceneGraph.Assets.Material material = new SharpGL.SceneGraph.Assets.Material();
                material.Ambient = System.Drawing.Color.Crimson;
                face.Material    = material;
            }

            cube.Render(gl, SharpGL.SceneGraph.Core.RenderMode.Render);
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: madyanov/UEViewer
 private void dataGridView1_SelectionChanged(object sender, EventArgs e)
 {
     FindObject(sender as DataGridView);
     if (selectedObject != null)
     {
         selectedObject.Decompile();
         if (selectedObject.IsClassType("Texture"))
         {
             SharpGL.SceneGraph.Assets.Texture cube_texture = new SharpGL.SceneGraph.Assets.Texture();
             Bitmap texture = LibSquish.GetImage((UTexture)selectedObject);
             cube_texture.Create(gl, texture);
             SharpGL.SceneGraph.Assets.Material material = new SharpGL.SceneGraph.Assets.Material();
             material.Texture = cube_texture;
             cube             = new Cube();
             cube.Material    = material;
             BoundingVolume boundingVolume = cube.BoundingVolume;
             float[]        extent         = new float[3];
             cube.BoundingVolume.GetBoundDimensions(out extent[0], out extent[1], out extent[2]);
             float maxExtent   = extent.Max();
             float scaleFactor = maxExtent > 10 ? 10.0f / maxExtent : 1;
             cube.Transformation.ScaleX = scaleFactor;
             cube.Transformation.ScaleY = scaleFactor;
             cube.Transformation.ScaleZ = scaleFactor;
         }
         if (selectedObject.IsClassType("Sound"))
         {
             PlaySound();
         }
         if (selectedObject.IsClassType("StaticMesh"))
         {
             smi = new StaticMeshInstance();
             smi.Init((UStaticMesh)selectedObject, gl);
             BoundingVolume boundingVolume = smi.BoundingVolume;
             float[]        extent         = new float[3];
             smi.BoundingVolume.GetBoundDimensions(out extent[0], out extent[1], out extent[2]);
             float maxExtent = extent.Max();
             //  Scale so that we are at most 10 units in size.
             float scaleFactor = maxExtent > 10 ? 10.0f / maxExtent : 1;
             smi.Transformation.ScaleX  = scaleFactor;
             smi.Transformation.ScaleY  = scaleFactor;
             smi.Transformation.ScaleZ  = scaleFactor;
             smi.Transformation.RotateX = -90;
         }
     }
 }