Нет, обычно рендерю, через тесселятор.Лол. Никогда такого не замечал. Может рендришь как-то не так?
Не понимаю каким раком тут UV, но оно по ширине 0-1 (по высоте меньше)Может uv не очень точное? Или там оно 1 и 0?
Ну, правильно, этот баг при сужении появляется. Там соотношение с оригиналом 0,47FХз, наблюдал подобное только при изменении размера окна...
Только прочитав это дошло что в этом видео что-то не то - обычно GUI двигать нельзя XDА ты не мою ли либу для таких передвижений юзаешь
Вообще-то наоборот. У майна есть дефолтный скейл гуи )который в настройках указывается), поэтому использовать целочисленные для позиционирования слишком неудобно и могут возника такие вот неточности..Решение: перейти на не дробные числа.
Оно будет двигаться рывками, некрасиво.Вообще-то наоборот. У майна есть дефолтный скейл гуи )который в настройках указывается), поэтому использовать целочисленные для позиционирования слишком неудобно и могут возника такие вот неточности..
Нет - своюА ты не мою ли либу для таких передвижений юзаешь? Я там прост со scissor балуюсь много.
GL11.glScaled(0.5, 0.5, 1.0);
double x = 111.6 + (player.ticksExisted % 100 * 4) * 0.3;
Tessellator tessellator = Tessellator.instance;
GLState.disableTexture2D();
GLState.setColor4f(1f, 0f, 0f, 1f);
tessellator.startDrawingQuads();
tessellator.addVertex(x, 20.0, 0.0D);
tessellator.addVertex(x, 220.0, 0.0D);
tessellator.addVertex(x + 0.8, 220.0, 0.0D);
tessellator.addVertex(x + 0.8, 20.0, 0.0D);
tessellator.draw();
GLState.enableTexture2D();
GL11.glScaled(2.0, 2.0, 1.0);
Еще есть, например, скролл списка модов.Не совсем. ЕМНИП, майн вместо честного скролла просто кладет в слоты другие предметы.
Там позиция и размеры целочисленные, скорее всего.Т.е движение элементов вниз вверх.
А как это пофиксить? Не между пикселей экрана же?Тебе @JustAGod всё правильно написал.
Можешь хранить координаты элементов в вещественных числах, но рисовать надо, конвертируя их в целочисленный тип.
Вот тебе код, который убирает майновский гуискейл (х2) и рисует едущую линию. Каждые N пикселей она исчезает, потом снова появляется.
Java:GL11.glScaled(0.5, 0.5, 1.0); double x = 111.6 + (player.ticksExisted % 100 * 4) * 0.3; Tessellator tessellator = Tessellator.instance; GLState.disableTexture2D(); GLState.setColor4f(1f, 0f, 0f, 1f); tessellator.startDrawingQuads(); tessellator.addVertex(x, 20.0, 0.0D); tessellator.addVertex(x, 220.0, 0.0D); tessellator.addVertex(x + 0.8, 220.0, 0.0D); tessellator.addVertex(x + 0.8, 20.0, 0.0D); tessellator.draw(); GLState.enableTexture2D(); GL11.glScaled(2.0, 2.0, 1.0);
Так происходит, из-за того что при отрисовке полигон находится между центрами двух пикселей, и они оба в него не попадают.
Наглядная пикча, где я указал X координату углов нашей линии, синие точки - точки семпла фрагментов:
P.S. Майновский гуискейл - говнина.
Можешь хранить координаты элементов в вещественных числах, но рисовать надо, конвертируя их в целочисленный тип.
Не между пикселей экрана же?
Для наглядности примера убрал майновский скейл, чтобы координаты в итоге соответствовали тем, что я написал в коде, а не заскейлились в два раза.И причём тут майновский гуи-скейл? Разве он не просто GL11.glScalef?