[1.7.10] Вращение изображения в рендереТайла

318
12
Код:
PortalTileToEden tile = (PortalTileToEden) t.getWorldObj().getTileEntity(t.xCoord, t.yCoord, t.zCoord);

        GL11.glPushMatrix();
        GL11.glTranslatef((float)x-1F, (float)y, (float)z-1F);
        GL11.glScalef(3, 1, 3);
        GL11.glTranslatef(0, 0.5F, 0.5F);
        //GL11.glRotatef(tile.rotation, 0, 1, 0);
        GL11.glTranslatef(0, -0.5F, -0.5F);

        GL11.glDisable(GL11.GL_LIGHTING);
        Tessellator tl = Tessellator.instance;
        this.bindTexture(textureModel);
        tl.startDrawingQuads();
        {
            tl.addVertexWithUV(0,0.05F,1,1,1);
            tl.addVertexWithUV(0,0.05F,0,1,0);
            tl.addVertexWithUV(1,0.05F,0,0,0);
            tl.addVertexWithUV(1,0.05F,1,0,1);
            
            tl.addVertexWithUV(0,0.05F,0,0,0);
            tl.addVertexWithUV(0,0.05F,1,0,1);
            tl.addVertexWithUV(1,0.05F,1,1,1);
            tl.addVertexWithUV(1,0.05F,0,1,0);
        }
        tl.draw();
        GL11.glEnable(GL11.GL_LIGHTING);
        GL11.glPopMatrix();


Ребят, здравствуйте. Этот код рендерит одну печать на блоке.
Есть закоментированный код: //GL11.glRotatef(tile.rotation, 0, 1, 0);
tile.rotation - это перменная которая постоянно находится в апдейте. Каждый тик +1 добавляется к ней.
Он поидеи должен вращать печать ВОКРУГ центра печати. Но вращает вокруг угла блока. Я уже все туторы по опенГЛ облазил, но не врубаюсь как это сделать.. Блин, надеюсь только на знатоков этого форума
 
Да блин, оно не помагает. Оно вращает во круг угла конструкции блока. А мне надо что-бы вращало по кругу во круг центра блока.
 
Сам делай, тебе ссылку дали. Я с VBО уже 2 месяц парюсь - тщетно.
 
Я там всё прочитал - бесполезно..
Суть в том, что у меня всё нормально. Только поворачивает во круг КАКОГО ТО угла блока. А как сделать во круг центра блока?.. Может я не ясно изьясняю что я хочу, но всё таки. Может я настолько тупой, но я не понимаю как это вообще даже работает ;c
Что я накодил и что я из этого понял: 1) GL11.glTranslatef((float)x-1F, (float)y, (float)z-1F) - перемещает модель на -1 координату. 
2) GL11.glScalef(3, 1, 3) - растягивает текстуру. Что-бы она была 3*3 блока. 
3) GL11.glRotatef(tile.rotation, 0, 1, 0) - должно поворачивать. Но как тут указать во круг чего поворачивать? Как мне узнать координаты центра? Ибо я даже в это не вдупляю.. Но поидеи центер модели должен быть x=1,5; y=0; z=1,5. Так? Если да, то как указать, что бы поворачивало относительно во круг этих точек? 
4) Я тупой как кирпич в рендере. Мне вообще рендер дается с очень большой сложностью.
Ребят, ну пожалуйста, помогите :3
 
Как я люблю говорить - не знаешь, делай проще:
1. Открываешь Techne
2. Создаёшь модель
3. Вешаешь текстуру
4. Делаешь простой рендер
5. Вращаешь через glRotate
6. ???????
7. Profit
 
Назад
Сверху