Маска прозрачности

Версия Minecraft
1.7.10
355
2
17
Добро, подскажите как можно реализовать такую вот маску? Пример:

1596619532984.png

Типа, чем ближе квадрат к краям, тем прозрачнее его часть становится. Подобный эффект можно увидеть в рулетках всяких.
 
269
8
19
@Sunrise по типу этого
Java:
            tessellator.setColorRGBA_F(0.0f, 0.0f, 0.0f, 0.25f);
            tessellator.addVertex(100, 9.0, 0.0);
            tessellator.addVertex(100, 0.0, 0.0);
            tessellator.setColorRGBA_F(0.0f, 0.0f, 0.0f, 0.0f);
            tessellator.addVertex(50, 0.0, 0.0);
            tessellator.addVertex(50, 9.0, 0.0);
 
5,018
47
783
хук в ентити рендерер и все, что заблагорассудится делать можешь.
 
355
2
17
Это не совсем то, мне нужно воссоздать именно маску.
К примеру у меня в этом квадрате будет текстура, еще какой-то рендер, текст, и вот все это мне нужно плавно скрыть.


хук в ентити рендерер
А он тут причем вообще? Мне нужно понять как именно градиентно установить прозрачность всему блоку. Обычный градиент Цвет<>Пустота я то могу сделать, а вот чтобы это был не просто цвет а изображение, да еще и чтобы там текст был, посложнее задачка.
 
1,173
28
168
тутор по чернобелому шейдеру в помощь, там как раз все расписано)
А как сделать то вот:
vec4 newColor = gl_FragColor;
newColor.a /= xSize; //твоя юниформа бтв, сюда можно передать mc.displayWidth или переменную с ScaledResolution
gl_FragColor = newColor;
Но этот код будет менять альфу только в правой части экрана, логично, там дальше додумаешь
 
7,099
324
1,509
@Sunrise по типу этого
Java:
            tessellator.setColorRGBA_F(0.0f, 0.0f, 0.0f, 0.25f);
            tessellator.addVertex(100, 9.0, 0.0);
            tessellator.addVertex(100, 0.0, 0.0);
            tessellator.setColorRGBA_F(0.0f, 0.0f, 0.0f, 0.0f);
            tessellator.addVertex(50, 0.0, 0.0);
            tessellator.addVertex(50, 9.0, 0.0);
Идея хорошая, но исполнение не верное. Цвет нужно задавать для каждой вершины. Для некоторых вершин значение альфы цвета сделать 0, некоторым 1. Тогда полигон нарисуется с интерполяцией прозрачности между 0 и 1
 
7,099
324
1,509
Тебе нужно не текстуру рисовать, а что-то произвольное? Тогда можешь отрисовать что-то в фреймбуфер, а потом нарисовать полигон с этой текстурой
 
355
2
17
У меня несколько идей, где бы я реализовал подобный эффект.
Где-то я бы хотел использовать просто произвольную текстуру, которая плавным градиентом уходила в невидимость, подобный эффект можно видеть в рулетках, когда крутятся блоки и исчезают плавно доходя до края.

Второй элемент, это как-то прятать целый блок таким эффектом. Под блоком я подразумеваю все содержимое между glPush и glPop, там и текстура, и текста, и другие элементы, и вот чтобы этот весь блок затухал с подобным эффектом. Подобное можно реализовать с помощью glScissor, но, там он грубо обрезает видимое содержимое, а я хочу реализовать плавный переход.
 
Сверху