два simpleOpenGlControl в одном проекте

Задача: Построить в одном проекте в двух разных simpleOpenGlControl две поверхности(например два цилиндра).

Делаю поверхности, если по отдельности то всё замечательно сроит, но вместе одну поверхность никак не хочет строить, заметил что не строит ту которая идет первая:

/*http://esate.ru, FromTula*/

 public Form1()
      {
        InitializeComponent();
        simpleOpenGlControl1.InitializeContexts();//тут пусто
        simpleOpenGlControl2.InitializeContexts();//эту построит
        
      }

[spoiler]
В чём проблема подскажите пожалуйста.
А вообще поверхность строю вот так:

/*http://esate.ru, FromTula*/

   //Фоновая заливка
        Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
 
        // задание матричного режима, GL_MODELVIEW - объектно-видовая матрица
        Gl.glMatrixMode(Gl.GL_MODELVIEW);
        Gl.glLoadIdentity();        // очистка матрицы
 
        /*
         * помещение текущей матрицы в стек матриц
         * Таким образом осуществляется перемещение отрисовываемой сферы в пространстве,
         * не изменяя матрицу, отвечающую за положение камеры (наблюдателя).
         * Если не использовать такой подход, то с каждым визуализированным кадром,
         * камера будет перемещаться, и скоро ее вообще нельзя будет найти.
         */
        Gl.glPushMatrix();
        // перемещение объекта на 6 едениц по оси Z
        Gl.glTranslated(0, 0, -6);
        // поворот сцены на 45 градусов по двум осям X и Y
        Gl.glRotated(45, 1, 1, 0);
 
        Gl.glColor3d(0, 1, 0);       // устанавливаем цвет объекта
        // отрисовка сферы с помощью библиотеки FreeGLUT
        Glut.glutWireSphere(2, 32, 32);
 
        // возврат сохраненной в стеке матрицы
        Gl.glPopMatrix();
        // ожидание, пока библиотека OpenGL завершит визуализацию кадра, очистка буфера
        Gl.glFlush();


Подозреваю что тут надо смотреть в сторону многопоточности, но как это реализовать не могу понять
0       1406        28.02.2011        5

0  
28.02.2011 00:00:00
Я не проверял этот факт в документации, но по-моему несколько simpleOpenGlControl'ов не будут работать.

Вам нужно смотреть в сторону нескольких областей простомтра, на основе одного
simpleOpenGLControl'а

Пример можно глянуть здесь:
0  
28.02.2011 00:00:00
несколько simpleOpenGlControl с графическими примитивами прекрасно работают.
А как тогда быть если ситуация такая:
Используется TabControl и в кажой вкладке должно рисоваться тело???
0  
01.03.2011 00:00:00
несколько simpleOpenGlControl с графическими примитивами прекрасно работают. интересно, думал что не будет работать.
Ну если примитивы работают — то могу только предложить, что не работают именно glut функции, для рисования объектов.

Попробуйте создать тела вращения (самостоятельно отстраивать сферы/цилиндры). В уроках на сайте есть создание тел вращения.
0  
23.09.2011 00:00:00
подскажите пожалуйста как вы работаете с двумя simpleOpenGlControl?!
0  
30.09.2015 22:30:34
Вот, здесь рассказывается как сделать несколько simpleOpenGlControl в одном проекте.
^