Привязка текстуры

Версия Minecraft
1.12.2

sk9zist :l

Исправился
981
18
157
Нужно отрисовать на координатах моего блока окружность с кастомной текстурой так, чтобы она не растягивалась и не искажалась в принципе, как ее отрисовывать?
 

sk9zist :l

Исправился
981
18
157
Не получилось. Написал вот это:

Java:
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;
        }
    }
(пытаюсь сначала отрендерить квадрат как в топике, который ты скинул, - не рендериться ничего, ни на коордах 7 72 10, ни на 7 82 10, и даже не на координатах 0 0 0)
 
Последнее редактирование:
177
4
22
Вопрос ещё небольшой, нужно ли ставить @SideOnly(Side.CLIENT) перед эвентом? (текстура же по сути на клиенте рендериться, или без разницы?)
Желательно.

И ещё: Проверь, работает-ли у тебя эвент вообще?
 

sk9zist :l

Исправился
981
18
157
Проверь, работает-ли у тебя эвент вообще?
Уже несколько раз. Я писал или нет? Просто непомню. Вообщем тестовый лог выводит в консоль, как бешеный строчит. А вот текстуру/квадрат хотябы не рендерит.
~~
Мне кажеться у меня вообще GL11/GlStateManager не работают.
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
не работали, ты бы ничего не видел в майне)
Я в том смысле, что в моём эвенте они не работают. Сам незнаю что конкретно в них не работает, но майнкрафтовские то работают, да.
 

sk9zist :l

Исправился
981
18
157

jopi

Попрошайка
1,421
30
260
Я примерно так и написал уже.

Только тут надо static делать.
У меня так:
Java:
private static ResourceLocation texture = new ResourceLocation(Main.MODID + ":textures/gui/0.png");
~~

Можно просто текстуру круга забиндить? А я рисовал окружность тесселятором...
~~
Сейчас у меня вот такой код:
евенты:
GlStateManager.pushMatrix();
GlStateManager.enableAlpha();
GlStateManager.translate(-7, 72, 10);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
GlStateManager.disableAlpha();
GlStateManager.popMatrix();
Но текстура не рендериться. Её нет просто на координатах -7 72 10. Как быть?
(сам эвент рабочий, в консоль выводит тестовое мсг)
Гений кода, почитай для чего нужен static, да и еще приватный...
1605380950552.png

Хочешь чето рисовать?
1. Импортируем GL11, 2:
Java:
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);
Пример как отрисовать текстуру в 3д пространстве
 

Вложения

  • 1605380948488.png
    1605380948488.png
    8.3 KB · Просмотры: 7

sk9zist :l

Исправился
981
18
157
Гений кода, почитай для чего нужен static, да и еще приватный...
Да знаю я, надеялся что никто не обратит внимание уже на эту часть в моём сообщение...
Импортируем GL11
А зачем этот шаг?) Он ведь без импорта не будет работать.
Пример как отрисовать текстуру в 2д пространстве
Спасибо, сейчас попробую.
 

sk9zist :l

Исправился
981
18
157

jopi

Попрошайка
1,421
30
260
@hardronix Тесселлятор на 1.12.2 кастрирован полностью и слава богу, потому-что сделан он был то ли под VBO, то ли под что, не помню уже точно, один чертов случай легче напрямую его рендерить через гл и не парится
 
177
4
22
Тесселлятор на 1.12.2 кастрирован полностью
Правда? Наконец-то демон вымер!!!!!!!
Ещё меня в нём бесит одна единственная такая ошибочка, маааленькая... "Already Tesselating!"...

потому-что сделан он был то ли под VBO

Да и все мы знаем под чем делали тесселятор...
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
Последнее редактирование:
177
4
22
Зачем же ты мне его так активно рекомендуешь (через него делать)? Я бы предпочёл всё-таки простой GL.
Не рекомендую на самом деле, это как запасной вариант. Прости, если ты не так понял. Я написал про два варианта - Tesselator и GL, а не "Используй тесселятор он круче он ваще всё могёт".
 
  • Чего!?
Реакции: jopi

sk9zist :l

Исправился
981
18
157
@jopi ты, кажеться у себя забыл матрицу открыть,закрыть?
Я делал до этого
Java:
Но оно почему-то не работало, как так?
 
Последнее редактирование:

jopi

Попрошайка
1,421
30
260
@Sk9zist ты вообще знаешь для чего матрица предназначена или нет? явно нет если такие глупые вопросы
 

sk9zist :l

Исправился
981
18
157
@jopi не работает твой код, к сожалению.
На нужных координатах ничего нет (абсолютно):

2020-11-14_23.00.01.png
сейчас ещё раз буду проверять, выводит ли лог в консоль ...
 
Сверху