Web 中的 3D 游戏

简介: Web 中的 3D 游戏

为了 web 上丰富的游戏体验,一个好武器是 webGL,它可以在 HTML <canvas> 元素上渲染。WebGL 基本上是 Web 的 OpenGL ES 2.0 版本——作为一个 JavaScript API,它提供了能构建丰富的交互式动画和游戏的工具。你可以使用硬件加速的 JavaScript 生成和呈现动态 3D 图像。


文档和浏览器支持


WebGL 项目的文档和规范由 Khronos Group 维护,而非大部分 Web API 采用的 W3C。它很好地支持了现代浏览器甚至是移动手机,由此你无需担心太多。主流浏览器均支持 WebGL,你需要关注的仅仅是在你使用的设备上进行优化。

WebGL 2.0(基于 OpenGL ES 3.0)将在不久的将来发布,它将带来许多改进,并将帮助开发人员使用当前强大的硬件为现代 web 构建游戏。


对基本 3D 理论的解释


三维理论的基本原理围绕三维空间中的图形展开,并使用坐标系来计算它们的位置。请参阅我们的解释基本 3D 理论文章,了解你需要的所有信息。


进阶概念


使用 WebGL,可以做更多事情。应该深入学习一些高级概念,如着色器、碰撞检测或最新的热门话题:Web 虚拟现实。


着色器


值得一提的是着色器,其本身有很多值得探讨的地方。着色器使用一种特殊的 OpenGL 着色语言——GLSL,其语法类似于 C 语言,由图形管道直接执行。着色器可分为顶点着色器和片段着色器(或像素着色器),前者将形状位置转换为真实的 3D 绘图坐标,后者则计算渲染颜色和其他属性。你一定要看看 GLSL 着色器这篇文章,了解更多关于它们的信息。


碰撞检测


很难想象没有碰撞检测的游戏会是什么样子——我们总是需要计算出物体什么时候碰撞到另外一个物体。我们有相关信息可供你学习:


WebXR


虚拟现实的概念并不新鲜,但由于 Meta Quest、WebXR API(目前处于试验阶段)等硬件的进步,它正风靡网络,用于从 XR 硬件捕捉信息并将其提供给 JavaScript 应用程序使用。更多信息,请阅读 WebXR——Web 虚拟和增强现实 (en-US)。

还有一篇用 A-Frame 构建基本演示 (en-US)的文章,向你展示了使用 A-Frame 框架构建 3D 环境的虚拟现实是多么的简单。


库和框架的兴起


编码原生 WebGL 是相当复杂的,从长远来看,随着项目更进一步,你会希望掌握它(请参阅我们的 WebGL 文档以开始学习)。在实际项目中,你可能也会使用框架来加快开发速度,并帮助你管理正在进行的项目。在 3D 游戏中使用框架还有助于优化性能,因为所使用的工具可以解决很多问题,这样就可以专注于构建游戏本身。


最流行的 JavaScript 3D 库是 Three.js,这是一个多用途工具,它使常见的 3D 技术更易于实现。还有其他一些流行的游戏开发库和框架也值得一看。A-Frame、PlayCanvas 和 Babylon.js 是其中最知名的几个,它们拥有丰富的文档、在线编辑器和活跃的社区。


使用 A-Frame 搭建一个基础演示


A-Frame 是一个用于搭建 3D 和 VR 体验的 Web 框架。在内部,它是一个具有已声明的实体组件模式的 three.js 框架,也就是说我们只需借助 HTML 即可搭建场景。请参阅使用 A-Frame 构建基本演示 (en-US)子页面来了解创建演示的步骤。


使用 Babylon.js 搭建一个基础演示


Babylon.js 是最受开发者欢迎的 3D 游戏引擎之一。与其他任何 3D 库一样,它提供了内置函数,帮助你更快地实现常见的 3D 功能。请参阅 使用 Babylon.js 构建基本演示 (en-US)子页,其中包括建立一个开发环境,构建必要的 HTML,以及编写 JavaScript 代码。


使用 PlayCanvas 搭建一个基础演示


PlayCanvas 是一个流行的 GitHub 开源 3D WebGL 游戏引擎,有在线编辑器和良好的文档。更多详细信息 请参阅使用 PlayCanvas 构建基本演示 (en-US) ,文章将进一步介绍如何使用 PlayCanvas 库和在线编辑器搭建演示。


使用 Three.js 搭建一个基础演示


与其他库一样,Three.js 也能带来巨大优势:无需编写数百行 WebGL 代码来构建任何有趣的内容,而是可以使用内置的辅助函数来更轻松、更快速地完成工作。请参阅使用 Three.js 构建基本演示子页面,了解创建演示的逐步过程。


其他工具


Unity 和虚幻引擎可以将你的游戏通过 asm.js (en-US) 输出到 WebGL,因此你可以自由地使用这些工具与技术来构建可被输出到 Web 上的游戏。


相关文章
|
5月前
|
前端开发
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
|
5月前
|
人工智能 前端开发 开发工具
NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践
.NET技术自2000年推出以来,在软件开发领域扮演着关键角色。本文从核心优势出发,探讨其统一多语言平台、强大工具集、跨平台能力及丰富生态系统的价值;随后介绍.NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践;最后分析性能优化、容器化、AI集成等方面的挑战与机遇,展望.NET技术的未来发展与潜力。
87 2
|
5月前
|
前端开发 JavaScript
Web前端项目(一)- 迷宫游戏
【8月更文挑战第13天】本项目采用HTML页面,结合了JS和CSS创建一个简单的迷宫游戏,游戏特色包括自动寻路功能和可进行迷宫路线的更新。页面整体采用“毒药水式”的色彩搭配,给人一种迷幻,科技之感。并且为了大家能够二次创作,我在代码中标明了详细的注释
158 0
|
8月前
|
测试技术 Linux Docker
【好玩的经典游戏】Docker部署FC-web游戏模拟器
【好玩的经典游戏】Docker部署FC-web游戏模拟器
385 2
|
8月前
|
JavaScript 前端开发
植物大战僵尸Javascript版web游戏源码
植物大战僵尸Javascript版web游戏源码,非常强大,1比1还原电脑版植物大战僵尸游戏,带背景音乐,玩法和原版一模一样。
333 2
|
8月前
|
前端开发 JavaScript 定位技术
web版拳皇,使用html,css,js来制作一款拳皇游戏
web版拳皇,使用html,css,js来制作一款拳皇游戏
124 0
NAGA链游WEB3.0航海士游戏系统开发技术
NAGA链游WEB3.0航海士游戏系统开发技术
|
弹性计算 监控 应用服务中间件
网站用户流量分析—适用于电商网站、资讯网站、游戏主站等各类Web站点场景
本教程介绍如何使用日志服务采集NGINX日志,创建仪表盘分析用户访问行为。
|
JavaScript 前端开发 数据可视化
WebGL:基于web的交互式2D/3D图形引擎
WebGL(Web图形库)是一个JavaScript应用程序编程接口(API),用于实现交互式Web图形。
352 0
|
搜索推荐 JavaScript 数据可视化
数据可视化大屏高德地图javascript webAPI开发的智慧治安物联网管理系统实战解析(web GIS、3D视图、个性化地图、标注、涟漪动画、自定义弹窗、3D控件)
数据可视化大屏高德地图javascript webAPI开发的智慧治安物联网管理系统实战解析(web GIS、3D视图、个性化地图、标注、涟漪动画、自定义弹窗、3D控件)
546 0