JOGL OpenGL java Поворот матриц и glPushMatrix

415
07 января 2017, 13:20

собственно код вот такой

private void drawBackground() {
    float x = -1;
    float y = -1f;
    for (int i = 0; i < World.CHUNK_SIZE; i++) {
        for (int j = 0; j < World.CHUNK_SIZE; j++) {
            GL20.glPushMatrix();
            GL20.glRotated(45, 0, 0, 1);
            drawBackgroundTile(x, y);
            GL20.glPopMatrix();
            x += 0.1f;
        }
        y += 0.1f;
        x = -1;
    }
}
private void drawBackgroundTile(float x, float y) {

    {
        Teselator te = Teselator.instance;
        te.bindTexture("background.png");

        te.startDrawingQuads();
        {
            te.add2DVertexWithUV(x + 0, y + 0, 0, 1);
            te.add2DVertexWithUV(x + 0, y + 0.1f,0, 0);
            te.add2DVertexWithUV(x + 0.1f, y + 0.1f, 1, 0);
            te.add2DVertexWithUV(x + 0.1f, y + 0, 1, 1);
        }
        te.draw();
    }

}

Задача кода нарисовать 400 тайлов каждый из которых повернут на 45 градусов а в результате я получаю все сцену повернутую на 45.

Наверно я неправильно понял значение функций glPushMatrix() и glPopMatrix().

Объясните где что подправить надо чтоб все заработало. Заранее спасибо=)

на всякий случай код рендера:

@Override
public void init(GLAutoDrawable glAutoDrawable) {
    GL20 = glAutoDrawable.getGL().getGL2();
    FPSAnimator animator = new FPSAnimator(glAutoDrawable, 10);
    animator.start();
    Debug.start();
    glu = GLU.createGLU(GL20);

}
@Override
public void dispose(GLAutoDrawable glAutoDrawable) {
}
@Override
public void display(GLAutoDrawable glAutoDrawable) {
    GL20.glClear(GL.GL_COLOR_BUFFER_BIT);
    Iterator<Map.Entry<BlockPos, Chunk>> iterator = World.getInstance().getChunksSet().iterator();

    GL20.glPushMatrix();
    while (iterator.hasNext()) {
        Map.Entry<BlockPos, Chunk> e = iterator.next();
        Teselator.instance.translate(e.getKey().getX() * World.CHUNK_SIZE * 0.1f, e.getKey().getY() * World.CHUNK_SIZE * 0.1f);
        e.getValue().onDraw(GL20);
    }
    GL20.glPopMatrix();

}

@Override
public void reshape(GLAutoDrawable glAutoDrawable, int x, int y, int width, int height) {
}
READ ALSO
Изменение watermark itext7 java

Изменение watermark itext7 java

Необходимо с помощью библиотеки для JAVA iText 7 изменить Watemark (водный знак) на первой странице pdf файла, то есть имеется готовый pdf и в нем есть...

364
передать данные из Realm в RecyclerView

передать данные из Realm в RecyclerView

Получаю данные из json и записываю их в БД Realm, как мне их потом передать в RecyclerView ?

555
Копирование страницы из pdf файла в word файл

Копирование страницы из pdf файла в word файл

Необходимо скопировать первую страницу pdf файла в word файл(doc,docx) с помощью ЯП Java

385
Рисование на JPanel&#39;e

Рисование на JPanel'e

Доброго времени суток! Пишу программу похожую на MSPaint для проектаВот ссылка на репозиторий с полным проектом -> https://github

419