Three.js + React 实战系列 : 从零搭建 3D 个人主页

可能你对tailiwindcss毫不了解,别紧张,记住我们只是在学习,学习的是作者的思想和技巧,并不是某一行代码。

在之前的几篇文章中,我们已经熟悉了 Three.js 的基本用法,并通过 react-three-fiber 快速构建了一个完整场景。

本篇将正式开启我们的 3D 个人主页实战系列 🚀

完整项目:
github项目地址:https://github.com/SunACong/three-practice.git

教程仓库:
gitcode地址:https://gitcode.com/sunbyte/three-profile.git

前置知识:

  • ✅ tailiwindcss

本篇聚焦以下几个目标:

  • ✅ 规划整个项目的基础目录结构
  • ✅ 明确资源(模型/贴图)存放位置
  • ✅ 明确各个文件夹的作用以及内容

这是构建你专属 3D 主页的第一步,让我们开始吧!

部署效果地址:https://three-profile-one.vercel.app/

在这里插入图片描述


🗂️ 项目基础目录结构


建议将项目结构清晰划分,便于后续维护与模块化开发:
three-profile/ 
├── public/ # 静态资源(模型、贴图、icon) 
│ ├── models/ # .glb / .gltf 模型资源 
│ ├── textures/ # 贴图(背景、材质贴图等) 
│ └── assetss/ # 图标icon资源
├── src/ 
│ ├── components/ # 3D 场景组件(Avatar, Card, Icons...) 
│ ├── constans/ # 常量定义 
│ ├── sections/ # 构成主页部分的section 
│ ├── App.jsx # 应用主入口 
│ └── main.jsx # React 挂载入口 
│ └── index.css # 引入全局css配置入口
├── index.html 
└── vite.config.js

🛠️ 搭建项目

  1. 初始化 react 项目
npm create vite@latest three-profile -- --template reactnpm installnpm run dev
  1. 💻 安装Tailiwindcss

虽然tailiwindcss已经更新到v4版本,但是为了不在环境配置上浪费时间,请使用v3版本。

"autoprefixer": "^10.4.20",	
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",将上面依赖复制到package.json中执行npm install 安装依赖即可
  1. 配置项目
根目录执行 npx tailwindcss init 生成 tailiwindcss.config.js在仓库Readme-代码片段中复制 tailiwindcss.config.js 代码片段根目录创建postcss.config.js,在仓库Readme-代码片段中复制 postcss.config.js 代码片段在仓库ReadMe文件中复制 index.css 覆盖 src/index.css删除 App.css

👋 Hello ThreeJS!!

🎥 01 · 项目框架与资源准备:你的 3D 主页起点

✅ 小结

我们已经完成了以下工作:

  • ✅ 初始化项目结构

  • ✅ 安装并配置核心依赖

  • ✅ 梳理项目资源

    • GLB转换为React代码:https://gltf.pmnd.rs/
    • 捏脸网址:https://readyplayer.me/
    • GLB转换为FBX:https://products.aspose.app/3d/conversion/glb-to-fbx#
    • 为你的3D模型添加动作:https://www.mixamo.com/#/
    • 免费部署网址:https://vercel.com/

🔮 下一篇预告

  • Navbar 导航栏 ✅

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

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

相关文章

Kotlin实现Android应用保活方案

