Three.js 学习记录 之 纹理加载

时间:2020-12-31 19:34:35

最近开始学习OpenGL,不免用到了Three.js,之前学习过程中没有做记录,俗话说:好脑袋不如一个烂笔头,有时遇到一个点,记得以前弄过,可又记得不太清,不得不重新整理学习,这时往往会后悔之前怎么没做个记录,现在开始,做个记录,为以后备用!


这次学习的是如何加载纹理,目前我用的是r81版本,之前的 THREE.ImageUtils.loadTexture 方法现在已经不推荐使用了,现在使用的是THREE.ImageLoader方法,具体使用方法如下:


1、生成一个loader 

varloader =new THREE.ImageLoader();


这里ImageLoader函数其实是带参数的,参数是loadingManager,这个manager可以管理加载的进度,出现的错误等一些回调函数,不带参数的话。默认使用的是THREE.DefaultLoadingManager,其实加载完成、加载进度、错误等一些回调函数,也可以在ImageLoader的load函数里面管理。

2、加载资源

使用load函数来加载资源,可以把一些状态回调函数函数写在这个函数里面,如下所示:

 
loader.load( // 纹理路径 "a image",
 // 纹理加载成功后 function ( image ) { // 可以把加载好的纹理赋给你定义好的texture对象 },
 // 加载进度 function ( xhr ) { console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); },
 // 错误处理 function ( xhr ) { console.log( 'An error happened' ); }


这样的话,纹理加载就算处理完了。

注意,纹理加载是异步的,可以把render渲染放到纹理加载完毕后。