ThreeJS打造自己的人物

hello,大家好,我是better,今天为大家分享如何使用Three打造属于自己的3D人物模型。


人物建模

当下有很多人物建模的网站,这里给大家分享的
Ready Player Me - Create a Full-Body 3D Avatar From a Photo

前往这个网址,设计出自己的一个3D人物模型。下面是我自己设计的人物,先分享给大家看看,是不是很想设计自己的人物那么下面外面开始吧

自己的人物

建模过程

选择性别

首先进入网站后,会来到这里。

image.png
这里有没有9年义务教育的漏网之鱼呢? 哈哈哈🙂

  • Masculine : 男性
  • Feminine:女性
  • Dont specify : 不明确

如果不咋清楚自己的性别,或者没有不知道自己想要建模什么样子角色的可以选择第三个。

设计完成后就可以进行人物的下载,或者链接。

上传你的图片

这里照一张你的帅照,进行上传。当然也支持现场拍照,如果你当前使用的时候电脑浏览器,那么他就会通过电脑来进行拍照。
image.png

  • take a photo :唤起摄像机
  • pick a file:选择一张图片
  • continue without a photo:跳过图片上传,进行下一步。

当然我肯定上传的是我ps过的帅照啦!! 这里如果你上传了照片,系统会根据你的上传的照片,来进行建模。当然也可以自己去塑造。

人物塑性

到了捏脸的时候了,大家发挥想象力就可以了。我个人比较喜欢赛博朋克。

image.png

这里大家自行发挥,哈哈哈。

完成后,点击右上角。

文件导出

这里有两种方式。

  • copy avatar link :通过资源链接的方式引入
  • Download: 下载到本地引入
    image.png

项目搭建

这里我个人主要使用React进行开发。所以主要介绍在React上的使用。当然vue或者html是实现也都是差不多的。

如果需要,可以在评论区叫两声,会有jym为你解决的。

这里为了快速,我直接使用vite,当然create-react-app、Next、等都可以。

项目创建

yarn create vite

选择React

image.png

有ts和js两个版本。我选的是js。
image.png

依赖安装

这里我使用的React Three Fiber

yarn add three @types/three @react-three/fiber

新建一个mySelf文件,在app.jsx文件中导入该文件即可

import { useLoader } from "@react-three/fiber";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import { Canvas, extend, useThree } from "@react-three/fiber";
import { useRef } from "react";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
extend({ OrbitControls });const Orbit = () => {const { camera, gl } = useThree();// eslint-disable-next-line react/no-unknown-propertyreturn <orbitControls args={[camera, gl.domElement]} />;
};function MySelf() {const mySelfRef = useRef();// 导入人物文件const model = useLoader(GLTFLoader,"https://models.readyplayer.me/64b7457894a6ef343b6a6e02.glb");return (<div style={{ height: "100vh", width: "100wh" }}><Canvasstyle={{ backgroundColor: "black" }}camera={{ position: [1, 1, 2] }}><Orbit /><mesh ref={mySelfRef}><hemisphereLight intensity={0.15} groundColor="black" /><ambientLight /><primitiveobject={model.scene}scale={0.7}/></mesh></Canvas></div>);
}export default MySelf;

这样模型就在自己的页面上显示出来了。
image.png

总结

这样我们就把我们的人物渲染到页面上了,如果需要源码点击这里更具对应,获取源码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#List转IList方法

最近工作中使用到了C#的List和IList。 这里参考百度上的资料&#xff0c;总结一下。 IList使用命名空间&#xff1a; using System.Collections; List<T>类:表示可通过索引访问的对象的强类型列表&#xff0c;提供用于对列表进行搜索、排序和操作的方法。 IList<T&…

​​Layui之用户管理实例(对数据的增删改查)

目录 ​编辑一、R工具介绍&#xff08;&#xff09; ​编辑二、数据表的增删改查 ​编辑2.1我们先得从查询数据库的语句入手 2.2优化dao类 2.4UserAction类 2.5前台的页面实现增删改查操作 2.6 userManage页面JS 2.7user新增、修改iframe层js 前言 上一篇我分享了…

试玩python的web框架 flask、fastapi、tornado、django

