美呆了!纯前端技术实现 Web 原神启动

科技   2024-10-26 19:50   湖北  
原神启动是一个基于 xviewer.js 开发的项目网站,仅供学习交流使用,xviewer.js 是一个基于 three.js 的插件式渲染框架,xviewer.js 对 three.js 进行了进一步的封装,使得代码更加简洁,使用起来更加优雅。它提供了许多实用的组件和插件,可以帮助前端开发者更容易地使用 WebGL 技术。

项目预览:

WebGL 是一个 JavaScript API,全称叫做 Web Graphics Library,它允许开发者在支持的网页浏览器中渲染交互式的 3D 图形,无需安装任何插件。这个技术基于 OpenGL ES 2.0,这是一个为嵌入式系统设计的图形库。WebGL 与其它的网络标准紧密集成,使得开发者可以利用图形处理单元(GPU)来加速图形处理,从而在网页上实现复杂的 3D 视觉效果。
项目中使用 xviewerjs 加载大量 3D glb 文件资源,开发者可以通过这个项目学习到更多 WebGL 技术。
public onEnter() {
   const resources = this.target.viewer.user.resources;
   return Promise.all([
       gameManager.task(AssetManager.Load({ url"Genshin/Login/DOOR.glb" }).then((v) => resources.DOOR = v), { name"DOOR" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_BigCloud.glb" }).then((v) => resources.SM_BigCloud = v), { name"SM_BigCloud" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_Light.glb" }).then((v) => resources.SM_Light = v), { name"SM_Light" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_Qiao01.glb" }).then((v) => resources.SM_Qiao01 = v), { name"SM_Qiao01" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_Qiao02.glb" }).then((v) => resources.SM_Qiao02 = v), { name"SM_Qiao02" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_Qiao03.glb" }).then((v) => resources.SM_Qiao03 = v), { name"SM_Qiao03" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_Qiao04.glb" }).then((v) => resources.SM_Qiao04 = v), { name"SM_Qiao04" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_Road.glb" }).then((v) => resources.SM_Road = v), { name"SM_Road" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_ZhuZi01.glb" }).then((v) => resources.SM_ZhuZi01 = v), { name"SM_ZhuZi01" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_ZhuZi02.glb" }).then((v) => resources.SM_ZhuZi02 = v), { name"SM_ZhuZi02" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_ZhuZi03.glb" }).then((v) => resources.SM_ZhuZi03 = v), { name"SM_ZhuZi03" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/SM_ZhuZi04.glb" }).then((v) => resources.SM_ZhuZi04 = v), { name"SM_ZhuZi04" }),
       gameManager.task(AssetManager.Load({ url"Genshin/Login/WHITE_PLANE.glb" }).then((v) => resources.WHITE_PLANE = v), { name"WHITE_PLANE" }),
  ]);
}

项目使用技术:

Vite:现代化的前端构建工具,利用原生的 ES 模块导入特性,提供了快速的冷启动和即时的模块热更新,支持 TypeScript 和 JSX 等现代 JavaScript 特性。

React18:引入了新的 Root API,使得应用的加载和更新更加高效。提供了更好的组件生命周期控制,以及对自动批处理和新的 startTransition API 的支持。

TypeScript:是 JavaScript 的一个超集,它添加了类型系统和对 ES6+ 的支持,提供了静态类型检查,帮助开发者在编译时发现潜在的错误,提高代码质量和开发效率。

Less:CSS 预处理器,它扩展了 CSS 的功能,允许使用变量、Mixins、函数等特性。使得 CSS 的编写更加模块化和可复用。

Eslint:用于识别和报告 JavaScript 代码中的错误。支持自定义规则,帮助团队统一代码风格和最佳实践。

Three.js:基于 WebGL 的 JavaScript 库,它允许你在浏览器中创建和显示 3D 图形。

项目启动:

// 安装依赖
pnpm install
// 启动
npm start

《前端资源推荐》公众号收集各种前端组件 UI 框架、JS 插件工具、中后台系统模板、动画库、低代码、可视化资源、开源项目、学习资源、特效源码等,如有其他优秀资源,欢迎发消息投稿,感谢点赞、在看、转发、关注!!!

GitHub:https://github.com/gamemcu/www-genshin

其他推荐:

PagePlug:为开发者而生 低代码开发工具
Vue Draggable Plus:支持多种拖拽方式的组件库
600+ CSS Loading 动画加载器 

Vuetify:谷歌 Material 风格 响应式 UI 组件库

GitHub 56k+ Star AI 项目 截图就能生成前端代码
NutUI:京东开源 移动端 UI 组件库
Tesseractjs:OCR 前端识别提取图像文本字符

前端资源推荐
推荐分享各种前端组件UI、插件工具、中后台系统、低代码、可视化、开源项目、学习资源、特效源码等
 最新文章