精品熟人妻一区二区三区四区不卡-精品爽黄69天堂a-精品水蜜桃久久久久久久-精品丝袜国产自在线拍-精品丝袜国产自在线拍a-精品丝袜国产自在线拍免费看

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

解密 kokomi.js,Three.js 的效率神器!前端卷王們偷偷在用

admin
2025年4月22日 0:50 本文熱度 203

作者 alphardex

alphardex,對 WebGL、Three.js 和 Shader 編程有濃厚的興趣。她的個(gè)人簡介中提到喜歡編碼、動漫、游戲和“可愛的東西”(kawaii mono),這也體現(xiàn)在她項(xiàng)目的命名上,比如 kokomi.js 的靈感來源于《原神》中的角色“珊瑚宮心海”(Sangonomiya Kokomi)。

一位穿梭在頂點(diǎn)著色器與動漫結(jié)界之間的技術(shù)魔女。

主頁

https://alphardex.netlify.app?

GitHub

https://github.com/alphardex

CODEPEN

https://codepen.io/alphardex

掘金專欄(某科學(xué)的three.js)

https://juejin.cn/column/6961386493579362312

開源 kokomi.js

介紹

kokomi.js 是一個(gè)基于 TypeScript 開發(fā)的 Three.js 輔助庫,旨在簡化 Web 3D 開發(fā)的流程。它通過封裝 Three.js 的常用功能,提供更高層次的抽象,讓開發(fā)者能夠更快速地搭建 3D 場景,同時(shí)保持代碼結(jié)構(gòu)清晰、可復(fù)用性強(qiáng)。項(xiàng)目的 GitHub 描述是:“A growing three.js helper library”(一個(gè)不斷成長的 Three.js 輔助庫),目前已有 400+ 星標(biāo),表明它在社區(qū)中獲得了一定認(rèn)可。

部分案例

模型展示

Shadertoy 集成

持續(xù)效應(yīng)

渲染紋理

反射鏡

無限畫廊

  • 更多案例

https://kokomi-js.netlify.app/examples/

特點(diǎn)

模塊化設(shè)計(jì)
  • 項(xiàng)目提供了諸如 Box、OrbitControls、AssetManager 等預(yù)封裝組件,開發(fā)者可以直接調(diào)用這些類來創(chuàng)建和管理 3D 元素。
  • 通過繼承 kokomi.Base 類,開發(fā)者可以自定義場景邏輯,保持代碼的組織性。
資源管理
  • AssetManager 類統(tǒng)一管理紋理、模型(如 GLTF)、字體等資源,支持異步加載,提升了復(fù)雜場景的開發(fā)效率。
易用性
  • 提供簡潔的 API,例如 box.spin(time) 用于旋轉(zhuǎn)物體,OrbitControls 用于相機(jī)控制,降低了 Three.js 的學(xué)習(xí)曲線。
TypeScript 支持
  • 項(xiàng)目使用 TypeScript 編寫,提供了類型定義,方便開發(fā)者在現(xiàn)代前端開發(fā)環(huán)境中獲得代碼補(bǔ)全和類型檢查的支持。

快速使用

  • 首先安裝 kokomi.js
npm i kokomi.js
  • 由于它是基于 Three.js 的封裝庫,確保項(xiàng)目中已安裝 three:
npm i three
  • 創(chuàng)建一個(gè)簡單的 3D 場景,包含一個(gè)旋轉(zhuǎn)的立方體:

kokomi.Base:基類,提供了場景、相機(jī)、渲染器等基礎(chǔ)設(shè)置。

kokomi.Box:封裝的立方體類,默認(rèn)帶白色材質(zhì)。

OrbitControls:鼠標(biāo)控制相機(jī)旋轉(zhuǎn)和縮放。

update:每幀調(diào)用的更新函數(shù),time 參數(shù)由內(nèi)部時(shí)鐘提供。

import * as kokomi from"kokomi.js";

class Sketch extends kokomi.Base {
  create() {
    // 創(chuàng)建一個(gè)立方體
    const box = new kokomi.Box(this);
    box.addExisting(); // 將立方體添加到場景中

    // 添加相機(jī)控制
    new kokomi.OrbitControls(this);

    // 更新函數(shù):讓立方體旋轉(zhuǎn)
    this.update((time) => {
      box.spin(time);
    });
  }
}

