我是在 GLSL 中为 OpenGL ES2.0 编写片段着色器的新手,我正在尝试创建一个片段着色器,为给定的图形创建斜角效果。到目前为止,这是我能够做到的(忽略下壁和其他纹理,只看应用斜面效果的顶部):
以下是期望的结果:
注意对角线的阴影差异,它们比水平边缘的阴影更浅。注意从对角边缘到水平或垂直的过渡。还要注意斜面的厚度。我想尽可能接近这个期望的结果。
现在我使用的片段着色器相当简单,代码如下:
#ifdef GL_ES
precision mediump float;
#endif
varying vec2 v_texCoord;
uniform sampler2D s_texture;
uniform float u_time;
void main()
{
vec2 onePixel = vec2(0, 1.0 / 640.0);
vec2 texCoord = v_texCoord;
vec4 color;
color.rgb = vec3(0.5);
color += texture2D(s_texture, texCoord - onePixel) * 5.0;
color -= texture2D(s_texture, texCoord + onePixel) * 5.0;
color.rgb = vec3((color.r + color.g + color.b) / 3.0);
gl_FragColor = vec4(color.rgb, 1);
}
我需要在着色器中添加什么来创建所需的效果?