ここでの反対の問題-それらが定義されている面が表示されません。 おそらくこれは、ジオメトリがラインとメッシュの間で共有されているためです。
今日、この問題をデバッグしました。 Geometry
は内部でBufferGeometry
変換されます。 この変換の結果は、オブジェクトのタイプ(メッシュ、ラインなど)によって異なります。 したがって、 @ makcの例では、ジオメトリはLine
オブジェクトのジオメトリとして変換されます。 これにより、位置と色の属性が作成されます。 Mesh
のインスタンスが同じGeometry
オブジェクトでレンダリングされると、レンダラーは同じキャッシュされたBufferGeometry
インスタンスを返します。
これが、デモでこれらの緑色の三角形が表示される理由です。 Mesh
とLine
は、同じ内部BufferGeometry
を共有し、解釈が異なります。 BufferGeometry
キャッシュするときにオブジェクトのタイプを尊重しようとすると、この問題を解決できると思います。
または、最初にBufferGeometry
を使用することをお勧めします:sweat_smile:
@mrdoob新しいラベルWont't fix
を導入し、それを問題に割り当てて閉じることをお勧めします。 とにかくプロジェクトがGeometry
レンダリングを停止する場合、レンダラーに修正を追加することは意味がないと思います。 この問題の解決策は、 BufferGeometry
です。
最も参考になるコメント
今日、この問題をデバッグしました。
Geometry
は内部でBufferGeometry
変換されます。 この変換の結果は、オブジェクトのタイプ(メッシュ、ラインなど)によって異なります。 したがって、 @ makcの例では、ジオメトリはLine
オブジェクトのジオメトリとして変換されます。 これにより、位置と色の属性が作成されます。Mesh
のインスタンスが同じGeometry
オブジェクトでレンダリングされると、レンダラーは同じキャッシュされたBufferGeometry
インスタンスを返します。https://github.com/mrdoob/three.js/blob/ec67749b0767e2727deebd52da2dbd3a4e7ab6a2/src/renderers/webgl/WebGLGeometries.js#L63 -L65
これが、デモでこれらの緑色の三角形が表示される理由です。
Mesh
とLine
は、同じ内部BufferGeometry
を共有し、解釈が異なります。BufferGeometry
キャッシュするときにオブジェクトのタイプを尊重しようとすると、この問題を解決できると思います。または、最初に
BufferGeometry
を使用することをお勧めします:sweat_smile: