[英]OpenTK draw transparent Circle
我想在C#中用OpenGL绘制一个简单的Circle,但是我只能得到这个:
我尝试了blend函数,但是没有用。 我的代码:
public static void DrawCircle(float x, float y, float radius, Color4 c)
{
GL.Enable(EnableCap.Blend);
GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
GL.Begin(PrimitiveType.TriangleFan);
GL.Color4(c);
GL.Vertex2(x, y);
for (int i = 0; i < 360; i++)
{
GL.Vertex2(x + Math.Cos(i) * radius, y + Math.Sin(i) * radius);
}
GL.End();
GL.Disable(EnableCap.Blend);
}
如果要绘制透明圆,则在设置GL.Color4
时必须使用小于255的alpha通道。
GL.Color4( red, green, blue, 127 ); // alpha = 127 for semi-transparent
但是,如果要绘制圆的轮廓,则必须更改基本类型:
基本类型PrimitiveType.TriangleFan
将绘制一个区域。 使用PrimitiveType.LineLoop
绘制轮廓图。
请参见PrimitiveType和OpenGL Primitive 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.