Using the OpenTK library, I try to fill the field with dots evenly, but for some reason this simple thing fails.
At certain values, stripes appear - blank areas.
This is best seen in the screenshot:

alt text

I give the full code:

using System; using System.Drawing; using OpenTK; using OpenTK.Graphics; using OpenTK.Graphics.OpenGL; using OpenTK.Input; namespace testOpenTK { class Game : GameWindow { public Game() : base(900, 900, GraphicsMode.Default, "OpenTK Quick Start Sample") { VSync = VSyncMode.On; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); GL.ClearColor(Color.White); GL.Enable(EnableCap.DepthTest); GL.MatrixMode(MatrixMode.Projection); GL.LoadIdentity(); GL.Ortho(0, Width, 0, Height, -1, 1); // Верхний левый угол имеет кооординаты(0, 0) GL.Viewport(0, 0, Width, Height); // Использовать всю поверхность GLControl под рисование } /// <summary> /// Called when it is time to setup the next frame. Add you game logic here. /// </summary> /// <param name="e">Contains timing information for framerate independent logic.</param> protected override void OnUpdateFrame(FrameEventArgs e) { base.OnUpdateFrame(e); if (Keyboard[Key.Escape]) Exit(); } /// <summary> /// Called when it is time to render the next frame. Add your rendering code here. /// </summary> /// <param name="e">Contains timing information.</param> protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); GL.MatrixMode(MatrixMode.Modelview); GL.LoadIdentity(); GL.PointSize(1); GL.Begin(BeginMode.Points); for (int i = 0; i < Width; i++) { for (int j = 0; j < Height; j++) { GL.Color3(Color.Violet); GL.Vertex2(i, j); } } GL.End(); SwapBuffers(); } } class Program { [STAThread] private static void Main() { using (Game game = new Game()) { game.Run(30.0); } } } } 

Maybe someone knows what could be the source of the problem?

The version of opentk-1.1 / stable-5.
OS Windows 7.
ATI Radeon HD 5700 graphics card

    2 answers 2

    You do not have errors in the code. ATI Radeon cards are not too friendly with OpenGL, this is probably the problem in video card drivers.

      Try instead of drawing points to draw filled rectangles the size of one pixel (or slightly less).

      • four
        Please try to leave a little more detailed answers. - 0xdb