Kotlin实现Android应用保活优化方案 以下的Android应用保活实现方案,更加符合现代Android开发规范,同时平衡系统限制和用户体验。 1. 前台服务方案 class OptimizedForegroundService : Service() {private val notificationId 1private val channel…

windows拷贝文件脚本

1、新建脚本文件xxx.bat,名字任意,后缀未.bat即可,将以下内容拷贝进去,修改src和des为自己文件的目录即可。 echo off :: 设置字符集为UTF-8,命令窗口能正确显示中文字符。 chcp 65001 rem 读取当前目录并进入当前目…

Qt 核心库总结

Qt 核心库(QtCore) QtCore 是 Qt 框架的基础模块,提供非图形界面的核心功能,是所有 Qt 应用程序的基石。它包含事件循环、信号与槽、线程管理、文件操作、字符串处理等功能,适用于 GUI 和非 GUI 应用程序。本文将从入…

大模型相关面试问题原理及举例

大模型相关面试问题原理及举例 目录 大模型相关面试问题原理及举例Transformer相关面试问题原理及举例大模型模型结构相关面试问题原理及举例注意力机制相关面试问题原理及举例大模型与传统模型区别 原理:大模型靠海量参数和复杂结构,能学习更复杂模式。传统模型参数少、结构…

【AI+HR实战应用】用DeepSeek提升HR工作效能

用DeepSeek提升HR工作效能 一、AI 与 AIGC 简介二、DeepSeek 介绍三、使用 DeepSeek 的渠道及硬件要求四、使用 DeepSeek 的核心技巧五、AI 在人力资源的应用场景六、AI 绘画与多模态应用七、个人使用 AI 的能力层级八、企业拥抱 AI 的策略九、提示词管理的重要性 一、AI 与 AI…

Postgresql几个常用的json操作

将行记录转为jsonb row_to_json(表名或别名)将行记录集转为json数组 (jsonb) select json_agg(row_to_json(t) order by t.task_name) into v_next_taskfrom dyna_flow_task t where t.zidv_template_id and t.levelv_next_level ;访问json字段,用->…

ESP32学习与快速总结——5.系统存储

1.ESP32分区表 为什么ESP32要分区 00:34-- 简述:其他单片机生成文件少,功能少,而ESP32功能多,文件多 分区表各个文件简介 --7:31vscode查看分区表 --9:33ota通过idf.py menuconfi…

Linux 进程控制(自用)

非阻塞调用waitpid 这样父进程就不会阻塞,此时循环使用我们可以让父进程执行其他任务而不是阻塞等待 进程程序替换 进程PCB加载到内存中的代码和数据 替换就是完全替换当前进程的代码段、数据段、堆和栈,保存当前的PCB 代码指的是二进制代码不是源码&a…

Spring 微服务解决了单体架构的哪些痛点?

1. 部署困难 (Deployment Difficulty & Risk) 单体痛点: 整体部署: 对单体应用的任何微小修改(哪怕只是一行代码),都需要重新构建、测试和部署整个庞大的应用程序。部署频率低: 由于部署过程复杂且风险高,发布周期通常很长&a…

面试题之高频面试题

最近开始面试了,410面试了一家公司 针对自己薄弱的面试题库,深入了解下,也应付下面试。在这里先祝愿大家在现有公司好好沉淀,定位好自己的目标,在自己的领域上发光发热,在自己想要的领域上(技术…

【MySQL】Read view存储的机制,记录可见分析

read view核心组成 1.1 事务id相关 creator_trx_id: 创建该read view的事务id 每开启一个事务都会生成一个 ReadView,而 creator_trx_id 就是这个开启的事务的 id。 m_ids: 创建read view时系统的活跃事务(未提交的事务)id集合 当前有哪些事…

【刷题Day20】TCP和UDP(浅)

TCP 和 UDP 有什么区别? TCP提供了可靠、面向连接的传输,适用于需要数据完整性和顺序的场景。 UDP提供了更轻量、面向报文的传输,适用于实时性要求高的场景。 特性TCPUDP连接方式面向连接无连接可靠性提供可靠性,保证数据按顺序…

Flink 内部通信底层原理

Flink 集群内部节点之间的通信是用 Akka 实现,比如 JobManager 和 TaskManager 之间的通信。而 operator 之间的数据传输是用 Netty 实现。 RPC 框架是 Flink 任务运行的基础,Flink 整个 RPC 框架基于 Akka 实现。 一、相关概念 RPC(Remote Procedure Call) 概念 定义:…

企业级Kubernetes 1.28高可用集群离线部署全指南(含全组件配置)

企业级Kubernetes 1.28高可用集群离线部署全指南(含全组件配置) 摘要:本文手把手教学在无外网环境下部署生产级Kubernetes 1.28高可用集群,涵盖ETCD集群、HAProxy+Keepalived负载均衡、Containerd运行时、Calico网络插件及Kuboard可视化管理全流程。提供100年有效证书配置…

【中间件】redis使用

一、redis介绍 redis是一种NoSQL类型的数据库,其数据存储在内存中,因此其数据查询效率很高,很快。常被用作数据缓存,分布式锁 等。SpringBoot集成了Redis,可查看开发文档Redis开发文档。Redis有自己的可视化工具Redis …

C语言——函数递归与迭代

各位CSDN的uu们大家好呀,今天将会给大家带来关于C语言的函数递归的知识,这一块知识理解起来稍微会比较难,需要多花点时间。 话不多说,让我们开始今天的内容吧! 目录 1.函数递归 1.1 什么是递归? 1.2 递归…

藏品馆管理系统

藏品馆管理系统 项目简介 这是一个基于 PHP 开发的藏品馆管理系统,实现了藏品管理、用户管理等功能。 藏品馆管理系统 系统架构 开发语言:PHP数据库:MySQL前端框架:BootstrapJavaScript 库:jQuery 目录结构 book/…

centos停服 迁移centos7.3系统到新搭建的openEuler

背景 最近在做的事,简单来讲,就是一套系统差不多有10多台虚拟机,都是centos系统,版本主要是7.3、7.6、7.9,现在centos停止维护了,转为了centos stream,而centos stream的定位是:Red …

什么是 IDE?集成开发环境的功能与优势

原文:什么是 IDE?集成开发环境的功能与优势 | w3cschool笔记 (注意:此为科普文章,请勿标记为付费文章!且此文章并非我原创,不要标记为付费!) IDE 是什么? …

jenkins批量复制Job项目的shell脚本实现

背景 现在需要将“测试” 目录中的所有job全部复制到 一个新目录中 test2。可以结合jenkins提供的apilinux shell 进行实现。 测试目录的实际文件夹名称是 test。 脚本运行效果如下: [qdevsom5f-dev-hhyl shekk]$ ./copy_jenkins_job.sh 创建文件夹 test2 获取源…