提交 e3c5619f 编写于 作者: W WestLangley 提交者: Mr.doob

Added Geometry.computeFlatVertexNormals() (#9222)

* Added computeFlatVertexNormals()

* Compute face normals only when necessary
上级 bf47cdec
......@@ -256,7 +256,11 @@
</div>
<div>
Computes vertex normals by averaging face normals.<br />
Face normals must be existing / computed beforehand.
</div>
<h3>[method:null computeFlatVertexNormals]()</h3>
<div>
Computes flat vertex normals. Sets the vertex normal of each vertex of each face to be the same as the face's normal.<br />
</div>
<h3>[method:null computeMorphNormals]()</h3>
......
......@@ -453,6 +453,8 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, {
} else {
this.computeFaceNormals();
for ( f = 0, fl = this.faces.length; f < fl; f ++ ) {
face = this.faces[ f ];
......@@ -501,6 +503,42 @@ Object.assign( Geometry.prototype, EventDispatcher.prototype, {
},
computeFlatVertexNormals: function () {
var f, fl, face;
this.computeFaceNormals();
for ( f = 0, fl = this.faces.length; f < fl; f ++ ) {
face = this.faces[ f ];
var vertexNormals = face.vertexNormals;
if ( vertexNormals.length === 3 ) {
vertexNormals[ 0 ].copy( face.normal );
vertexNormals[ 1 ].copy( face.normal );
vertexNormals[ 2 ].copy( face.normal );
} else {
vertexNormals[ 0 ] = face.normal.clone();
vertexNormals[ 1 ] = face.normal.clone();
vertexNormals[ 2 ] = face.normal.clone();
}
}
if ( this.faces.length > 0 ) {
this.normalsNeedUpdate = true;
}
},
computeMorphNormals: function () {
var i, il, f, fl, face;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册