Как включить сглаживание с помощью DrawUserPrimitive в MonoGame - PullRequest
4 голосов
/ 11 июля 2019

Как включить сглаживание с помощью MonoGame для DrawUserPrimitives?

Я видел этот другой вопрос: Рисование кривых Безье в MonoGame (XNA) приводит к появлению нечетких линий

Но код не включает сглаживание.

Я установил пример приложения здесь: https://github.com/viniciusjarina/PrimitiveDraw/blob/master/Game1.cs#L95

Даже используя graphics.PreferMultiSampling = true;

Это вывод:

enter image description here

1 Ответ

0 голосов
/ 16 июля 2019

Отредактировано: Этот ответ охватывает только то, как заставить код в связанном вопросе действительно работать.Я не смог включить AA.

Вам нужно будет установить выбраковку по часовой стрелке.

        GraphicsDevice.RasterizerState = new RasterizerState
        {
            CullMode = CullMode.CullClockwiseFace
        };

Если это испортит ваши другие примитивы, вы можете просто изменить порядок путейот

            path.Add(new VertexPositionColor(new Vector3(curvePoints[x] + normal * curveWidth, 0), Color.Firebrick));
            path.Add(new VertexPositionColor(new Vector3(curvePoints[x] + normal * -curveWidth, 0), Color.Firebrick));

до

            path.Add(new VertexPositionColor(new Vector3(curvePoints[x] + normal * -curveWidth, 0), Color.Firebrick));
            path.Add(new VertexPositionColor(new Vector3(curvePoints[x] + normal * curveWidth, 0), Color.Firebrick));

Я использую VertexPositionColor, потому что хочу другой цвет.

...