Lädt 256x256 Texturen in Three.js-Materialien, die dann für die Verformung der Flugzeuggeometrie verwendet werden. Ein Flaschenhals bei der 15. Textur. Chrome stürzt anscheinend beim Render-Aufruf ab. Wenn jedes Mesh zur Szene hinzugefügt wird, rufe ich den Aufruf von renderer.render auf, aber die Sequenz ist ziemlich eng, also glaube ich, dass der GPU-Bus überfordert sein könnte. Es ist schwer zu glauben, dass eine kleine Anzahl solcher kleinen Texturen ausreicht, um dies zu verursachen. CPU-Speicher ist kein Problem, da Texturen in CPU geladen werden und wenn Meshes nicht zur Szene hinzugefügt werden, gibt es keinen Absturz. Außerdem gibt es eine erhebliche Verzögerung, während die Texturen von CPU zu GPU kopiert werden.Three.js, 256 × 256 PNG-Texturen Crash-Chrom-Tab
function loadTexture(texture) {
var x = 512;
var y = 512;
var dx = 256;
var dy = 256;
var geometry = new THREE.PlaneGeometry(x, y, dx, dy);
var material = new THREE.ShaderMaterial({
side: THREE.DoubleSide,
uniforms: {
heightMap: {
type: "t",
value: texture
}
},
vertexShader: vertexShader,
fragmentShader: fragmentShader
});
var mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
this.renderer.render(scene, camera);
}
ypv willkommen in SO. Es hilft der Community wirklich, den Code zu sehen, den Sie mit unserer Hilfe debuggen wollen, ansonsten müssen wir raten und Sie werden keine sehr guten Antworten bekommen. –
Ich habe gerade bemerkt, dass ich PlaneGeometry für alle Texturen dupliziere. Lass mich versuchen, Geometrie wiederzuverwenden. –