three.js OBJLoader

2023-02-16 17:50 更新

用于加載 .obj 資源的加載器。

OBJ 文件格式是一種簡單的數據格式, 這種格式以人類可讀的形式來表示3D幾何體,即每個頂點的位置、每個紋理坐標頂點的UV位置、頂點法線、 將使每個多邊形定義為頂點列表的面以及紋理頂點。

代碼示例

// instantiate a loader
const loader = new OBJLoader();

// load a resource
loader.load(
	// resource URL
	'models/monster.obj',
	// called when resource is loaded
	function ( object ) {

		scene.add( object );

	},
	// called when loading is in progresses
	function ( xhr ) {

		console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );

	},
	// called when loading has errors
	function ( error ) {

		console.log( 'An error happened' );

	}
);

例子

webgl_loader_obj

構造函數

OBJLoader( manager : LoadingManager )

manager — 加載器使用的loadingManager(加載管理器),默認值是THREE.DefaultLoadingManager。

創(chuàng)建一個新的OBJLoader。

屬性

共有屬性請參見其基類Loader。

方法

共有方法請參見其基類Loader。

.load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined

url — 一個包含有.obj文件的路徑或URL的字符串。
onLoad — 當加載過程成功完成以后將被調用的函數。
onProgress — (可選)加載過程正在進行的時候被調用的函數。其參數是一個XMLHttpRequest實例,其包含了total bytes(總的字節(jié)數)和loaded bytes(已經載入的字節(jié)數)。
onError — (可選) 加載過程中若發(fā)生了錯誤將被調用的函數。這一函數接收錯誤作為參數。

開始從URL中加載,并使用包含有已被解析響應內容來調用onLoad。

.parse ( text : String ) : Object3D

text — 要解析的表示 obj 結構的文本。

返回一個Object3D。它包含了解析過后的網格(解析為Mesh)以及線條(解析為LineSegments)。所有的幾何體被創(chuàng)建為BufferGeometry,默認材質被創(chuàng)建為MeshPhongMaterial。如果obj物體或組在聲明面時使用了多個材質,則使用幾何體組和材質數組。

.setMaterials ( materials : MTLLoader.MaterialCreator ) : this

MTLLoader.MaterialCreator materials - 一個 MaterialCreator 實例。

設置由 MTLLoader 載入的材質,或是其它由 MTLLoader.MaterialCreator 提供的材質。

源碼

examples/jsm/loaders/OBJLoader.js


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號