Вопросы

164
1
4
1. Есть две текстуры, текстура камня и текстура жилок с прозрачным фоном. В итоге должна получится текстура руды. Вопрос: как наложить две текстуры на один блок?
2. Как сделать такую же штуку, как с яйцами спавна мобов? Там есть две черно-белые текстуры и когда регистрируешь моба, указываешь цвет одной текстуры и цвет другой текстуры. Я хочу сделать так: есть черно-белая текстура блока и нужно указать цвет этой текстуры. Как так сделать?
 
127
0
Нужно отрисовать блок (наложить в редакторе на камень жилки руды) и добавить в игру.
 
164
1
4
travnik написал(а):
Нужно отрисовать блок (наложить в редакторе на камень жилки руды) и добавить в игру.
Нет, мне нужно именно две текстуры, камень и жилки и отрисовать их как единую текстуру.
 
808
3
124
Это довольно непросто. Готового функционала для "двойных текстур" блоков нет. Варианты:
1) Самое сбалансированное решение в плане производительности и скорости разработки - это выставить, чтобы блок рисовался в render pass 1 (как лёд), написать свой ISimpleBlockRenderingHandler, и там сделать, чтобы каждая сторона блока рисовалась по два раза с разными текстурами (причём придется сделать, чтобы полупрозрачная текстура была на несколько миллиметров дальше от центра блока, чем основная, иначе будет мерцать).
2) Вариант "мне безразлична производительность" - добавить к блоку tile entity и писать рендерер для неё, там можно использовать что угодно, включая мультитекстурирование.
3) Вариант "у меня не так уж много текстур/они маленького разрешения" - добавить генерацию текстур для всех возможных комбинаций на запуске майна (при ститчинге текстур есть событие, которое можно для этого использовать).
4) Сделать то же самое, что и в третьем варианте, но как предложил travnik, а не костылём. Это, во-первых, будет быстрее запускаться, и, во-вторых, это быстрее реализовать.
 
164
1
4
Так, допустим. А что насчет второго вопроса, это тоже сложно сделать?
 
808
3
124
Да, довольно сложно.
1) Сделать свой ISimpleBlockRenderingHandler, там можно указать свой цвет (смотри в классе RenderBlocks, например, траву, цвет которой меняется в зависимости от биома)
2) Опять-таки, ковыряться в текстуре при загрузке, как я предлагал в третьем варианте для предыдущего вопроса)
 
435
1
Интересует тоже самое с моделью, моба например. Как, где и почему нет?
 
808
3
124
Нет никаких "слоёв" у блоков, и делать их было бы большой глупостью. Удваивать количество полигонов ради фичи, которая ни разу не используется? лол.
С моделью моба (да и вообще с любой моделью, которую ты сам рендеришь) всё очень просто.
Код:
glDepthMask(false);
mc.renderEngine.bindTexture(solidTexture);
renderModel();
glDepthMask(true);
mc.renderEngine.bindTexture(semitransparentTexture);
renderModel();
Ну или старое мультитекстурирование, которое чуть сложнее, а прироста производительности дает примерно нифига. Ну или рендеринг через шейдер с использованием двух текстур)
 
435
1
GloomyFolken написал(а):
Нет никаких "слоёв" у блоков, и делать их было бы большой глупостью. Удваивать количество полигонов ради фичи, которая ни разу не используется? лол.
С моделью моба (да и вообще с любой моделью, которую ты сам рендеришь) всё очень просто.
Код:
glDepthMask(false);
mc.renderEngine.bindTexture(solidTexture);
renderModel();
glDepthMask(true);
mc.renderEngine.bindTexture(semitransparentTexture);
renderModel();
Ну или старое мультитекстурирование, которое чуть сложнее, а прироста производительности дает примерно нифига. Ну или рендеринг через шейдер с использованием двух текстур)
Я в шейдеры не лезу - непонятно нифига и гайдов толком нет. А так - попробую.
 
808
3
124
Ну, наверное, по запросу "minecraft shaders tutorial" не слишком много полезных гайдов xD
 
435
1
Под java гайдов толковых не находил, да и в майн нужно их правильно лить.
 
435
1
В плане написания шейдера - да. В плане занесения его в игру...
 
1,990
18
105
MrCreppo написал(а):
В плане написания шейдера - да. В плане занесения его в игру...
Ой всё. В джаве пайплайн OpenGL чем-то отличается от других? Вы используете абсолютно тот же OpenGL, но только с учётом того, что между OpenGL и джавой есть прослойка в виде LWJGL.
Что вы несёте, блин? Не умеете осилять - так и скажите.
 
Сверху