7

立方体を曲げるために3d モディファイアhttps://github.com/foo123/MOD3を使用しています。ジオメトリが更新された (頂点位置が変更された) 後、ライトは更新されず、立方体は何も変更されていないかのようにシェーディングされたままです。だから私は試しました

cube.geometry.computeVertexNormals()

cube.geometry.computeFaceNormals()

しかしその後、立方体はもはや立方体のようにレンダリングされるのではなく、「醜い球」のようにレンダリングされます。

ここに画像の説明を入力

左がシェーディング後computeVertexNormals()のシェーディング、右がオリジナルのシェーディングです。

ジオメトリの変更後にシェーディングを更新するにはどうすればよいですか?

4

1 に答える 1

15

MOD3 を使用してジオメトリのみを変更する場合は、自分で法線を更新する必要があります。

geometry.computeVertexNormals();

新しい各頂点法線は、その頂点を共有する隣接面の面法線の正規化された合計になります。

three.js のやり方が気に入らない場合は、自分で頂点法線を変更するしかありません。

three.js r.85

于 2012-11-05T15:08:30.157 に答える