3D平面上のプレーヤーで、彼の周りのオブジェクトと衝突する可能性のあるゲームを作りたいと思います。私は、ゲーム内のすべての3Dモデルを入力できない不可視矩形でラップすることで衝突を起こす予定です。私は各頂点の最高点と最低点を見つけるために各頂点のX、Y、Zの最小/最大を計算するコードを書いています。これをどのように直角プリズムにするのですか?ここでX、Y、Z頂点の最小/最大を使用して方形プリズムを計算する方法
は、これまでの私のコードです:
public CollisionModel(List<Vector3f> vert) {
float xLow = 1000;
float xHigh = 0;
float yLow = 1000;
float yHigh = 0;
float zLow = 1000;
float zHigh = 0;
for(Vector3f v : vert) {
if(v.x > xHigh) {
xHigh = v.x;
} else if(v.x < xLow) {
xLow = v.x;
}
if(v.y > yHigh) {
yHigh = v.y;
} else if(v.y < yLow) {
yLow = v.y;
}
if(v.z > zHigh) {
zHigh = v.z;
} else if(v.z < zLow) {
zLow = v.z;
}
}
}
私はあなたが頂点の意味を混同していると思います。あなたは最高と最低のポイントを持つことができるように '頂点'について話します。頂点自体が3D空間内のポイントではありませんか? – nhouser9
他に何が必要ですか? 8つの(x、y、z)の組み合わせを頂点として使用してください。 – Bubletan
申し訳ありませんが、私は非常に明確ではなかった、私は頂点の配列を反復処理することによって、3Dモデルの最高と最低、そして最も遠い、最も遠い、そして最も遠い頂点を見つけようとしています。私はこれらの点を見つけることができたら、モデル自体の周りに直角プリズムを作ることができたと思いました。 –