// 初始化
const sketch = new Sketch();
sketch.create();

運(yùn)行后,你會在瀏覽器中看到一個(gè)可交互的旋轉(zhuǎn)立方體:

  • 加載外部資源

使用 AssetManager 加載 3D 模型(例如 GLTF 格式的狐貍模型):

AssetManager:異步加載資源,ready 事件觸發(fā)時(shí)表示加載完成。

資源類型:支持 texture(2D 貼圖)、cubeTexture(3D 貼圖)、gltfModel(模型)、font(字體)等。

import * as THREE from"three";
import * as kokomi from"kokomi.js";

// 定義資源列表
const resourceList = [
  { name"foxModel"type"gltfModel"path"/models/Fox/glTF/Fox.gltf" },
];

class Sketch extends kokomi.Base {
  create() {
    // 設(shè)置相機(jī)位置
    this.camera.position.set(643);

    // 添加光源
    const ambientLight = new THREE.AmbientLight(0xffffff0.5);
    this.scene.add(ambientLight);
    const dirLight = new THREE.DirectionalLight(0xffffff0.6);
    dirLight.position.set(123);
    this.scene.add(dirLight);

    // 加載資源
    const assetManager = new kokomi.AssetManager(this, resourceList);
    assetManager.emitter.on("ready", () => {
      const foxModel = assetManager.items.foxModel;
      foxModel.scene.scale.set(0.020.020.02); // 縮放模型
      this.scene.add(foxModel.scene); // 添加到場景
    });

    // 添加相機(jī)控制
    new kokomi.OrbitControls(this);
  }
}

const sketch = new Sketch();
sketch.create();
  • 項(xiàng)目配置
// vite.config.js
import { defineConfig } from "vite";

export default defineConfig({
  // 確保正確解析 .gltf 文件
  assetsInclude: ["**/*.gltf"],
});

在線編程

https://kokomi-sandbox.netlify.app/

源碼

https://github.com/alphardex/kokomi.js

文檔

https://kokomi-docs.netlify.app/

最后

盡管文檔生態(tài)仍需完善,還有待加入更多高級特性,但kokomi.js 已展現(xiàn)出成為 Three.js 輕量化標(biāo)桿工具的潛力,尤其適合對 Web 3D 感興趣的前端開發(fā)者嘗試。如果你正在探索 Three.js 或想快速實(shí)現(xiàn)一個(gè) 3D 項(xiàng)目,不妨試試這個(gè)庫!


閱讀原文:原文鏈接


該文章在 2025/4/22 16:43:42 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品色婷婷亚洲综合看片 | 99热国产这里只有精品久久 | 精品一区二区三区视频在线观看免 | 成年无码专区在线蜜芽tv | 麻豆视频一区二区 | 天美传媒在线观看果冻传媒 | av无码小缝喷白浆在线观看 | 999精品国产人妻无码系列 | 日韩激情中文字幕一区二区 | 亚洲精品无码成人片久久 | 国产一区二区在线播放 | 国产亚洲精品久久 | 无码h黄动漫在线播放网站 无码h肉动漫在线观看 | 国产精品一区二区 | 亚洲午夜国产精品无码老牛影视 | 婷婷欧美成人在线 | 国产精品老女人精品视频 | 国产免费一区二区三区免费视频 | 97视频app下载 | 亚洲综合日韩无码一区二区 | 爆乳邻居肉欲中文字幕 | 精品亚洲国产专区在线观看 | 午夜视频在线观看一区二区 | 国产成人拍精品视频午夜网站 | 国产看黄网站又黄又爽又色 | 久久99精品久久久久久久不卡 | 国产污片在线观看 | 精品999日本久久久影院 | 精品国产成人亚洲午夜福利 | 91精品国产综合久久 | 亚洲日本一区二区三区在线不 | 插我舔内射18免费视频 | 欧美午夜理伦三级在线观看 | 国产动漫频道 | 果冻传媒精品推荐在线观看 | 国产亚洲成av人片在 | 精品久久久久无码专区 | 午夜美女福利视频 | 国产日韩在线 | 午夜精品福利电 | 国产免费无码av片在线观看不 |