提交 8dcc78e3 编写于 作者: M Mr.doob

Merge branch 'dev' of https://github.com/mrdoob/three.js into dev

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
......@@ -45,8 +45,9 @@
[page:String text] — The textual <em>obj</em> structure to parse.
</div>
<div>
Parse an <em>obj</em> text structure and return an [page:Object3D].<br />
Found objects are converted to [page:Mesh] with a [page:BufferGeometry] and a default [page:MeshPhongMaterial].
Returns an [page:Object3D]. It contains the parsed meshes as [page:Mesh] and lines as [page:LineSegments].<br />
All geometry is created as [page:BufferGeometry]. Default materials are created as [page:MeshPhongMaterial].<br />
If an <em>obj</em> object or group uses multiple materials while declaring faces geometry groups and an [page:MultiMaterial] is used.
</div>
<h2>Example</h2>
......@@ -58,7 +59,7 @@
// load a resource
loader.load(
// resource URL
'models/skinned/UCS_config.json',
'models/monster.obj',
// Function when resource is loaded
function ( object ) {
scene.add( object );
......
......@@ -89,14 +89,14 @@ THREE.OBJLoader.prototype = {
}
var previousMaterial = ( this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined );
if ( this.object && typeof this.object._finalize === 'function' ) {
this.object._finalize();
this.object._finalize( true );
}
var previousMaterial = ( this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined );
this.object = {
name : name || '',
fromDeclaration : ( fromDeclaration !== false ),
......@@ -132,16 +132,18 @@ THREE.OBJLoader.prototype = {
inherited : false,
clone : function( index ) {
return {
var cloned = {
index : ( typeof index === 'number' ? index : this.index ),
name : this.name,
mtllib : this.mtllib,
smooth : this.smooth,
groupStart : this.groupEnd,
groupStart : 0,
groupEnd : -1,
groupCount : -1,
inherited : false
};
cloned.clone = this.clone.bind(cloned);
return cloned;
}
};
......@@ -172,12 +174,25 @@ THREE.OBJLoader.prototype = {
}
// Ignore objects tail materials if no face declarations followed them before a new o/g started.
if ( end && this.materials.length > 1 ) {
for ( var mi = this.materials.length - 1; mi >= 0; mi-- ) {
if ( this.materials[mi].groupCount <= 0 ) {
this.materials.splice( mi, 1 );
}
}
}
// Guarantee at least one empty material, this makes the creation later more straight forward.
if ( end !== false && this.materials.length === 0 ) {
if ( end && this.materials.length === 0 ) {
this.materials.push({
name : '',
smooth : this.smooth
});
}
return lastMultiMaterial;
......@@ -207,7 +222,7 @@ THREE.OBJLoader.prototype = {
if ( this.object && typeof this.object._finalize === 'function' ) {
this.object._finalize();
this.object._finalize( true );
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册