Javascript 使用tQuery[Three.js]加载JSON动画模型
我正在学习加载JSON格式并使用tQuery对其进行操作。我确实成功加载了动画模型,但它没有加载纹理,因为它加载了屏幕中的沥青黑色模型动画。该模型非常好,因为它是Three.js中使用的示例模型,名为stork.js 这是我的密码Javascript 使用tQuery[Three.js]加载JSON动画模型,javascript,three.js,webgl,Javascript,Three.js,Webgl,我正在学习加载JSON格式并使用tQuery对其进行操作。我确实成功加载了动画模型,但它没有加载纹理,因为它加载了屏幕中的沥青黑色模型动画。该模型非常好,因为它是Three.js中使用的示例模型,名为stork.js 这是我的密码 <script> var world=tQuery.createWorld().boilerplate().start(); world.removeCameraControls(); // Animation Variables var
<script>
var world=tQuery.createWorld().boilerplate().start();
world.removeCameraControls();
// Animation Variables
var animOffset = 0, // starting frame of animation
duration = 1000, // milliseconds to complete animation
keyframes = 12, // total number of animation frames = SEE THE FILE OF MODEL!
interpolation = duration / keyframes, // milliseconds per frame
lastKeyframe = 0, // previous keyframe
currentKeyframe = 0,
bird,bird_material;
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load("models/stork.js",
function(geometry, materials){
if(geometry.morphColors && geometry.morphColors.length) {
var colorMap = geometry.morphColors[0];
for (var i = 0; i < colorMap.colors.length; i ++) {
geometry.faces[i].color = colorMap.colors[i];
geometry.faces[i].color.offsetHSL( 0, 0.3, 0 );
}
}
geometry.computeMorphNormals();
addModelToScene(geometry, materials);
});
function addModelToScene(geometry, materials){
for (var i = 0; i < materials.length; i++) {
materials[i].morphTargets = true;
}
bird_material = new THREE.MeshPhongMaterial({
color: 0xffffff, morphTargets: true, morphNormals: true,
vertexColors: THREE.FaceColors, shading: THREE.SmoothShading
});
bird = new THREE.Mesh( geometry,bird_material );
bird.scale.set(0.02,0.02,0.02);
bird.position.set(0,0,0);
bird.rotation.set(0,3.9,0);
bird.castShadow = true;
var object3DNew = new tQuery.Object3D();
object3DNew.add(bird).addTo(world);
}
world.hook(function(){
if(bird){
var time = new Date().getTime() % duration;
var keyframe = Math.floor(time / interpolation) + animOffset;
if (keyframe != currentKeyframe){
bird.morphTargetInfluences[lastKeyframe] = 0;
bird.morphTargetInfluences[currentKeyframe] = 1;
bird.morphTargetInfluences[keyframe] = 0;
lastKeyframe = currentKeyframe;
currentKeyframe = keyframe;
}
bird.morphTargetInfluences[keyframe] = (time % interpolation) / interpolation;
bird.morphTargetInfluences[lastKeyframe] = 1 - bird.morphTargetInfluences[keyframe];
}
});
</script>
var world=tQuery.createWorld().boilerplate().start();
world.RemoveCameraControl();
//动画变量
var animfoffset=0,//动画的开始帧
持续时间=1000,//毫秒完成动画
keyframes=12,//动画帧总数=查看模型文件!
插值=持续时间/关键帧,每帧//毫秒
lastKeyframe=0,//上一个关键帧
currentKeyframe=0,
鸟,鸟的材料;
var jsonLoader=new THREE.jsonLoader();
加载(“models/stork.js”,
功能(几何、材料){
if(geometry.morphColors&&geometry.morphColors.length){
var colorMap=geometry.morphColors[0];
对于(var i=0;i
这是我得到的结果:
我真是太蠢了,谢谢杰罗姆·艾蒂安的回答。答案是,将灯光添加到场景中