我在这里阅读这篇文章:http: //paulbourke.net/geometry/polygonise/。
目前,我有一个使用单纯形噪声生成的类似于我的世界的地形,我将其划分为 16x16 块,这些块具有 32x32x128 块。现在,我想在行进立方体中使用我为 Polygonise 函数生成的噪声。但我的问题是如何计算等值?我不明白。
这里的任何人都知道更多的勺子文章。哈哈
编辑:
嘿,我在http://paulbourke.net/geometry/polygonise/marchingsource.cpp上找到了这个。
sSourcePoint[] 的值为 0.5,因此它只是使对象居中,但 fResult += 0.5/(fDx*fDx + fDy*fDy + fDz*fDz) 有什么作用?天哪,我被这些代码吓到了。
GLfloat fSample1(GLfloat fX, GLfloat fY, GLfloat fZ)
{
GLdouble fResult = 0.0;
GLdouble fDx, fDy, fDz;
fDx = fX - sSourcePoint[0].fX;
fDy = fY - sSourcePoint[0].fY;
fDz = fZ - sSourcePoint[0].fZ;
fResult += 0.5/(fDx*fDx + fDy*fDy + fDz*fDz);
fDx = fX - sSourcePoint[1].fX;
fDy = fY - sSourcePoint[1].fY;
fDz = fZ - sSourcePoint[1].fZ;
fResult += 1.0/(fDx*fDx + fDy*fDy + fDz*fDz);
fDx = fX - sSourcePoint[2].fX;
fDy = fY - sSourcePoint[2].fY;
fDz = fZ - sSourcePoint[2].fZ;
fResult += 1.5/(fDx*fDx + fDy*fDy + fDz*fDz);
return fResult;
}