Benutzer von New Babylon JS, der sich mit diesem fantastischen Framework vertraut machen möchte. Ich habe mit der Sandbox und dem Online-Editor gespielt, mein eigenes Codemodell von Grund auf mit den Standardkomponenten Box, Sphere usw. aufgearbeitet. Meine Frage bezieht sich darauf, wie komplexere benutzerdefinierte Geometrie geladen wird. Sehr komfortabel mit 3D-CAD - STL/OBJ-Dateien, einige Exporte gehen von Blender zu .Babylon-Format, die große in Babylons Online-Sandbox & Editoren importieren. Allerdings kann ich den SceneLoader nicht dazu bringen, eine Datei vom lokalen Laufwerk C:/zu lesen. Code-Auszug unten:Babylon JS - SceneLoader aus der lokalen Datei
// Create new Babylon Scene
var scene = new BABYLON.Scene(engine);
// Change scene background color
scene.clearColor = new BABYLON.Color3(1, 1, 1);
// Create and positions a free camera
var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 10, 0), scene);
// Target the camera to scene origin
camera.setTarget(BABYLON.Vector3.Zero());
// Attach camera to the canvas
camera.attachControl(canvas, true);
// Define built-in 'box' shape.
var box = BABYLON.Mesh.CreateBox("sphere1", 1, scene);
// Define 'ground' plane
var ground = BABYLON.Mesh.CreateGround("ground1", 100, 100, 100, scene);
ground.position.y = 0;
//Load local .babylon file from root Dir
BABYLON.SceneLoader.Load("", "Test.babylon", engine, scene);
Mein Modell hat eine Standard-Box für Geometrie mit Grundebene. All rendert in Babylon - bis ich die SceneLoader-Zeile hinzufüge. Wenn ich das hinzufüge, bleibe ich auf dem Babylon Loading Intro Splash Screen (rotierendes Babylon Logo) hängen. Wenn ich die letzte Zeile des obigen Codes auskommentiere, rendert das Modell die Box. Ich habe mir verschiedene Foren-Seiten angesehen und mein Gehirn zerstört, zB: http://www.html5gamedevs.com/topic/20924-stlobj-file-loader/ & https://www.eternalcoding.com/?p=313 Ich glaube, dass Google Chrome lokale Dateiverknüpfungen aus Sicherheitsgründen aussperrt, versucht hat, in "Lokal" zu laufen Access-Modus, immer noch auf der Lade-Seite stecken. Brauche ich einen Webserver (ich weiß nicht, wo ich anfangen soll) oder kann ich Babylon-Szenen lokal ausführen?
Erzielen Sie nützliche Ergebnisse in der Webkonsole? Ich denke, es sollte sich beschweren, wenn es damit zusammenhängt, über Herkunftsanfragen zu gehen. Von dem, was Sie beschreiben, klingt es, als ob Sie auf dem richtigen Weg sind, indem Sie Chrome mit "--allow-file-access-from-files" ausführen. Ich erinnere mich, dass ich auch damit herumgespielt habe und hoffe, dass ich später etwas Zeit habe, mich darum zu kümmern.Sie brauchen den Webserver in diesem Stadium definitiv nicht. –
Ja - Chrome Dev Tools-Konsole schlägt mehrere Fehler beim Zugriff auf die lokale Datei vor. Drei oder vier rote Konsolenfehler, die sich alle auf den Zugriff auf die .babylon-Datei auf c:/path beziehen. – MarkGuk
XMLHttpRequest kann Datei nicht laden: /// C: /Javascript/Test.babylon.manifest? 1461103045485. Cross-Ursprungsanforderungen werden nur für Protokollschemas unterstützt: http, data, chrome, chrome-extension, https, chrome-extension-resource. – MarkGuk