ColorPicker

Версия Minecraft
1.7.10
608
5
15
Захотел тут сделать ColorPicker (выбирать цвета)
color_picker.jpg

Думал можно обойтись тесселятором, но он какой-то кривой:
WchrLbT.png


Как можно градиент по другому зарендерить?
Пытался так в:
Код:
GL11.glDisable(GL11.GL_TEXTURE_2D);
 GL11.glColor3f(1.0F, 1.0F, 1.0F);
 GL11.glVertex2i(0, 0);
 GL11.glColor3f(0.0F, 0.0F, 1.0F);
 GL11.glVertex2i(0, 0);
 GL11.glColor3f(0.0F, 1.0F, 0.0F);
 GL11.glVertex2i(10, 10);
 GL11.glColor3f(1.0F, 0.0F, 0.0F);
 GL11.glVertex2i(10, 10);
 GL11.glEnable(GL11.GL_TEXTURE_2D);
Не вышло. Хелп.
 
В CustomNPC как-то запилено. Можно там глянуть :)


А, там тупо текстурка вставлена


За пару минут находил вот такую хрень
2304883dc4404f3794850a84a0caac0a.png

Если побаловаться с магическими флагами openGL, то может выйдет что-то путное. Не силен в том

Код:
tess.setColorRGBA(color4.getRed(), color4.getGreen(), color4.getBlue(), color4.getAlpha());
tess.addVertex(x2, y2, zLevel);
tess.setColorRGBA(color3.getRed(), color3.getGreen(), color3.getBlue(), color3.getAlpha());
tess.addVertex(x2, y1, zLevel);
tess.setColorRGBA(color2.getRed(), color2.getGreen(), color2.getBlue(), color2.getAlpha());
tess.addVertex(x1, y1, zLevel);
tess.setColorRGBA(color1.getRed(), color1.getGreen(), color1.getBlue(), color1.getAlpha());
tess.addVertex(x1, y2, zLevel);
 
Dahaka написал(а):
В CustomNPC как-то запилено. Можно там глянуть :)


А, там тупо текстурка вставлена


За пару минут находил вот такую хрень
2304883dc4404f3794850a84a0caac0a.png

Если побаловаться с магическими флагами openGL, то может выйдет что-то путное. Не силен в том

Код:
tess.setColorRGBA(color4.getRed(), color4.getGreen(), color4.getBlue(), color4.getAlpha());
tess.addVertex(x2, y2, zLevel);
tess.setColorRGBA(color3.getRed(), color3.getGreen(), color3.getBlue(), color3.getAlpha());
tess.addVertex(x2, y1, zLevel);
tess.setColorRGBA(color2.getRed(), color2.getGreen(), color2.getBlue(), color2.getAlpha());
tess.addVertex(x1, y1, zLevel);
tess.setColorRGBA(color1.getRed(), color1.getGreen(), color1.getBlue(), color1.getAlpha());
tess.addVertex(x1, y2, zLevel);




Точно такой-же код, и у меня вышло то что в шапке, а не плавный переход как у тебя на текстурке.


Магия какая-то... Теперь работает как надо...


Хрень какая-то творится...
y9TpLKO.png
cUQFZ1V.png



Всё вышло, просто надо было поиграться с последовательностью полигонов...
 
RLDKBye.png

Код:
GL11.glDisable(GL11.GL_TEXTURE_2D);
 GL11.glEnable(GL11.GL_BLEND);
 GL11.glDisable(GL11.GL_ALPHA_TEST);
 OpenGlHelper.glBlendFunc(770, 771, 1, 0);
 GL11.glShadeModel(GL11.GL_SMOOTH);

 tess.startDrawingQuads();
 tess.setColorRGBA_F(0, 0, 0, 1);
 tess.addVertex(posX + 50, posY-10, 0.0D);
 tess.setColorRGBA_F(colorSlider.getRed()/255F, colorSlider.getGreen()/255F, colorSlider.getBlue()/255F, 1);
 tess.addVertex(posX + 50, posY - 60, 0.0D);
 tess.setColorRGBA_F(1, 1, 1, 1);
 tess.addVertex(posX, posY - 60, 0.0D);
 tess.setColorRGBA_F(0, 0, 0, 1);
 tess.addVertex(posX, posY - 10, 0.0D);
 tess.draw();

 GL11.glShadeModel(GL11.GL_FLAT);
 GL11.glDisable(GL11.GL_BLEND);
 GL11.glEnable(GL11.GL_ALPHA_TEST);
 GL11.glEnable(GL11.GL_TEXTURE_2D);


Конечно соответствие не 100%, но всё же...
 
Назад
Сверху