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

这篇具有很好参考价值的文章主要介绍了端午节使用Threejs实现数字人3D粽子。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

 

1,功能介绍

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

端午节使用Threejs实现数字人3D粽子,3d,three.js,web3

2,功能实现

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

端午节使用Threejs实现数字人3D粽子,3d,three.js,web3

第二步:数字人生成

首先使用ChatGPT生成文案

端午节使用Threejs实现数字人3D粽子,3d,three.js,web3

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

端午节使用Threejs实现数字人3D粽子,3d,three.js,web3

视频地址https://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博客文章来源地址https://www.toymoban.com/news/detail-567012.html

<script type="x-shader/x-vertex" id="vertexShader">
	varying vec2 vUv;
	void main() {
		vUv = uv;
		gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
	}
</script>

<script type="x-shader/x-fragment" id="fragmentShader">
	uniform sampler2D videoTexture;
	uniform float threshold;
	varying vec2 vUv;
	void main() {
		vec4 color = texture2D(videoTexture, vUv);
		float greenScreen = color.g - max(color.r, color.b);
		float alpha = 1.0 - smoothstep(threshold - 0.05, threshold + 0.05, greenScreen);
		gl_FragColor = vec4(color.rgb, alpha);
	}
</script>
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)

到了这里,关于端午节使用Threejs实现数字人3D粽子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023年端午节放假通知

    过节、业务两不误,服务“不打烊”。欢迎新老客户前来咨询下单!感谢各位一直以来的支持和信赖,你们是易天光通信成长道路上不可或缺的力量,提前祝大家在端午节玩得开心,吃得开心! 深圳易天光通信有限公司 2023年6月17日 图说端午—— 端午节的由来 端午节又名端

    2024年02月09日
    浏览(23)
  • 端午节,不能只知道吃吃吃.....玩玩玩......

    作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 端午

    2024年02月09日
    浏览(34)
  • 端午节出行的小贴士——行之安,乐之逍

    亲爱的朋友们, 随着端午节的到来,想必许多人已经开始期待那份出游的快乐与解脱。无论你是期待漫步在宁静的田野小径,还是在繁华的城市中探索,这篇文章都会给你一些实用的端午节出行建议,帮助你尽情享受旅程。 首先,不可忽视的就是做好天气预报的关注。端午

    2024年02月09日
    浏览(28)
  • 带你用Python制作7个程序,让你感受到端午节的快乐

    名字:阿玥的小东东 学习:Python、C/C++ 主页链接:阿玥的小东东的博客_CSDN博客-pythonc++高级知识,过年必备,C/C++知识讲解领域博主 目录 前言 程序1:制作粽子

    2024年02月09日
    浏览(33)
  • 端午节不休息,肝出万字“粽”量级长文:一文搞懂C++函数

    在C++中,函数是一种重要的编程构造,可将代码组织成可重用的模块,从而提高代码的可读性和可维护性。 (1)函数的定义 C++函数定义的基本形式如下: 各个部分的含义如下: 返回类型: 指定了函数返回值的数据类型。如果函数不需要返回值,则返回类型为void。 函数名

    2024年02月10日
    浏览(30)
  • 数字孪生平台3d模型制作-threejs

    threejs简化和封装了wegGL开发过程。 那么,js呢,它能写高效的3D程序吗?几年前写3D最好的世c++,js的计算能力随谷歌vs引擎得到增强。浏览器对threejs的支持,谷歌最佳。 thingjs threejs unity3D 物联网可视化平台 轻量级软件库 游戏引擎 支撑数十栋建筑园应用级,可支撑从地球到城

    2024年02月12日
    浏览(32)
  • Threejs实现3d地球记录(4)

    Three.js基础曲线函数有三种: 样条曲线:在三维空间中设置5个顶点,输入三维样条曲线CatmullRomCurve3函数作为参数,然后返回更多个顶点,通过返回的顶点数据,构建一个几何体,然后绘制出来一条沿着5个顶点的光滑样条曲线。 三维三次贝赛尔曲线: 由起点、终点、及两个

    2024年02月02日
    浏览(34)
  • 如何使用 ThreeJs 以 glTF、FBX 和 OBJ 文件格式加载 3D 模型,使用 ThreeJS 加载和显示带有纹理的 3D 模型

    在本文中,我展示了如何使用 ThreeJS 在 Web 视图中加载 3D 模型。Three.js 是一个跨浏览器的 JavaScript 库和应用程序编程接口,用于使用 WebGL 在 Web 浏览器中创建和显示动画 3D 计算机图形。加载不完整的原因有很多,例如纹理和材质渲染不正确。 创建场景 渲染场景 动画立方体

    2023年04月08日
    浏览(38)
  • 使用 Threejs 从基础开始构建 3D 地球

    演示效果 git源码地址 场景创建 相机 坐标辅助器 状态检测器 渲染器 轨道控制器 粒子星空 地球和大气层创建 创建星轨环 创建卫星移动轨迹 创建卫星 二维经纬度坐标转三维球坐标 创建标点 绘制飞线 在地球上绘制标点和飞线 一般在执行完上述方法后能看到如下图的效果:

    2024年01月25日
    浏览(43)
  • threeJs实现3D地球-旋转-自定义贴图-透明发光

    //---html (angular)---         //---ts--- 效果图:

    2024年04月17日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包