GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glPushMatrix();
GL11.glRotatef(...);
// .. render
GL11.glPopMatrix();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glPushMatrix();
GL11.glRotatef(...);
// .. render
GL11.glPopMatrix();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
Так если ось фиксированная, то там куча вычислений у матрицы убирается. Дело доходит до того, что можно повернуть синусом и косинусом, что займёт 4 умножения и 2 сложенияЕсли текстура это U и V то тебе всего то надо вращать эти координаты относительно оси Z. Я бы посоветовал делать это через умножение на матрицу. Я обычно использую ejml (Efficent java matrix library от Google).
можно повернуть синусом и косинусом, что займёт 4 умножения и 2 сложения
x=x0*cos(angle)-y0*sin(angle);
y=y0*cos(angle)+x0*sin(angle);
.addVertexWithUV
?glTranslated
, ни изменение координат в addVertexWithUV
не выход, ибо тогда оно сдвигает текстуру и получается фигняДа как ей пользоваться вообще?В твоих руках матрица.
Вообще-то тренслейт - выход. Просто надо потом обратно сместитьP.S. нет, для первого случая ниglTranslated
, ни изменение координат вaddVertexWithUV
не выход, ибо тогда оно сдвигает текстуру и получается фигня
Грубо говоря смотри:Иначе я не очень понимаю, что ты пытаешься сделать.
Точна хдВообще-то тренслейт - выход. Просто надо потом обратно сместить
glTranslated(0.5, 0.5, 0);
glRotated(Minecraft.getMinecraft().theWorld.getTotalWorldTime(), 0, 0, 1);
glTranslated(-0.5, -0.5, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
Типа так:указать цвет также через glTexParameteri
glTexParameteri(GL_TEXTURE_2D, GL_COLOR, 0)
?