我在C#,XNA中制作了一个minecraft-kinda引擎。它提供了很高的fps,并加载大块w/o fps瀑布,但是当涉及到全局光线和阴影时 - 我遇到了问题。平滑顶点之间的颜色
基本上 - 在块的模型创建循环
for (i = 0; i < 16; i++)
{
for(int j = 0; j < chunk_height; j++)
{
for(int k = 0; k < 16; k++)
{
// check if block (and 4 blocks around
// a current one (i, j, k), (i + 1, j, k),
// (i - 1, j, k), (i, j, k + 1), (i, j, k -1))
// are covered and put shadows to block face's vertex colors.
}
}
}
结果是老的Minecraft风格的影子:
(像以前那样截图与sync上取得同样好的服务表现,没有它的fps是〜350)
但我试图实现minec筏的阴影,生物群落颜色和光平滑 - >
我使用三角形列表,因为它不可能使用三角形带这样的东西。 但在这种情况下,在任何立方体面之间顶点颜色不平滑。
所以问题是平滑这些顶点。颜色看起来像我的世界之一。
我做了一个简单的算法,但它加载CPU太硬(vertices.Count^2 - sized loop)
所以当你旅行的世界和新加载的块的阴影计算,PC滞后1-2秒,每一次,而在MC有没有这样的速度变慢。
(我需要平滑算法中以实时和onrun因为主要的目标是打败我的世界的表现(在我的世界目前的最低/中图形的结果是实现(〜300个FPS与我的世界的70))
组块的类(主要的问题),辅助类(其它的东西,在项目中使用),Block类(块型基(用于创建和注册块类型),块的模式发生器):
PS对不起,如果它不好,我的英语不是我的主要语言。
希望你不介意我的编辑。更清晰的格式将帮助您更好地关注您的问题。 –
谢谢你,我希望如此 – user1399159