向蒙皮网格添加纹理
Adding a texture to a skinned mesh
我已经导入了一个简单的挤压立方体,有2个骨头和一个材料,使用threejs exporter
从搅拌机到threejs
。
模型,材料和骨骼出口都很好。我可以旋转骨骼,并且正确地操作网格和材料。
问题:当我应用纹理到网格,然后模型消失与以下错误。
类型错误材料未定义。
<html>
<head>
</head>
<body>
<script src="js/three.min.js"></script>
<script src="js/three.js"></script>
<script>
var scene,camera,renderer;
var skinnedMesh=[];
var material=[];
var texture=[];
var flag=0;
init();
function init()
{
renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize( window.innerWidth, window.innerHeight-125 );
document.body.appendChild( renderer.domElement );
//////////
// CAMERA//
//////////
camera = new THREE.PerspectiveCamera( 70, window.innerWidth/Window.innerHeight, 1, 2000 );
camera.position.z = 15;
scene= new THREE.Scene();
scene.add(camera);
var loader = new THREE.JSONLoader;
loader.load('blockbone.js',loadmesh);
//////////
// LIGHT//
//////////
var light2 = new THREE.SpotLight(0xffffff);
light2.position.set(500,50,3000);
scene.add(light2);
render();
}
function loadmesh(geometry,material) {
//texture=(new THREE.MeshPhongMaterial( { map:
//THREE.ImageUtils.loadTexture( "10.png" ) }));
//texture.needsUpdate = true;
//material[0] = new THREE.MeshFaceMaterial(texture);
skinnedMesh = new THREE.SkinnedMesh(geometry,material[0]);
geometry.dynamic = true;
material[0].skinning = true;
scene.add(skinnedMesh);
}
function render()
{
scene.traverse(function(child){
if (child instanceof THREE.SkinnedMesh)
{
if (child.skeleton.bones[1].rotation.y<=1.5 && flag==0)
{
child.skeleton.bones[1].rotation.y +=.02;
}
else
{
flag=1;
}
if (child.skeleton.bones[1].rotation.y>=-3 && flag==1)
{
child.skeleton.bones[1].rotation.y -=.02;
}
else
{
flag=0;
}
child.skeleton.bones[0].rotation.y -=.01;
}
});
renderer.render(scene, camera);
requestAnimationFrame(render);
}
</script>
</body>
</html>
我只在手动创建的网格上操纵纹理。
我已经解决了这个问题我从blender导出的json文件是不完整的。为了给外部加载的蒙皮网格添加外部纹理,你必须首先在blender中添加纹理,以便blender生成UV贴图,然后导出json文件。
一旦UV贴图被导出为json文件,你就可以改变模型的纹理。
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在three.js中为三角形添加纹理
- 如何在 Konvajs 中向 Konva.Image() 对象添加纹理
- 将外部纹理添加到三个.js场景对象
- 向拉伸几何体添加纹理
- 如何在三.js中将 MTL 纹理添加到 OBJ
- three.js:在着色器材质中使用纹理,该材质添加到由对象加载器加载的对象中
- 向蒙皮网格添加纹理
- 如何在three.js中为对象添加纹理
- 是否有一种方法来添加不同的纹理与TextureLoader.load对象
- 如何在three.js经过CSG.js处理后添加纹理