如何解决如何使用片段和顶点着色器使 2D 纹理表面不均匀?从纹理中删除某些像素?
我对着色器完全陌生,正在尝试为我目前正在开发的游戏做点什么。我正在努力实现这样的目标:
。 我有一个简单的直通着色器设置,但我不知道如何删除纹理顶部的确切像素。我假设在片段着色器中我需要将 alpha 值更改为 0.0,但是如何检查像素是否位于顶部?我也使用 libGDX 作为我的游戏引擎,它默认使用 OpenGL ES 2.0。这是我的简单直通(顶点)着色器:
attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord0;
uniform mat4 u_projTrans;
varying vec4 v_color;
varying vec2 v_texCoords;
void main() {
v_color = a_color;
v_texCoords = a_texCoord0;
gl_Position = u_projTrans * a_position;
}
片段着色器:
#ifdef GL_ES
#define PRECISION mediump
precision PRECISION float;
precision PRECISION int;
#else
#define PRECISION
#endif
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
uniform sampler2D u_other;
void main() {
vec4 color = texture2D(u_texture,v_texCoords);
vec4 other_colors = texture2D(u_other,v_texCoords);
gl_FragColor = other_colors;
}
谢谢你的帮助:)。被困在这个问题上很长一段时间了。
附加信息:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。