【发布时间】:2020-07-05 23:02:37
【问题描述】:
初学者问题:我正在尝试在统一网格中绘制一个“整洁”的三角形 - 即如果我将其做得足够大,边缘看起来相对均匀。给定一个以编程方式创建的网格 (https://catlikecoding.com/unity/tutorials/rounded-cube/),材质简单,颜色变化,我选择顶面上的几个顶点并更改它们的高度:
private void DrawStuff()
{
int width = xSize - 2;
int height = zSize - 2;
int margin = 5;
int vStart = topStartVertex + (width * margin) + margin + margin;
DrawTriangle(vStart, 10, 10, 10);
}
private void DrawTriangle(int v, int height, int width, int depth)
{
int offset = 0;
for (int i = 0; i < height; i++)
{
for (int j = 0 + offset; j < width - offset; j++)
{
vertices[v + i * (xSize - 1) + j][1] = ySize - depth;
}
offset += 1;
}
}
但是,三角形的边缘看起来并不完全相同——有些是平滑的,有些是锯齿形的。我会期望其中之一,但不是两者兼而有之。在绘制一个矩形,甚至是一条简单的线时,我注意到了同样的行为。
这是渲染工件、照明还是其他东西?有没有一种简单的方法来修复它 - 即使边缘保持一致,无论是平滑还是锯齿状(最好是平滑)?
我阅读了其他一些关于网格平滑的类似问题,但我认为它们与我所问的不同:
【问题讨论】: