Я экспериментировал с рендерингом текста на разных альфа-каналах и заметил кое-что странное в методе drawStringWithShadow( в Minecraft). ) функция: она неправильно обрабатывает альфы. Я визуализирую текст по адресу 0x80FFFFFF, что должно сделать его белым при непрозрачности 50%, верно? Но по какой-то причине только несколько пикселей в отображаемой строке затемняются.
Вот снимок экрана моей проблемы:
Изображение HUD Killstreak с проблемой непрозрачности
Крупный план предыдущего изображения
Может кто-нибудь помочь мне понять, как визуализировать этот текст с непрозрачностью 50 %? Это мой код:
Код: Выделить всё
private static void renderStreakNum(Minecraft mc, int screenWidth, int screenHeight) {
String streakText = "" + streakNum;
int textWidth = mc.fontRenderer.getStringWidth(streakText);
int textX = (screenWidth - textWidth + 400) / 2;
int textY = (screenHeight - 80) / 2;
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glScalef(fscale, fscale, fscale);
mc.fontRenderer.drawStringWithShadow(streakText, textX / fscale, textY / fscale, 0x80FFFFFF);
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... inecraft-1
Мобильная версия