Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Не рисуется примитив


Автор: LionHeart 17.1.2008, 18:05
Код

#include "stdafx.h"
#include "Ex1.h"



//Initializing the scene
void InitGraphicalData()
{
    glClearColor(1.0, 1.0, 0.0, 0.0);
    glShadeModel(GL_FLAT);
}



//Displaying the scene
void DisplayScene()
{
    glClear(GL_COLOR_BUFFER_BIT);


    //Drawing the object using array of vertices
    GLint vertices[] = { 25,  25,
                        100, 325,
                        175,  25,
                        175, 325,
                        250,  25,
                        325, 325};
    
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(2, GL_INT, 0, vertices);
    glColor3f(0.0, 0.0, 1.0);
    glBegin(GL_TRIANGLES);
        glArrayElement(2);
        glArrayElement(3);
        glArrayElement(5);
    glEnd();


    glFlush();
}



int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    glutInit(&nCmdShow,(char **) &lpCmdLine);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(400, 400);
    glutInitWindowPosition(200,100);
    glutCreateWindow("OpenGL demonstration");
    InitGraphicalData();
    glutDisplayFunc(DisplayScene);
    glutMainLoop();

    return 0;
}

Почему-то ничего не рисуется. Только окно желтого цвета.
В чем проблема???  smile 

Автор: Rickert 18.1.2008, 09:14
0) glDrawArray
1) Как работать с камерой
2) Плоскость дальнего отсечения
Искать всё через www.ya.ru -> "Уроки NeHe"

Автор: LionHeart 18.1.2008, 18:20
Спасибо. Я только начал изучать OpenGL. Этот код я взял из книги,в которой он приведен в качестве примера. Мне пока что не нужно сдвигать точку просмотра, включать освещение, накладывать текстуры итд итп. Мне просто надо нарисовать графический примитив при помощи массива вершин. Как это сделать? Где же ошибка в приведенном выше коде?

PS. Я использовал функцию glDrawArrays как вы посоветовали, но все равно ничего не рисуется.
Ошибки не выдает, но и эффекта никакого. Может что-то с масштабом???

Автор: Rickert 19.1.2008, 13:26
А что у тебя там за точки вообще таки? 325, 25, 175. 
Возьми такой массив:
Код
... = {0, 0, 1, 1, 2, 0}


Добавлено через 6 минут и 28 секунд
А, у тебя видать пытается рисовать в экранных координатах. Попробуй массив, который я указал.

Автор: LionHeart 20.1.2008, 22:22
Есть. Благодарю!  smile
Да, тут дело как раз в масштабе.

Автор: Rickert 21.1.2008, 11:20
Пометь  тему как решённую smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)