疎な高さのファイルがあります。これはgpsデータに基づいています。私はこのデータを使用してPlaneBuffer配列に標高を設定しています。THREE.js sparse planeBufferGeometry
var vertices = new Float32Array((grid.NCOL*grid.NROW) * 4);
for (var i = 0, q = vertices.length; i < q; i++){
vertices[ i*3 + 0 ] = parseInt(i % (grid.NCOL+1)*4);
vertices[ i*3 + 1 ] = parseInt(i/(grid.NCOL+1)*4);
// vertices[ i*3 + 2 ] = null; // makes no difference
}
for (var i = 0, l = grid.NODES.length; i < l; i++) {
var nodeNumber = grid.NODES[i][0];
var elevation= grid.NODES[i][1];
vertices[ nodeNumber*3 + 2 ] = elevation;
}
私の問題は、標高値が未知である(頂点配列が上昇と疎である)と、面内の穴/切り欠きで表さなければならないノードが存在することです。私が結んだのは、ヌル高さがホールではなく0として解釈されることです。 rawshaderを使用する方法を開始しましたが、null値を透過的にすることが正しい方法であることはまだ分かりません。
下の写真は私の問題を示しています。丸で囲まれたエリアは、そこにはいけない高層の壁です。なぜなら、それが "null/0"の床に三角形を描くからです。赤い線の部分は穴がある場所です。
編集: この画像は役に立ちます。それは底からです。ヌルの標高がゼロに設定されていると、平面のビューがブロックされ、平面のエッジが0の三角形になります。
ここにデスクトップアプリケーションが表示されます。平面のエッジが三角形分割されずにゼロになることに注意してください。
は私に穴のように見えます。あなたは正確に何をしようとしていますか?あなたのコードでヌル標高をどのように扱うべきですか? – jered
表面が切り取られるのではなく、0に三角形分割されているため、穴ではありません。私はそれを透明にしたい、ヌル標高は0の代わりに未知で透明として扱われるべきです。それは黒のために穴のように見えます。 – LrakWortep
これらの頂点を絞りたい場合は、手動で行う必要があります。 THREE.jsには、ジオメトリを引くためのCSG演算が組み込まれていません。透明なビットを持つ連続したサーフェスにしたい場合は、おそらくシェーダーが必要です。 – jered