Ich habe ein Three.js-Projekt mit Augmented Reality und jetzt versuche ich, ein Modell mit Texturen zu laden. Aus irgendeinem Grund ist mein Modell schwarz und ich habe keine Texturen. Ich habe das Kästchen in Blender aktiviert, um die Bilder zu exportieren. Ich sehe auch, dass in der .js-Datei des T-Rex (Modell, das ich verwende) die Texturen aufgelistet sind, aber meine Anwendung wird sie nicht laden.
BEARBEITEN (CODE HINZUGEFÜGT) Der Code, den ich zum Laden des Modells verwende:
new THREE.JSONLoader().load("models/trex.json", function(geometry) {
var material = new THREE.MeshFaceMaterial();
var dino = new THREE.Mesh(geometry, material);
dino.position.z = -50;
dino.scale.x = dino.scale.y = dino.scale.z = 2;
dino.updateMatrix();
dino.overdraw = true;
marker.object3d.add(dino);
});
Ich füge dies dem Marker-Objekt hinzu, weil ich mit Markern arbeite. Wenn ich den Marker zeige, möchte ich, dass ein Trex auf dem Marker (oder direkt darüber) gezeichnet wird.
Das Trex-Modell ist das gleiche wie das hier, aber ich habe es in Blender geöffnet und die neueste Version des Blender to three.js-Exporters verwendet: http://alteredqualia.com/three/examples/webgl_trex.html
Auch meine trex.json-Datei sieht wie folgt aus:
{
"metadata" :
{
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.63 Exporter",
"vertices" : 23273,
"faces" : 23268,
"normals" : 20842,
"colors" : 0,
"uvs" : [11497],
"materials" : 1,
"morphTargets" : 0,
"bones" : 0
},
"scale" : 0.0500,
"materials": [ {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "Material.001",
"blending" : "NormalBlending",
"colorAmbient" : [0.2933282256126404, 0.2933282256126404, 0.2933282256126404],
"colorDiffuse" : [0.2933282256126404, 0.2933282256126404, 0.2933282256126404],
"colorSpecular" : [0.13438941538333893, 0.13438941538333893, 0.13438941538333893],
"depthTest" : true,
"depthWrite" : true,
"mapDiffuse" : "trex_image_copy.png",
"mapNormal" : "trex_image_bump.png",
"mapNormalFactor" : 12.0,
"mapSpecular" : "trex_image_spec.png",
"shading" : "Phong",
"specularCoef" : 511,
"transparency" : 1.0,
"transparent" : false,
"vertexColors" : false
},
{
"DbgColor" : 15597568,
"DbgIndex" : 1,
"DbgName" : "Material",
"blending" : "NormalBlending",
"colorAmbient" : [0.7257574200630188, 0.7257574200630188, 0.7257574200630188],
"colorDiffuse" : [0.7257574200630188, 0.7257574200630188, 0.7257574200630188],
"colorSpecular" : [0.0, 0.0, 0.0],
"depthTest" : true,
"depthWrite" : true,
"mapDiffuse" : "trex_image_copy.png",
"mapLight" : "trex_image_eye.png",
"mapLightWrap" : ["repeat", "repeat"],
"shading" : "Lambert",
"specularCoef" : 1,
"transparency" : 1.0,
"transparent" : false,
"vertexColors" : false
},
{
"DbgColor" : 60928,
"DbgIndex" : 2,
"DbgName" : "Material",
"blending" : "NormalBlending",
"colorAmbient" : [0.7257574200630188, 0.7257574200630188, 0.7257574200630188],
"colorDiffuse" : [0.7257574200630188, 0.7257574200630188, 0.7257574200630188],
"colorSpecular" : [0.0, 0.0, 0.0],
"depthTest" : true,
"depthWrite" : true,
"mapDiffuse" : "trex_image_copy.png",
"mapLight" : "trex_image_eye.png",
"mapLightWrap" : ["repeat", "repeat"],
"shading" : "Lambert",
"specularCoef" : 1,
"transparency" : 1.0,
"transparent" : false,
"vertexColors" : false
}],
"vertices":
Ich habe versucht, eine Box zu zeichnen und dann Texturen hinzuzufügen, das funktioniert, aber das Laden der Datei im json-Format und die Anzeige der Texturen funktioniert nicht.
Herzlichen Dank!