商域无疆 (http://blog.youkuaiyun.com/omni360/)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:商域无疆 - 本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
俺也是刚开始学,好多地儿肯定不对还请见谅.
以下代码是THREE.JS 源码文件中Texture/DataTexture.js文件的注释.
更多更新在 : https://github.com/omni360/three.js.sourcecode
/**
* @author alteredq / http://alteredqualia.com/
*/
/*
///DataTexture类用来为面创建一个基于图像数据的反射折射或者纹理贴图对象,和THREE.Texture方法不同的是这里的图像使用的数据格式
/// 这个类是最重要的属性是data,这是一个JavaScript Image类型对象的数据格式。传入的第一个参数就是该对象,
///后面的对象都是可选的,如果缺省就会填充默认值,而且往往都是填充默认值。
///属性magFileter和minFileter指定纹理在放大和缩小时的过滤方式:最临近点、双线性内插等。
*/
///<summary>DataTexture</summary>
///<param name ="data" type="Number">图像数据</param>
///<param name ="width" type="Number">图像宽度</param>
///<param name ="height" type="Number">图像高度</param>
///<param name ="format" type="Number">像素数据的颜色格式,参考Texture/Texture.js的注释</param>
///<param name ="type" type="Number">数据类型,默认为不带符号8位整形值</param>
///<param name ="mapping" type="Number">映射模式,参考Texture/Texture.js的注释</param>
///<param name ="wrapS" type="Number">S方向覆盖模式,参考Texture/Texture.js的注释</param>
///<param name ="wrapT" type="Number">T方向覆盖模式,参考Texture/Texture.js的注释</param>
///<param name ="magFilter" type="Number">纹理在放大时的过滤方式,参考Texture/Texture.js的注释</param>
///<param name ="minFilter" type="Number">纹理在缩小时的过滤方式,参考Texture/Texture.js的注释</param>
///<param name ="anisotropy" type="Float">各向异性,取值范围0.0-1.0,经常用来通过这个值,产生不同的表面效果,木材和金属都发光,但是发光的特点是有区别的.</param>
THREE.DataTexture = function ( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy ) {
THREE.Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); //调用Texture对象的call方法,将原本属于Texture的方法交给当前对象DataTexture来使用.
this.image = { data: data, width: width, height: height }; //将参数data,width,height赋值给image属性
};
/*************************************************
****下面是DataTexture对象的方法属性定义,继承自Texture
**************************************************/
// THREE.Texture = function ( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
// this.id = THREE.TextureIdCount ++; //纹理属性id
// this.uuid = THREE.Math.generateUUID(); //纹理uuid(通用唯