端午节使用Threejs实现数字人3D粽子

个人主页: 左本Web3D,更多案例预览请点击==》 在线案例
个人简介:专注Web3D使用ThreeJS实现3D效果技巧和学习案例
💕 💕积跬步以至千里,致敬每个爱学习的你。喜欢的话请三连,有问题请私信或者加微信

 

1,功能介绍

Threejs实现加载粽子模型,使用AI生成数字人并进行介绍,效果如下图

2,功能实现

第一步:粽子建模,模型下载地址:【免费】粽子模型glb,fbx,max资源-CSDN文库

第二步:数字人生成

首先使用ChatGPT生成文案

复制文案到腾讯智影中,并选择自己喜欢的数字人,最后生成数字人视频MP4

视频地址icon-default.png?t=N5K3https://live.csdn.net/v/306099第三步:使用Threejs技术实现

首先,加载粽子模型并添加到场景中的函数。使用了Three.js的GLTFLoader来加载glb模型文件,并且使用DRACOLoader来解码。代码中还对模型中的Mesh进行了遍历,将emissive属性设置为其颜色,并设置了emissiveMap和emissiveIntensity属性,用于在场景中产生发光效果。最后,获取模型包围盒的中心点,将模型居中显示,并将模型添加到场景中。在加载过程中,还输出了加载进度信息。

function loadResources() {const dracoLoader = new DRACOLoader();dracoLoader.setDecoderPath('libs/draco/');const loader = new GLTFLoader();loader.setDRACOLoader(dracoLoader);loader.load('assets/models/zongzi.glb', function(gltf) {zongziObj = gltf.scene;// peopleObj = gltf.scene.children[1];zongziObj .traverse(function (item) {if (item instanceof THREE.Mesh) {item.material.emissive = item.material.color;item.material.emissiveMap = item.material.map;item.material.emissiveIntensity = 3;}});// 获取包围盒的中心点const bbox = new THREE.Box3().setFromObject(zongziObj);const center = new THREE.Vector3();bbox.getCenter(center);zongziObj.position.sub(center);scene.add(zongziObj);}, function(xhr) {let num = Math.floor(xhr.loaded / xhr.total * 100) / 100;console.log('场景加载完成的百分比' + (xhr.loaded / xhr.total * 100) + '%');});
}

然后,使用Threejs把数字人绿幕视频进行播放。如何使用Three实现绿幕视频播放请查看:Threejs实现数字人绿幕视频背景透明播放,Shader绿幕视频抠像_左本Web3D的博客-CSDN博客


var geometry = new THREE.PlaneGeometry(0.5625, 1);
var shaderMaterial = new THREE.ShaderMaterial({uniforms: {'videoTexture': {value: new THREE.VideoTexture(video_content)},threshold: {value: 0.05},},vertexShader: document.getElementById('vertexShader').textContent,fragmentShader: document.getElementById('fragmentShader').textContent,side: THREE.DoubleSide,transparent: true
});var contentBox = new THREE.Mesh(geometry, shaderMaterial);
setTimeout(function() {sceneOrtho.add(contentBox)
}, 1000)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部