我正在使用C#和OpenTK进行图形处理,这基本上是OpenGL的包装。
我真正想做的是用渐变渲染海洋,因此海洋中最深的部分更暗,随着它上升它变得更轻。此外,我将使用类似的方法与大气,这将是一个淡出0%。我希望这种方法适用于任何半径的圆 - 小或大。
我所要做的就是渲染一个较大半径的圆形,减少不透明度或颜色较深。我相信有更好的方法。有人有主意吗?
编辑6-18-2018:这是如何渲染磁盘。现在只需要渐变。
private void DrawDisc(Vector2 center, float innerRadius, float outerRadius, Color4 fillColor)
{
// no one knows what this is
var quad = Glu.NewQuadric();
int segments = 10;
Gl.glEnable(Gl.GL_BLEND);
Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA);
Gl.glColor4f(fillColor.R, fillColor.G, fillColor.B, fillColor.A);
Glu.Disk(quad, innerRadius, outerRadius, segments, segments);
Gl.glEnd();
Gl.glDisable(Gl.GL_BLEND);
}
我看到两个选择: