Тема: OpenGL функція glOrtho() і вісь z

Коли я функції glOrtho() вісі z вказую від -1

glOrtho(0, 500, 0, 500, -1, 500);
...
glBegin(GL_LINES);
    glVertex3f(0,0,1);
    glVertex3f(500,500,1);
glEnd();

все працює

а коли 0

glOrtho(0, 500, 0, 500, 0, 500);
...
glBegin(GL_LINES);
    glVertex3f(0,0,1);
    glVertex3f(500,500,1);
glEnd();

нічого не відбувається чому так

glOrtho(
  GLdouble left,
  GLdouble right, ліво право це Х 0 до 500
  GLdouble bottom,
  GLdouble top, низ верх це У 0 до 500
  GLdouble zNear,
  GLdouble zFar вперед назад 0 до 500 а в мене лінія стоїть на 1 по Z чому ж вона не відображається ?
);

2 Востаннє редагувалося 0x9111A (31.07.2015 00:42:57)

Re: OpenGL функція glOrtho() і вісь z

glOrtho(0, 500, 0, 500, -1, 500);
...
glBegin(GL_LINES);
    glVertex3f(0,0,2);
    glVertex3f(500,500,2);
glEnd();

а так видно?

3

Re: OpenGL функція glOrtho() і вісь z

Ні

"Код"
#include <GL\glut.h>
#include <Windows.h>

void Display()
{
    if (GetAsyncKeyState(0x1B))//Esc закриває програму
        exit(0);

    glClear(GL_COLOR_BUFFER_BIT);
    //glRotatef(1, 0, 0, 1);

    glBegin(GL_LINES);
    glColor3f(.2, .2, .2);
    //
    glVertex3f(0,0,2);
    glVertex3f(250,250,2);
    //
    glEnd();

    glutSwapBuffers();
}

void Animation(int)
{
    glutPostRedisplay();
    glutTimerFunc(10, Animation, 0);
}

int main(int argcp, char **argv)
{
    glutInit(&argcp, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowPosition(200, 10);
    glutInitWindowSize(900, 900);
    glutCreateWindow("Games");
    glClearColor(1, 1, 1, 0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 500, 0, 500, -1, 500);
    glutDisplayFunc(Display);
    glutTimerFunc(10, Animation, 0);
    glutMainLoop();
    return 0;
}

4

Re: OpenGL функція glOrtho() і вісь z

На жаль не можу сам запустити і погратись. Схоже координати в інший бік ідуть, спробуйте від’ємну.