LibGDX: Как загрузить вершины TextureRegion в шейдер (GPU), чтобы применить к ним какой-то эффект?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 LibGDX: Как загрузить вершины TextureRegion в шейдер (GPU), чтобы применить к ним какой-то эффект?

Сообщение Anonymous »

Я создал файл шейдера Crop.frag, чтобы обрезать эффект до текстуры в форме круга:

Код: Выделить всё

#version 150

varying vec4 v_color;
varying vec2 v_texCoord0;

uniform sampler2D u_texture;

vec4 borderColor;
uniform vec3 outlineColor;
uniform float outlineAlpha;
uniform float offset;
uniform float outerRadius;
uniform float innerRadius;
uniform float intensity;
uniform float brightness;

void main() {
vec4 color = texture2D(u_texture, v_texCoord0) * v_color;

borderColor = vec4(outlineColor.rgb, outlineAlpha);

// circle crop
vec2 relativePosition = v_texCoord0.xy - 0.5;
float len = length(relativePosition);
float vignette = smoothstep(outerRadius, innerRadius, len);
color.rgba = mix(color.rgba, color.rgba * vignette, intensity);

// make outline over circle cropped
float vignetteOutline = smoothstep(outerRadius - offset / 100.0, innerRadius - offset / 100.0, len);
borderColor.rgba = mix(borderColor.rgba, color.rgba * vignetteOutline, color.a * vignetteOutline);

gl_FragColor = color * (borderColor + brightness + 0.20);
}
Применение этого шейдера к текстуре работает нормально. Но если я применю его к одному объекту TextureRegion из текстуры, эффект будет применен только к Region.getTexture();.

Итак, я думаю, я хочу изменить вершины региона в файле шейдера.

Я' Я не эксперт в языке GL Shader.

Подробнее здесь: https://stackoverflow.com/questions/454 ... ply-some-e
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»