55 */
66
77/**************************************************************
8- * ImageUtils image对象的工具集,更方便的加载图片的辅助类.
8+ * ImageUtils image对象的工具集
99 **************************************************************/
1010THREE . ImageUtils = {
1111
12- crossOrigin : undefined , //跨域加载图片.
13- /*
14- ///loadTexture加载url指定的位置的图片资源,并创建纹理,返回纹理对象.
15- */
16- ///<summary>loadTexture</summary>
17- ///<param name ="url" type="URLString">图像资源定位符</param>
18- ///<param name ="mapping" type="Number">映射模式,可用常量参考下面注释</param>
19- ///<param name ="onLoad" type="CallbackFunction">回调函数</param>
20- ///<param name ="onError" type="CallbackFunction">回调函数</param>
21- ///<returns type="THREE.Texture">返回创建的纹理对象.</returns>
12+ crossOrigin : undefined ,
13+
2214 loadTexture : function ( url , mapping , onLoad , onError ) {
23- //创建图片加载器.
15+
2416 var loader = new THREE . ImageLoader ( ) ;
2517 loader . crossOrigin = this . crossOrigin ;
2618
27- var texture = new THREE . Texture ( undefined , mapping ) ; //创建纹理对象
28- //从图像资源定位符加载指定的图片.
19+ var texture = new THREE . Texture ( undefined , mapping ) ;
20+
2921 loader . load ( url , function ( image ) {
3022
3123 texture . image = image ;
32- texture . needsUpdate = true ; //当设置为true时,标记文理已经更新
24+ texture . needsUpdate = true ;
3325
34- if ( onLoad ) onLoad ( texture ) ; //如果有回调函数,执行回调函数
26+ if ( onLoad ) onLoad ( texture ) ;
3527
3628 } , undefined , function ( event ) {
3729
3830 if ( onError ) onError ( event ) ;
3931
4032 } ) ;
4133
42- texture . sourceFile = url ; //源文件位置.
34+ texture . sourceFile = url ;
4335
44- return texture ; //返回创建的纹理对象
36+ return texture ;
4537
4638 } ,
47- /*
48- ///loadTextureCube加载url数组中指定的位置的图片资源,并创建纹理,返回立方体纹理对象.
49- */
50- ///<summary>loadTextureCube</summary>
51- ///<param name ="array" type="URLStringArray">图像资源定位符数组</param>
52- ///<param name ="mapping" type="Number">映射模式,可用常量参考下面注释</param>
53- ///<param name ="onLoad" type="CallbackFunction">回调函数</param>
54- ///<param name ="onError" type="CallbackFunction">回调函数</param>
55- ///<returns type="THREE.Texture">返回立方体纹理对象.</returns>
39+
5640 loadTextureCube : function ( array , mapping , onLoad , onError ) {
5741
5842 var images = [ ] ;
5943
6044 var loader = new THREE . ImageLoader ( ) ;
6145 loader . crossOrigin = this . crossOrigin ;
6246
63- var texture = new THREE . CubeTexture ( images , mapping ) ; //创建立方体纹理对象
47+ var texture = new THREE . CubeTexture ( images , mapping ) ;
6448
6549 // no flipping needed for cube textures
6650
@@ -88,44 +72,28 @@ THREE.ImageUtils = {
8872
8973 }
9074
91- for ( var i = 0 , il = array . length ; i < il ; ++ i ) { //遍历数组中的图片资源
75+ for ( var i = 0 , il = array . length ; i < il ; ++ i ) {
9276
93- loadTexture ( i ) ; //一一加载并创建纹理对象.
77+ loadTexture ( i ) ;
9478
9579 }
9680
97- return texture ; //返回立方体纹理对象
81+ return texture ;
9882
9983 } ,
100- /*
101- ///loadCompressedTexture加载压缩纹理对象,该方法已经被删除,这里保留为了向后兼容,使用THREE.DDSLoader替换.
102- */
103- ///<summary>loadCompressedTexture</summary>
84+
10485 loadCompressedTexture : function ( ) {
10586
10687 console . error ( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' )
10788
10889 } ,
109- /*
110- ///loadCompressedTextureCube加载压缩的立方体纹理对象,该方法已经被删除,这里保留为了向后兼容,使用THREE.DDSLoader替换.
111- */
112- ///<summary>loadCompressedTextureCube</summary>
90+
11391 loadCompressedTextureCube : function ( ) {
11492
11593 console . error ( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' )
11694
11795 } ,
118- /*
119- ///getNormalMap通过参数image(图像对象),参数(深度信息),获得法线贴图.
120- ///法线贴图(Normal mapping)在三维计算机图形学中,是凸凹贴图(Bump mapping)技术的一种应用,法线贴图有时也称为“Dot3(仿立體)
121- ///凸凹纹理贴图”。凸凹与纹理贴图通常是在现有的模型法线添加扰动不同,法线贴图要完全更新法线。与凸凹贴图类似的是,它也是用来在
122- ///不增加多边形的情况下在浓淡效果中添加细节。但是凸凹贴图通常根据一个单独的灰度图像通道进行计算,而法线贴图的数据源图像通常是
123- ///从更加细致版本的物体得到的多通道图像,即红、绿、蓝通道都是作为一个单独的颜色对待。
124- */
125- ///<summary>getNormalMap</summary>
126- ///<param name ="image" type="Image">图像对象</param>
127- ///<param name ="depth" type="float">深度信息0.0-1.0</param>
128- ///<returns type="THREE.Texture">返回法线贴图.</returns>
96+
12997 getNormalMap : function ( image , depth ) {
13098
13199 // Adapted from http://www.paulbrunt.co.uk/lab/heightnormal/
@@ -141,13 +109,7 @@ THREE.ImageUtils = {
141109 return [ a [ 0 ] - b [ 0 ] , a [ 1 ] - b [ 1 ] , a [ 2 ] - b [ 2 ] ] ;
142110
143111 }
144- /*
145- ///normalize方法将返回向量的长度为1(只读).
146- /// 复习一下初中的几何吧,三角恒等式,给你准备好了 :) ,见维基百科:
147- /// http://zh.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0#.E4.B8.89.E8.A7.92.E6.81.92.E7.AD.89.E5.BC.8F
148- */
149- ///<summary>normalize</summary>
150- ///<returns type="number">返回向量的长度为1(只读)</returns>
112+
151113 var normalize = function ( a ) {
152114
153115 var l = Math . sqrt ( a [ 0 ] * a [ 0 ] + a [ 1 ] * a [ 1 ] + a [ 2 ] * a [ 2 ] ) ;
@@ -231,37 +193,31 @@ THREE.ImageUtils = {
231193
232194 context . putImageData ( imageData , 0 , 0 ) ;
233195
234- return canvas ; //返回法线贴图.
196+ return canvas ;
235197
236198 } ,
237- /*
238- ///generateDataTexture类生成DataTexture对象使用的图像数据.
239- */
240- ///<summary>DataTexture</summary>
241- ///<param name ="width" type="Number">图像宽度</param>
242- ///<param name ="height" type="Number">图像高度</param>
243- ///<param name ="color" type="Color">颜色</param>
199+
244200 generateDataTexture : function ( width , height , color ) {
245201
246202 var size = width * height ;
247- var data = new Uint8Array ( 3 * size ) ; //创建8位无符号整数数组,数组长度是高乘宽的3倍.
203+ var data = new Uint8Array ( 3 * size ) ;
248204
249- var r = Math . floor ( color . r * 255 ) ; //
205+ var r = Math . floor ( color . r * 255 ) ;
250206 var g = Math . floor ( color . g * 255 ) ;
251207 var b = Math . floor ( color . b * 255 ) ;
252208
253209 for ( var i = 0 ; i < size ; i ++ ) {
254210
255- data [ i * 3 ] = r ;
211+ data [ i * 3 ] = r ;
256212 data [ i * 3 + 1 ] = g ;
257213 data [ i * 3 + 2 ] = b ;
258214
259215 }
260216
261- var texture = new THREE . DataTexture ( data , width , height , THREE . RGBFormat ) ; //创建基于图像数据的反射或者折射纹理贴图.
262- texture . needsUpdate = true ; //标记纹理需要更新.
217+ var texture = new THREE . DataTexture ( data , width , height , THREE . RGBFormat ) ;
218+ texture . needsUpdate = true ;
263219
264- return texture ; //返回纹理对象.
220+ return texture ;
265221
266222 }
267223
0 commit comments