【发布时间】:2014-07-17 09:38:16
【问题描述】:
我正在尝试制作一个可以使屏幕摆动的顶点着色器,就像它是由波浪组成的一样。这很好,只是我没有意识到顶点着色器实际上是按顶点计算的,当我也使用 2D 时,我认为它是按像素计算的。
这意味着一个大的精灵只会在顶部和底部摆动,而我希望它一直向下摆动,有没有办法让它在给定的精灵上使用更多的顶点?除了把那个精灵切碎吗?
注意:我在 java 中使用“libgx”。
这是着色器:
attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord0;
uniform mat4 u_projTrans;
uniform float off = 0.0f;
varying vec4 vColor;
varying vec2 vTexCoord;
varying vec4 pos;
void main() {
vColor = a_color;
vTexCoord = a_texCoord0;
pos = a_position;
pos.x = pos.x + sin(pos.y/10+off)*10;
gl_Position = u_projTrans * pos;
}
您可以很好地看到文本波浪,因为它们的 y 坐标很接近,但是精灵应该多次波浪,但由于缺乏投票者而无法这样做。
【问题讨论】:
-
你说得对,1秒,我只是觉得它不太适用于这个问题,但无论如何我都会把shader扔进去^^
-
我可以上传图片吗?怎么样?
标签: java opengl libgdx glsl shader