Ich gehe mit three.js. Ich möchte ein Bild als Textur auf das Objekt anwenden, aber aus irgendeinem Grund, wenn ich ein Bild anwende, scheint ich nur die dominante Farbe des Bildes zu bekommen. Ich habe mich im Internet umgesehen und konnte niemanden mit ähnlichen Problemen finden.Three.js verwendet Bild-dominante Farbe anstelle von Bild selbst
Wie Sie aus JSON-Datei sehen können, habe ich versucht, das Bild von „mapDiffuse“ Variable verwendet wird, und dann habe ich versucht, die Textur der Anwendung des Code und ich bekomme das gleiche Ergebnis
der Dies ist die json Objektdatei:
{
"metadata" :
{
"formatVersion" : 3.1,
"sourceFile" : "newBox.obj",
"generatedBy" : "OBJConverter",
"vertices" : 8,
"faces" : 6,
"normals" : 6,
"colors" : 0,
"uvs" : 0,
"materials" : 1
},
"scale" : 1.000000,
"materials": [ {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "Material.002",
"colorDiffuse" : [0.64, 0.64, 0.64],
"colorSpecular" : [0.5, 0.5, 0.5],
"illumination" : 2,
"mapDiffuse" : "test.JPG",
"opacity" : 1.0,
"opticalDensity" : 1.0,
"specularCoef" : 96.078431
}],
"vertices": [1.000000,-1.000000,-1.000000,1.000000,-1.000000,1.000000,-1.000000,-1.000000,1.000000,-1.000000,-1.000000,-1.000000,1.000000,1.000000,-0.999999,0.999999,1.000000,1.000001,-1.000000,1.000000,1.000000,-1.000000,1.000000,-1.000000],
"morphTargets": [],
"morphColors": [],
"normals": [0,-1,0,0,1,0,1,0,0,-0,-0,1,-1,-0,-0,0,0,-1],
"colors": [],
"uvs": [[]],
"faces": [35,0,1,2,3,0,0,0,0,0,35,4,7,6,5,0,1,1,1,1,35,0,4,5,1,0,2,2,2,2,35,1,5,6,2,0,3,3,3,3,35,2,6,7,3,0,4,4,4,4,35,4,0,3,7,0,5,5,5,5]
}
Und das ist mein javascript:
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer({alpha:true});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var mesh;
/**
* Texture
*/
var texture = THREE.ImageUtils.loadTexture("/files/test/Three-js-examples-images-crate.jpg");
var material = new THREE.MeshBasicMaterial({ map : texture });
// instantiate a loader
var loader = new THREE.JSONLoader();
// load a resource
loader.load(
// resource URL
'/files/test/untitled.json',
// Function when resource is loaded
function (geometry) {
mesh = new THREE.Mesh(geometry,material);
mesh.scale.x = 0.8;
mesh.scale.y = 0.8;
mesh.scale.z = 0.8;
scene.add(mesh);
}
);
camera.position.z = 5;
function render() {
requestAnimationFrame(render);
mesh.rotation.x += 0.0001;
mesh.rotation.y += 0.01;
renderer.render(scene, camera);
}
render();
Dies ist das Ergebnis erhalte ich (sein von Photoshop streched)
Dies ist das Bild, das ich
Ist das etwas, was ich in Blender angeben kann? – Vilius
Ja. Eine schnelle Suche wird eine Menge Tutorials aufzeigen. – user01