0

我尝试学习 OpenTk(旧版 Tao 框架)但我不能简单地画线:


using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL;
using OpenTK.Audio;
using OpenTK.Audio.OpenAL;
using OpenTK.Input;

namespace Test1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void glControl1_Paint(object sender, PaintEventArgs e)
        {
// COORDINATE SYSTEM ALGORITHM:
            GL.ClearColor(1.0f, 1.0f, 1.0f, 1.0f);
            GL.ShadeModel(ShadingModel.Flat);
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            glControl1.SwapBuffers();
            GL.Begin(BeginMode.Lines);
            GL.Vertex2(0.0, -1.0);
            GL.Vertex2(0.0, 1.0);
            GL.Vertex2(1.0, 0.0);
            GL.Vertex2(-1.0, 0.0);
            GL.End();
        }

    }
}

我看不到坐标系。我认为不能在 vs 2008 中运行 open tk?你最好的建议是什么?

4

2 回答 2

1

几件事:

  • 这与完全能够编译 C# 代码的 Visual C# 2008 无关。
  • 您没有设置要绘制线条的颜色。写 GL.Color3(1,0,0); 就在 GL.Begin 之前
  • SwapBuffers 将您刚刚绘制的内容放在屏幕上。在您的情况下,它是 glClear = 白屏的结果。您的以下命令被在(函数的第一行)之后发生的 glClearColor 取消
  • 你需要告诉 OpenGL 如何在空间中变换你的顶点。(在这种情况下,它应该可以工作,但这是巧合)。在任何教程中阅读 glMatrixMode、glLoadIdentity、glOrtho/gluLookAt、glTranslate(基本上:matrixmode(PROJECTION); loadidentity; glOrtho(-1,1,-1,1,-1,1);matrixmode(MODELVIEW);loadIdentity;translate (如你所愿) )
于 2011-05-19T21:57:17.387 回答
0

它将在 VS2008 中运行。

这里有一些很好的 OpenTK 起始代码,可以引导您正确设置 Winform + GLControl 和一些简单的渲染。(应该足以让你理清卡尔文指出的各种问题。)

http://www.opentk.com/doc/chapter/2/glcontrol

于 2011-06-08T15:48:50.480 回答