ここで記事を読んでいました: http://paulbourke.net/geometry/polygonise/ .
現在、シンプレックス ノイズを使用して生成されたマインクラフトのような地形があり、これを 32x32x128 ブロックの 16x16 チャンクに分割しました。ここで、生成したノイズをマーチング キューブの 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;
}