【发布时间】:2018-06-11 20:20:26
【问题描述】:
我将 C# 和 OpenTK 用于图形,这基本上是 OpenGL 的包装器。
我真正想做的是用渐变渲染海洋,所以海洋的最深处更暗,随着上升,它变得更亮。此外,我将对气氛使用类似的方法,这将淡化到 0%。我希望这种方法可以在任何半径的圆上正常工作——无论大小。
我所知道的就是渲染一系列半径较大的圆圈并减少不透明度或较深的颜色。我确信有更好的方法。有人有想法么?
编辑 2018 年 6 月 18 日: 这是渲染磁盘的方法。现在只需要渐变。
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);
}
【问题讨论】: