如何使用MonoGame对DrawUserPrimitives
启用抗锯齿功能?
我看到了另一个问题:Drawing Bezier curves in MonoGame (XNA) produces scratchy lines
但是代码没有启用抗锯齿。
我在这里设置了一个示例应用程序:https://github.com/viniciusjarina/PrimitiveDraw/blob/master/Game1.cs#L95
即使使用graphics.PreferMultiSampling = true;
这是输出:
答案 0 :(得分:-1)
已编辑:此答案仅涵盖如何使链接的问题中的代码实际起作用。我无法启用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
是因为我想要其他颜色。