提交 94125d9e 编写于 作者: M Mr.doob

More tweaks to Texture.

上级 dd089570
......@@ -34,13 +34,13 @@ THREE.DDSLoader.prototype = {
var loader = new THREE.XHRLoader();
loader.setResponseType( 'arraybuffer' );
var loadNext = function () {
loader.load( url[ loaded ], function ( buffer ) {
var loadTexture = function ( i ) {
loader.load( url[ i ], function ( buffer ) {
var dds = scope.parse( buffer, true );
images[ loaded ] = {
images[ i ] = {
width: dds.width,
height: dds.height,
format: dds.format,
......@@ -49,24 +49,24 @@ THREE.DDSLoader.prototype = {
loaded += 1;
if ( loaded === url.length ) {
if ( loaded === 6 ) {
texture.format = dds.format;
texture.needsUpdate = true;
if ( onLoad ) onLoad( texture );
} else {
loadNext();
}
} );
};
}
loadNext();
for ( var i = 0, il = url.length; i < il; ++ i ) {
loadTexture( i );
}
} else {
......@@ -344,4 +344,4 @@ THREE.DDSLoader.prototype = {
}
};
\ No newline at end of file
};
......@@ -123,12 +123,12 @@
</div>
</div>
</div>
<script src="../build/three.js"></script>
<script src="./js/controls/OrbitControls.js"></script>
<script src="./js/loaders/gltf/glTF-parser.js"></script>
<script src="./js/loaders/gltf/glTFLoader.js"></script>
<script src="./js/loaders/gltf/glTFLoaderUtils.js"></script>
<script src="./js/loaders/gltf/glTFAnimation.js"></script>
<script src="../build/three.min.js"></script>
<script src="js/controls/OrbitControls.js"></script>
<script src="js/loaders/gltf/glTF-parser.js"></script>
<script src="js/loaders/gltf/glTFLoader.js"></script>
<script src="js/loaders/gltf/glTFLoaderUtils.js"></script>
<script src="js/loaders/gltf/glTFAnimation.js"></script>
<script>
var orbitControls = null;
......
......@@ -31,6 +31,7 @@
</div>
<script src="../build/three.min.js"></script>
<script src="js/loaders/DDSLoader.js"></script>
<script src="js/Detector.js"></script>
<script src="js/libs/stats.min.js"></script>
......@@ -86,7 +87,9 @@
r + "py.dds", r + "ny.dds",
r + "pz.dds", r + "nz.dds" ];
var textureCube = THREE.ImageUtils.loadCompressedTextureCube( urls );
var loader = new THREE.DDSLoader();
var textureCube = loader.load( urls );
var material = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube } )
var geometry = new THREE.SphereGeometry( 100, 96, 64 );
......
......@@ -71,7 +71,7 @@
*/
var loader = new THREE.DDSLoader();
var map1 = loader.load( 'textures/compressed/disturb_dxt1_nomip.dds' );
map1.minFilter = map1.magFilter = THREE.LinearFilter;
map1.anisotropy = 4;
......
......@@ -38,7 +38,6 @@ THREE.ImageUtils = {
loadTextureCube: function ( array, mapping, onLoad, onError ) {
var images = [];
images.loadCount = 0;
var loader = new THREE.ImageLoader();
loader.crossOrigin = this.crossOrigin;
......@@ -48,28 +47,50 @@ THREE.ImageUtils = {
// no flipping needed for cube textures
texture.flipY = false;
var loaded = 0;
var loadTexture = function ( i ) {
loader.load( array[ i ], function ( image ) {
for ( var i = 0, il = array.length; i < il; ++ i ) {
var cubeImage = loader.load( array[i], function () {
texture.images[ i ] = image;
images.loadCount += 1;
loaded += 1;
if ( images.loadCount === 6 ) {
if ( loaded === 6 ) {
texture.needsUpdate = true;
if ( onLoad ) onLoad( texture );
}
} );
images[ i ] = cubeImage;
}
for ( var i = 0, il = array.length; i < il; ++ i ) {
loadTexture( i );
}
return texture;
},
loadCompressedTexture: function () {
console.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.')
},
loadCompressedTextureCube: function () {
console.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.')
},
getNormalMap: function ( image, depth ) {
......
......@@ -138,9 +138,14 @@ THREE.Loader.prototype = {
var width = nearest_pow2( image.width );
var height = nearest_pow2( image.height );
texture.image.width = width;
texture.image.height = height;
texture.image.getContext( '2d' ).drawImage( image, 0, 0, width, height );
var canvas = document.createElement( 'canvas' );
canvas.width = width;
canvas.height = height;
var context = canvas.getContext( '2d' );
context.drawImage( image, 0, 0, width, height );
texture.image = canvas;
} else {
......
......@@ -35,25 +35,12 @@ THREE.Texture = function ( image, mapping, wrapS, wrapT, magFilter, minFilter, f
this.flipY = true;
this.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)
this._needsUpdate = true;
this._needsUpdate = false;
this.onUpdate = null;
};
THREE.Texture.DEFAULT_IMAGE = ( function () {
var canvas = document.createElement( 'canvas' );
canvas.width = 8;
canvas.height = 8;
var context = canvas.getContext( '2d' );
context.fillStyle = '#ff0000';
context.fillRect( 0, 0, canvas.width, canvas.height );
return canvas;
}() );
THREE.Texture.DEFAULT_IMAGE = undefined;
THREE.Texture.DEFAULT_MAPPING = new THREE.UVMapping();
THREE.Texture.prototype = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册