Javascript JSON网格上的Three.js纹理
使用THREE.js,我无法将纹理加载到从JSON模型创建的网格上。附加的片段从models/cube.json加载一个简单的多维数据集Javascript JSON网格上的Three.js纹理,javascript,three.js,Javascript,Three.js,使用THREE.js,我无法将纹理加载到从JSON模型创建的网格上。附加的片段从models/cube.json加载一个简单的多维数据集 function loadRabbit() { // Load the Rabbit JSON data using a THREE loadTexture var loader = new THREE.JSONLoader(); loader.load( "models/cube.json", rabbitLoaded ); //
function loadRabbit()
{
// Load the Rabbit JSON data using a THREE loadTexture
var loader = new THREE.JSONLoader();
loader.load( "models/cube.json", rabbitLoaded ); // Calls rabbitLoaded on completion
//loader.load( "treehouse.json", rabbitLoaded ); // Calls rabbitLoaded on completion
}
function rabbitLoaded( geometry, materials ) {
// Called when rabbit dataset loaded asynchronously
console.log("rabbit Loaded !!");
var texture = THREE.ImageUtils.loadTexture ("assets/textures/general/weave_512x512.jpg")
var meshMaterial = new THREE.MeshBasicMaterial({color: 0x363cc9});
meshMaterial.map = texture;
// create the rabbit. make global
var rm = new THREE.Mesh(geometry, meshMaterial);
rabbitMesh = rm;
spotLight.target = rabbitMesh;
spotLight3.target = rabbitMesh;
scene.add( rabbitMesh );
}
如果行//meshmatterial.map=纹理代码>
注释掉后,它工作正常,在场景中旋转一个普通的蓝色立方体。在代码的其他地方,我创建了一个球体:
function makeMarkerSpheres(size) {
// Creates a 'marker' sphere in red, to help locate position in 3D. Not used in production.
var sphereGeo = new THREE.SphereGeometry(size, 32, 32);
var texture = THREE.ImageUtils.loadTexture ("assets/textures/general/weave_512x512.jpg")
var sphereMatl = new THREE.MeshBasicMaterial({color: 0xcd9141});
sphereMatl.map = texture;
var sphere1 = new THREE.Mesh(sphereGeo, sphereMatl);
sphere1.position.set(1,1,1);
return sphere1;
}
这是一个完美的旋转立方体,有着粗糙的编织纹理。但是上面的代码
产生此错误(在浏览器控制台日志中):
[.WebGLRenderingContext-0x7ffd54a5e5d0]GL错误:GL\u无效\u操作:GL抽屉元素:尝试访问属性1中超出范围的顶点
cube.json是:
`
{
"metadata" : {},
"scale" : 0.5,
"materials": [ {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "default",
"vertexColors" : false
}],
"vertices": [-3,3,-3,3,3,-3,-3,-3,-3,3,-3,-3,-3,3,3,3,3,3,-3,-3,3,3,-3,3],
"faces": [0,0,1,2,0,3,2,1,4,4,6,7,4,5,4,7,0,1,5,3,0,5,7,3,0,0,2,4,0,4,2,6,0,1,4,5,0,1,0,4, 0,6,2,7,0,2,3,7],
"morphTargets": [],
"normals": [],
"colors": [],
"uvs": [[]]
}`
我想我在JSON中遗漏了一些重要的东西,但我不知道是什么,非常感谢您的帮助
完整代码在上如果要将纹理应用于json加载的模型,json文件必须指定UV
3.js r.71