2011-05-19 24 views
0

我嘗試學習OpenTk(舊版陶框架),但我不能簡單畫線:如何在Vs 2008中運行OpenTk?


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中不能運行tk?你最好的建議是什麼?

回答

1

幾件事情:

  • 這有什麼做用Visual C#2008,這是完全能夠編譯C#代碼。
  • 您不設置要在其中繪製線條的顏色。寫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;翻譯(asYouWish))
0

它將在VS2008中運行。

這裏有一些很好的OpenTK啓動代碼,可以引導您正確設置Winform + GLControl和一些簡單的渲染。 (它應該足以讓你理清加爾文指出的各種問題。)

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