Накладка цвета на серую текстуру брони.

Версия Minecraft
1.9.4
667
7
2
Всем привет! Делаю мантии мага, 16 цветов(и более), но рисовать для каждого сета текстуру своего цвета не очень удобно, каким способом накладывать цвет на чёрно белую текстуру?
 

timaxa007

Модератор
5,831
409
672
Либо использовать GL11.glColor3f(float red, float green, float blue) или подобных методов. Либо текстуру превратить в BufferedImage, редактировать каждый цвет пикселя в тот который нужен, потом как-то отрендерить BufferedImage или превращая его обратно в текстуру.
 
2,505
81
397
Там же в броне (а мб и в итеме) есть метод, то ли setColor, то ли getColor, кароче с color связано. И текстурка будет красится в этот цвет. А еще есть оверлей текстурка, которая не будет красится. Смотри кожаную броню
 
667
7
2
Agravaine написал(а):
Он имел ввиду оверлеи как в кожанной.
Если ты про тот "оверлеи" который позволяет перекрашивать комбинируя разные красители, то нет. Я про обычные 16 цветов. Сейчас попробую сделать покраску текстуры.
 
2,505
81
397
virysD написал(а):
Agravaine написал(а):
Он имел ввиду оверлеи как в кожанной.
Если ты про тот "оверлеи" который позволяет перекрашивать комбинируя разные красители, то нет. Я про обычные 16 цветов. Сейчас попробую сделать покраску текстуры.

Походу, ты не совсем понимаешь, что такое оверлей
 
7,099
324
1,509
Почему бы не делать через glColor3f?


Самый очевидный и легкий по внедрению способ
 
667
7
2
hohserg написал(а):
Почему бы не делать через glColor3f?


Самый очевидный и легкий по внедрению способ



Можно поподробнее про glColor3f, нужно окрашивать текстуры которые задаются в getArmorTexture, а потом по верх тех текстур накладывать цветные элементы?
 
2,505
81
397
Меня игнорят :(
Метод getColor переопредели и будет тебе счастье. И ну нужно никаких костылей и велосипедов


Еще вот этот метод

Код:
@Override
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses()
{
     return true;
}
Теперь у тебя итем будет запрашивать 2 текстуры. Первую будет красить в цвет, который возвращает getColor. Вторую (overlay) текстуру - рисовать поверх.


это относится и к текстуре итема, и к текстуре модели
 
667
7
2
Dahaka написал(а):
Меня игнорят :(
Метод getColor переопредели и будет тебе счастье. И ну нужно никаких костылей и велосипедов


Еще вот этот метод

Код:
@Override
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses()
{
     return true;
}
Теперь у тебя итем будет запрашивать 2 текстуры. Первую будет красить в цвет, который возвращает getColor. Вторую (overlay) текстуру - рисовать поверх.


это относится и к текстуре итема, и к текстуре модели



Эти две текстуры нужно указывать в getArmorTexture? И да, что касаемо предметов, в 1.8+ текстура для брони в виде предмета задаётся через json. Для них нужно делать другой рендер?
 
2,505
81
397
virysD написал(а):
Эти две текстуры нужно указывать в getArmorTexture?
Да
virysD написал(а):
И да, что касаемо предметов, в 1.8+ текстура для брони в виде предмета задаётся через json. Для них нужно делать другой рендер?
Зачем?
 
7,099
324
1,509
virysD написал(а):
hohserg написал(а):
Почему бы не делать через glColor3f?


Самый очевидный и легкий по внедрению способ



Можно поподробнее про glColor3f, нужно окрашивать текстуры которые задаются в getArmorTexture, а потом по верх тех текстур накладывать цветные элементы?


Действительно, я забыл о том, что модели брони отрисовываются прозрачно для кодера. но можно в возвращать пустую и рендер сделать свой на событиях.
 
Сверху