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.pswp.cn/diannao/79857.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79857.shtml
英文地址,請注明出處:http://en.pswp.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 獲取源…