Я использую 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);
}