【发布时间】:2014-11-19 13:01:34
【问题描述】:
我正在尝试在我的移动 uisng 农场着色器上渲染一个圆圈。还关注this as i got the best answer。
顶点着色器:
attribute vec4 position;
attribute vec4 inputTextureCoordinate;
varying vec2 textureCoordinate;
void main()
{
gl_Position = position;
textureCoordinate = inputTextureCoordinate.xy;
}
片段着色器:
varying highp vec2 textureCoordinate;
const highp vec2 center = vec2(0.5, 0.5);
const highp float radius = 0.5;
void main()
{
highp float distanceFromCenter = distance(center, textureCoordinate);
lowp float checkForPresenceWithinCircle = step(distanceFromCenter, radius);
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * checkForPresenceWithinCircle;
}
属性 vec4 位置;通过 -1 到 +1 和 属性 vec4 inputTextureCoordinate;从 0 传递到 1。
但是在渲染时我在移动屏幕上得到一个椭圆?我认为这可能是因为屏幕纵横比。如何在屏幕上渲染完美的圆?
【问题讨论】: