我正在初始化时加载八个8192 x 4096纹理。自然,在加载纹理之前,自然会有一个延迟。我有什么办法可以检测到何时进行首次显示?在下面的示例中,我希望onDocumentMouseDown
仅在看到纹理时才触发,而不是在加载时屏幕仍然空白时才触发。
function init() {
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );
scene = new THREE.Scene();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
var sphereGeometry = new THREE.SphereBufferGeometry(500, 100, 100);
sphereGeometry.scale(-1, 1, 1);
var renderList = ["DF_DC_DS", "DF_DC_LS", "DF_LC_DS", "DF_LC_LS", "LF_DC_DS", "LF_DC_LS", "LF_LC_DS", "LF_LC_LS"];
for (var i = 0; i < renderList.length; i++) {
var texture = new THREE.TextureLoader().load( "img/high-quality/" + renderList[i] + ".jpg",
function ( texture ) {
textureLoadedCount++;
if (textureLoadedCount == 8) {
allLoaded = true;
}
}
);
texture.anisotropy = renderer.capabilities.getMaxAnisotropy();
var material = new THREE.MeshBasicMaterial( { map: texture } );
var mesh = new THREE.Mesh( sphereGeometry, material );
scene.add( mesh );
}
document.addEventListener( "mousedown", onDocumentMouseDown, false );
}