Open GL nie renderuje poza origo na osi z

Odpowiedz Nowy wątek
2013-07-21 16:34
0

Cześć. Od dawna nie bawiłem się Open GL i teraz mam maly problem. Gdy translatuje moj kwadrat na osi z, znika. Oto caly moj kod opengl.

protected void clearScreen(){
        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
        GL11.glClearColor(0f, 0f, 0f, 0f);
    }
    @Override
    public void render(){
        clearScreen();
        glLoadIdentity();

        glTranslatef(400,300,0);
        glTranslatef(0, 0, -20);

        glBegin(GL_QUADS);
        //-10 z
            glColor3f(1f, 0f, 0f);
            glVertex3f(-10, -10, 0);
            glVertex3f(-10, 10, 0);
            glVertex3f(10, 10, 0);
            glVertex3f(10, -10, 0);
            glEnd();
}

public void initGL() {
        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glLoadIdentity();
        //GL11.glOrtho(0, 800, 0, 600, 1, -1);zauwazylem  ze to zbedne
        //GLU.gluPerspective(45.0f, (float)800 / (float)600, 0.1f, 200.0f);tsk samo jak to
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
// oczywiście próbowałem też z gkuperspective i glortho
    }
edytowany 2x, ostatnio: jammasterz, 2013-07-21 16:45

Pozostało 580 znaków

2013-07-21 16:50
2013-07-21 18:33
0

Kiedys testowalem na działającym kodzie, perspective nic nie robil.
Efekt kamery uzyskuje tlumaczac o kilka pixeli na osi x, po czym obracam o kat nachylenia kamery.
Problem w tym ze jak tylko tlumacze na osi z wszystko znika.

Pozostało 580 znaków

2013-07-21 18:56

Zobacz jak inni inicjują OpenGL, http://www.paulsprojects.net/opengl/template/template.html :

//Set up GL
bool GLInit()
{
    //Init window
    if(!WINDOW::Instance()->Init(   "Project Template", 640, 480, 8, 8, 8, 8, 24, 8,
                                    false, false, true))
        return false;

    //Check for OpenGL version/extensions
    //if(!extgl_Extensions.OpenGL14)
    //{
        //LOG::Instance()->OutputError("I require OpenGL 1.4 support");
        //return false;
    //}

    //Init font
    if(!font.Init())
        return false;

    //set viewport
    int height=WINDOW::Instance()->height;
    if(height==0)
        height=1;

    glViewport(0, 0, WINDOW::Instance()->width, height);

    //Set up projection matrix
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective( 45.0f, (GLfloat)WINDOW::Instance()->width/(GLfloat)WINDOW::Instance()->height,
                    1.0f, 100.0f);

    //Load identity modelview
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    //Shading states
    glShadeModel(GL_SMOOTH);
    glClearColor(backgroundColor.r, backgroundColor.g, backgroundColor.b, backgroundColor.a);
    glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

    //Depth states
    glClearDepth(1.0f);
    glDepthFunc(GL_LEQUAL);
    glEnable(GL_DEPTH_TEST);

    glEnable(GL_CULL_FACE);

    return true;
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0