1
我最近開始在C#中使用OpenTK進行一個簡單的遊戲但是我似乎無法繪製像點這樣的基本形狀我嘗試了很多東西,但我可以不知道。OpenTK(OpenGL)不會繪製最原始的圖形
我的繪圖程序目前看起來是這樣的:
public static void RenderLoop(object Sender, OpenTK.FrameEventArgs Fea)
{
OpenTK.Graphics.OpenGL.GL.Clear(OpenTK.Graphics.OpenGL.ClearBufferMask.ColorBufferBit | OpenTK.Graphics.OpenGL.ClearBufferMask.DepthBufferBit);
OpenTK.Graphics.OpenGL.GL.Disable(OpenTK.Graphics.OpenGL.EnableCap.PointSmooth);
OpenTK.Graphics.OpenGL.GL.Disable(OpenTK.Graphics.OpenGL.EnableCap.Blend);
OpenTK.Graphics.OpenGL.GL.Disable(OpenTK.Graphics.OpenGL.EnableCap.DepthTest);
OpenTK.Graphics.OpenGL.GL.Disable(OpenTK.Graphics.OpenGL.EnableCap.CullFace);
OpenTK.Graphics.OpenGL.GL.Begin(OpenTK.Graphics.OpenGL.BeginMode.Points);
OpenTK.Graphics.OpenGL.GL.Color3(1f, 1f, 1f);
OpenTK.Graphics.OpenGL.GL.Vertex2(50, 50);
OpenTK.Graphics.OpenGL.GL.End();
OpenTK.Graphics.GraphicsContext.CurrentContext.SwapBuffers();
}
和初始化是這樣的:
public static bool Init()
{
try
{
//1200,850
GameWnd = new GameWindow(1200, 850, new GraphicsMode(new ColorFormat(32), 0), "OpenTK - OpenGL Renderer", GameWindowFlags.Default, DisplayDevice.Default,3,0,GraphicsContextFlags.Default);
GL.Disable(EnableCap.DepthTest); //Disable Z-Buffer, 2D Rendering
GL.Disable(EnableCap.CullFace);
GL.Enable(EnableCap.Texture2D);
GL.Enable(EnableCap.Blend);
GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
GL.PixelStore(PixelStoreParameter.UnpackAlignment, 1);
GL.RenderMode(RenderingMode.Render);
GL.MatrixMode(MatrixMode.Projection);
return true;
}
catch (Exception ex)
{
ErrorHandler.Err(ex, "Renderer has failed to initialize");
return false;
}
}
您的投影矩陣和模型視圖矩陣設置如何顯示? (假設你有一個) – Macke 2011-01-10 11:45:32
@Marcus Lindblom我已經將init代碼添加到了我的帖子中,那就是一切。 (我想2D,我不打算使用任何3D功能) – Mervin 2011-01-10 13:03:09