sk9zist :l
Исправился
- 981
- 18
- 157
Нужно отрисовать на координатах моего блока окружность с кастомной текстурой так, чтобы она не растягивалась и не искажалась в принципе, как ее отрисовывать?
public static int i = 1;
private static ResourceLocation texture = new ResourceLocation(Main.MODID + ":textures/my/0.png");
//@SideOnly(Side.CLIENT)
@SubscribeEvent
public static void WorldLastEvent(RenderTickEvent e)
{
GlStateManager.pushMatrix();
GlStateManager.disableTexture2D();
GlStateManager.enableBlend();
GlStateManager.disableAlpha();
GlStateManager.translate(7, 72, 10);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buffer = tessellator.getBuffer();
buffer.setTranslation(7, 82, 10);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
buffer.pos(-1, 60, -1).color(250, 250, 250, 100).endVertex();
buffer.pos(-1, 60, 1).color(250, 250, 250, 100).endVertex();
buffer.pos(1, 60, 1).color(250, 250, 250, 100).endVertex();
buffer.pos(1, 60, -1).color(250, 250, 250, 100).endVertex();
tessellator.draw();
buffer.setTranslation(0, 0, 0);
GlStateManager.disableBlend();
GlStateManager.enableTexture2D();
GlStateManager.enableAlpha();
GlStateManager.popMatrix();
if (i == 1)
{
i = 0;
}
}
Желательно.Вопрос ещё небольшой, нужно ли ставить @SideOnly(Side.CLIENT) перед эвентом? (текстура же по сути на клиенте рендериться, или без разницы?)
Уже несколько раз. Я писал или нет? Просто непомню. Вообщем тестовый лог выводит в консоль, как бешеный строчит. А вот текстуру/квадрат хотябы не рендерит.Проверь, работает-ли у тебя эвент вообще?
Если бы они не работали, ты бы ничего не видел в майне)Мне кажеться у меня вообще GL11/GlStateManager не работают.
Я в том смысле, что в моём эвенте они не работают. Сам незнаю что конкретно в них не работает, но майнкрафтовские то работают, да.не работали, ты бы ничего не видел в майне)
В таком случае, заранее спасибо!скачаю MDK для 1.12.2, сам попробую сделать
Гений кода, почитай для чего нужен static, да и еще приватный...Я примерно так и написал уже.
Только тут надо static делать.
У меня так:
~~Java:private static ResourceLocation texture = new ResourceLocation(Main.MODID + ":textures/gui/0.png");
Можно просто текстуру круга забиндить? А я рисовал окружность тесселятором...
~~
Сейчас у меня вот такой код:
Но текстура не рендериться. Её нет просто на координатах -7 72 10. Как быть?евенты:GlStateManager.pushMatrix(); GlStateManager.enableAlpha(); GlStateManager.translate(-7, 72, 10); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); GlStateManager.disableAlpha(); GlStateManager.popMatrix();
(сам эвент рабочий, в консоль выводит тестовое мсг)
double x = твоя_x;
double y = твоя_y;
double z = твоя_z;
double width = твоя_ширина;
double height = твоя_высота;
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_BLEND); //блендинг
GL11.glBlendFunc(GL11.GL_ALPHA_SRC, GL11.GL_ONE_MINUS_ALPHA_SRC);
bindTexture(yourTexture);
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex3d(x, y, z);
GL11.glVertex3d(x + width, y, z);
GL11.glVerted3d(x + width, y + height, z);
GL11.glVertex3d(x, y + height, z);
GL11.glEnd();
GL11.glDisable(GL11.GL_BLEND);
Да знаю я, надеялся что никто не обратит внимание уже на эту часть в моём сообщение...Гений кода, почитай для чего нужен static, да и еще приватный...
А зачем этот шаг?) Он ведь без импорта не будет работать.Импортируем GL11
Спасибо, сейчас попробую.Пример как отрисовать текстуру в 2д пространстве
Можно конечно ещё и тесселятором, сделав квад с текстурой, но ты предпочитаешь путь нормального человека.Пример как отрисовать текстуру
Правда? Наконец-то демон вымер!!!!!!!Тесселлятор на 1.12.2 кастрирован полностью
потому-что сделан он был то ли под VBO
бесит одна единственная такая
Зачем же ты мне его так активно рекомендуешь (через него делать)? Простой гл вроде лучшевсе мы знаем под чем делали тесселятор
Не рекомендую на самом деле, это как запасной вариант. Прости, если ты не так понял. Я написал про два варианта - Tesselator и GL, а не "Используй тесселятор он круче он ваще всё могёт".Зачем же ты мне его так активно рекомендуешь (через него делать)? Я бы предпочёл всё-таки простой GL.