文章目录 一、Flask入门案例 [官网](https://flask.net.cn/quickstart.html) [其它参考](https://zhuanlan.zhihu.com/p/104273184?utm_id0)二、FastAPI入门案例 [官网](https://fastapi.tiangolo.com/zh/) [w3cschool教程](https://www.w3cschool.cn/fastapi/fastapi-feature…

无涯教程-Javascript - 运算符

让无涯教程用一个简单的表达式 4 59 。这里的4和5称为操作数&#xff0c;" "称为运算符&#xff0c;JavaScript支持以下类型的运算符。 算术运算符比较运算符逻辑运算符赋值运算符三元)运算符 算术运算符 JavaScript支持以下算术运算符&#xff0c;假设变量A10&a…

[RocketMQ] Broker CommitLogDispatcher 异步构建ConsumeQueue和IndexFile源码解析 (十四)

CommitLogDispatcherBuildConsumeQueue: 异步构建ConsumerQueue。CommitLogDispatcherBuildIndex: 异步构建IndexFile。 文章目录 1.CommitLogDispatcherBuildConsumeQueue构建ConsumeQueue1.1 putMessagePositionInfo写入消息位置信息1.2 findConsumeQueue查找ConsumeQueue1.2…

go初识iris框架(二) - get,post请求和数据格式

继初步了解iris后 文章目录 获取url路径获取数据get请求post请求获取JSON数据格式JSON返回值获取XML数据格式XML返回值 获取url路径 package mainimport "github.com/kataras/iris/v12"func main(){app : iris.New()app.Get("/hello",func(ctx iris.Conte…

部分安卓端ncnn模型推理输出数据存在大量-nan和nan的问题

原文issue链接&#xff1a;部分安卓端ncnn模型推理输出数据存在大量-nan的问题 Issue #3607 Tencent/ncnn (github.com) 问题描述 onnx、ncnn模型在pc端推理输出结果正确且基本一致&#xff0c;在部分安卓设备上使用同一模型和输入的推理输出数据正常&#xff0c;另一部分安…

Redis报错-CROSSSLOT keys in request don‘t hash in the same slot

背景 问题涉及&#xff1a;spring security、spring session、redis 问题描述 springbootspringsecurityspringsessionantd 登录功能的时候&#xff0c;在源码中使用到了redis的rename命令&#xff08;如下图所示&#xff09; 在这里就会报错 CROSSSLOT keys in request d…

基于小波哈尔法(WHM)的一维非线性IVP测试问题的求解(Matlab代码实现)

&#x1f4a5;1 概述 小波哈尔法&#xff08;WHM&#xff09;是一种求解一维非线性初值问题&#xff08;IVP&#xff09;的数值方法。它基于小波分析的思想&#xff0c;通过将原始问题转化为小波空间中的线性问题&#xff0c;然后进行求解。以下是一维非线性IVP测试问题的求解…

MacOS 便笺Stickies数据恢复

在MacOS上&#xff0c;如果便笺数据丢了&#xff1a; 1、可以去时间机器备份的以下目录寻找&#xff0c;之前所有的便笺&#xff0c;都以rtfd文件的形式存在这下面。 最新备份/用户/Frank(这里是你的用户名)/Library/Containers/com.apple.Stickies/Data/Library/Stickies 2…

守护数智未来,开源网安受邀参加2023OWASP北京论坛

2023年7月14日&#xff0c;OWASP中国与网安加社区联合举办的“2023OWASP中国北京安全技术论坛”在北京圆满召开&#xff0c;开源网安受邀参加本次论坛并分享“软件供应链安全治理实践”。 本次“2023OWASP中国北京安全技术论坛”是OWASP中国北京地区年度重要活动之一&#xff…

【Hive实战】Hive的事务表

Hive Transactions 在升级到Hive 3之前&#xff0c;需要把在事务表上Major Compaction。主要是为了合并掉增量文件。更准确地说&#xff0c;自上次Major Compaction以来在其上执行过任何更新/删除/合并语句的任何分区都必须进行另一次Major Compaction。在 Hive 升级到 Hive 3 …

Vue+axios 使用CancelToken多次发送请求取消前面所有正在pendding的请求

需求&#xff1a; 项目中 折线图数据是循环调用的&#xff0c;此时勾选一个设备&#xff0c; 会出现多条线。 原因 折线图数据一进来接口循环在调用&#xff0c;勾选设备时&#xff0c;循环调用的接口有的处于pedding状态 &#xff0c;有的还在加载中&#xff0c;这就导致勾…

【PDFBox】PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档

这篇文章&#xff0c;主要介绍PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档。 目录 一、PDFBox操作文本 1.1、读取所有页面文本内容 1.2、读取指定页面文本内容 1.3、写入文本内容 1.4、替换文本内容 &#xff08;1&#xf…

如何在 Endless OS 上安装 ONLYOFFICE 桌面编辑器

ONLYOFFICE 桌面编辑器是一款基于依据 AGPL v.3 许可进行分发的开源办公套件。使用这款应用&#xff0c;您无需保持网络连接状态即可处理存储在计算机上的文档。本指南会向您介绍&#xff0c;如何在 Endless OS 上安装 ONLYOFFICE 桌面编辑器。 ONLYOFFICE 桌面版是什么 ONLYO…

Spring Boot进阶(55):SpringBoot之集成MongoDB及实战使用 | 超级详细,建议收藏

1. 前言&#x1f525; 前几期我们有介绍Mysql、Redis等数据库介绍及实战演示&#xff0c;对基本的数据存放有很好的共性&#xff0c;但是如果说遇到大面积的xml、Json、bson等格式文档数据存放&#xff0c;以上数据库并非是最优选择&#xff0c;最优选择是Mongodb数据库。 那么…

如何将jar 包下载到自定义maven仓库

下载命令 mvn install:install-file -Dfileartifactid-version.jar -DgroupIdgroupid -DartifactIdartifactid -Dversionversion -Dpackagingjar -DlocalRepositoryPath. -DcreateChecksumtrue参数解释 在上述命令中&#xff0c;需要替换以下参数&#xff1a; artifactid-vers…

HTTP原理解析-超详细

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…

《刷题2》场景模拟

目录 1. C语言部分 1.1. 关键字static有什么用途? 1.2. 如何引用一个已经定义过的全局变量? 1.3. 设有以下说明和定义&#xff1a; 1.4. 写出float x 与“零值”比较的if语句 1.5. 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C中应用什么实现? 1.6. 什么是…

vue3+vue-router4:报错Uncaught (in promise) Error: Invalid navigation guard

报错图示&#xff1a; Error: Invalid navigation guard Uncaught (in promise) Error: Invalid navigation guard 错误影响描述&#xff1a; 配置开发、测试、生产时候&#xff0c;因为是公众号&#xff0c;所以想在开发环境下免鉴权&#xff0c;不走微信获取openid接口&a…