metaverse系列二3d引擎知多少

ThingJS优锘 ThingJS优锘     2022-12-01     289

关键词:

今天聊聊BIGANT中的G。这里的G是Game,也就是3D游戏引擎的意思,简称为3D引擎

3D引擎,很多人可能并不清楚这到底什么?

听到"引擎"两个字,你可能首先会想到汽车引擎,是汽车提供动力的核心部件。如果没有引擎,汽车就只能是一个模型,趴窝里不能动。3D模型也一样,用3DMax软件制作了一个非常逼真、精美的3D模型,带有光影和动画效果。但它是“死”的,不能互动这就差些意思。

【Metaverse系列二】3D引擎知多少_3d引擎

而引擎给3D模型赋予人机交互的能力,让模型“活”起来。你可以在满是废墟的街道上奔跑,寻找补给,街道两边的建筑和光影效果都是“实时渲染”出来的,你可以利用3D引擎“编排剧情”,通过和游戏人物(NPC)互动来触发不同的分支任务。有些任务会引发激烈的枪战,你可以增加一大堆跑酷动作,比如“下蹲”、“奔跑”、“跳跃”、“飞翔”、“拾取”、“射击”、“爆炸”、“躲避”等等,而且这些能力并不需要开发大量代码,3D引擎帮你实现。

【Metaverse系列二】3D引擎知多少_游戏引擎_02

这就是3D引擎的能力,它给3D模型赋予了“交互方法、物理定律、剧情脚本、AI智能”,不需要编写很多代码就能让3D模型在“体”、“相”、“用”三方面逼近现实世界真实的人和物,让人感觉模型“活”了。而且与汽车引擎不同,汽车没引擎不能跑,但游戏没引擎是可以运行的。游戏引擎其实更像汽车工厂,本质上是一种开发游戏的软件。

其实在三十多年前,电子游戏出现的早期,没有游戏引擎也能开发出好游戏,我们熟悉的玛丽兄弟、魂斗罗,都是程序员用简陋的代码编辑器,从零开始一行一行代码写出来的。


【Metaverse系列二】3D引擎知多少_3d引擎_03

那时,游戏的玩法很简单,所以允许使用这种作坊式的粗糙方法。但后来游戏市场规模越来越大,用户要求越来越高,游戏玩法也越来越复杂,这就导致游戏的代码量变得非常巨大。于是一些游戏公司中的一小部分程序员开始做直觉性的尝试,在开发某个功能时,把未来可能重用的部分单独剥离出来。这种尝试就像荒野中微微闪现的星火,但这些零散的可重复利用的代码块还远远称不上"引擎"。

终于,1993年一个改变时代的大神出现了,他就是约翰·卡马克,ID Software的创始人。他设计了人类第一款3D引擎,带领团队在短短几年内就创造了《DOOM》、《德军总部》、《雷神之锤》、《狂怒》等如雷贯耳的游戏大作。今天,卡马克被誉为FPS之父、3D游戏之父。

【Metaverse系列二】3D引擎知多少_游戏引擎_04

卡马克在动手开发游戏之前就先设计了一整套基础代码的框架和开发规范,并将所有的基础代码写好,还留下了方便调用的接口,比如图像渲染接口、3D加速接口、轨迹控制接口等。这样其他程序员在开发游戏时就可以像拼乐高积木一样,快速搭建出各种游戏应用。使得游戏的规划更合理,功能更稳定,并且游戏开发者只需要将精力聚焦游戏规则本身,提升了游戏开发效率。而这个基础代码库就是最早的3D游戏引擎。卡马克开发的世界上第一款3D游戏《德军总部3D》让人们看到了一个全新的游戏世界、感受到极为震撼到游戏体验。我们看看下图感受一下~

【Metaverse系列二】3D引擎知多少_3d引擎_05

你被震撼了嘛?想想这可是三十年前,这款游戏一出现,玩家惊呼原来游戏还能这么玩!一下子引爆了大量的3D游戏需求。后来有一家叫“乌鸦”的游戏开发公司突发奇想,找卡马克要来游戏引擎授权,用这款引擎快速开发了不少畅销游戏。这一出把其他游戏厂商的思路也打开了,大家发现原来还有3D引擎这么个东西,还可以直接拿来用啊!于是游戏行业就诞生了一个新的细分市场:3D游戏引擎。所以,这几乎是卡马克凭借一人之力开创的市场,如今这个市场已经达到万亿的规模。

在卡马克和他的3D游戏如日中天之时,他的竞争对手也在慢慢浮现。此后的三十年是一场漫长的游戏引擎战争,数十款游戏引擎在市场中激烈搏杀,直到今天还未尘埃落定,但两大巨头已经缓缓隐现。

今天的3D引擎已远远超出最初的形态,除了可复用的代码库(称为引擎内核),还逐步演进出一整套工具平台。后续我们聊聊UE引擎(Unreal)的史诗成长故事,欢迎大家点赞或留言。

css知多少——选择器(转)

1.引言  从本节开始,就进入本系列的第二个部分——css和html的结合——说白了就是选择器。  CSS中定义了样式,如何将这些样式设置到相应的html节点上?就不得不通过选择器。让浏览器知道css选择了哪一个dom节点,浏览... 查看详情

科普系列交换机知识知多少

...网线传输直流电,针对输出电流在网线中的传输采取了一系列安全保护措施(短路、过载、浪涌防护等)。同时 查看详情

搭建unity3d游戏引擎开发工具系列:ui框架

搭建Unity3D游戏引擎开发工具系列:UI框架(1)搭建Unity3D游戏引擎开发工具系列:UI框架(2)搭建Unity3D游戏引擎开发工具系列:UI框架(3)搭建Unity3D游戏引擎开发工具系列:UI框架(4... 查看详情

3d游戏引擎系列九

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。CSDN课... 查看详情

趣味分析系列|文胸品牌知多少

一年一度的圣诞节马上就快到了,各位男神是不是又在劳神费力地给女神们准备圣诞节礼物?今年送啥呢?送脑白金怎么样?NO,NO,NO!脑白金是送给大妈的!!!直接给MONEY?NO,NO,NO!太俗气!!!送鲜花与巧克力?NO,NO,NO!不实在!!!按我说,直... 查看详情

unity3d引擎之渲染技术系列一

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者。国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术具体解释》电子工业出版社等。CSD... 查看详情

基于物理的渲染技术(pbr)系列二

....net/lecturer/144 继续上篇博客中基于物理的渲染技术(PBR)系列一的讲解,在这里我们引入了一种被称为渲染方程(Ren 查看详情

nginx知多少系列之配置文件详解(代码片段)

原文:Nginx知多少系列之(三)配置文件详解目录1.前言2.安装3.配置文件详解 4.工作原理 5.Linux下托管.NETCore项目6.Linux下.NETCore项目负载均衡7.Linux下.NETCore项目Nginx+Keepalived高可用(主从模式)8.Linux下.NETCore项目Nginx+Keepalived高可... 查看详情

平板"芯"事知多少?芯片介绍:瑞芯微rk2918

...卡扩展,前置30万CMOS摄像头视频通话用。 2:瑞芯微RK29XX系列基于55纳米工艺,处理器采用了ARMCortex-A8,主频达到了1.2GHz。 3:RK29XX的处理器还具备512KB二级缓存,并配有Neon协处理器,这些都对性能提升有一定的帮助。  4:还... 查看详情

用函数式编程,从0开发3d引擎和编辑器

介绍大家好,欢迎你踏上3D编程之旅~本系列的素材来自我们的产品:Wonder-WebGL3D引擎和编辑器的整个开发过程,探讨了在从0开始构建3D引擎和编辑器的过程中,每一个重要的功能点、设计方案的思考、讨论、总结和延伸。本系列... 查看详情

metaverse系列一元宇宙的奥秘

你有没有想过逃离闷热的会议室,瞬间移动到马尔代夫的沙滩上开会?开完会,纵身跳入大海和美人鱼捉迷藏。然后一个鲤鱼打挺直冲云霄,进入天宫一号开展科学研究,发现微重力环境下韭菜的长势喜人,而且在特定光照条件... 查看详情

ffmpeg知多少~~~

一、ffmpeg安装:​​https://jingyan.baidu.com/article/f7ff0bfcd64cea2e26bb1334.html​​ 二、ffmpeg视频处理(包括各种视频流处理~):三、ffmpeg推流步骤:1)通过ffmpeg截取指定长度的视频流:ffmpeg-t10-irtsp://xxx:xxxxx1234@172.20.xx.xxx:55410s_out 查看详情

css知多少(10)——display(转)

...在“块”里面的(最外层的body就是一个“块”)。在本系列一开始讲《浏览器默认样式》的时候,大家也都看到了浏览器默认样式中规定了html元素哪些属于“块”(剩下的就是“流”)。这部分知识非常重要也非常基础,因此... 查看详情

梅麻吕系列动漫共多少集

参考技术A梅麻吕系列动漫共11集。《梅麻吕3d游戏系列》,这是一部动画类型的游戏,动画在刺激的游戏中穿梭,让人在玩游戏当中看电影感觉十分的有新鲜感。梅麻吕的3D作品可以说是现在3D动画中最好的作品之一,人设和剧情... 查看详情

sql递归查询知多少

sql递归查询的方法:方法一:T-SQL递归查询withDepas(selectId,DeptCode,DeptNamefromDepartmentwhereId=1unionallselectd.Id,d.DeptCode,d.DeptNamefromDepinnerjoinDepartmentdondep.Id=d.ParentDeptId)select*fromDep方法二:PL/SQL递归查询selectId,DeptCode,DeptNamefromDepartmentstartwithI... 查看详情

eshoponcontainers知多少[1]:总体概览

...此来学习研究微服务,并分享自己的所学所得,形成一个系列,为.NET社 查看详情

你了解的spring的@transactional注解控制事务,失效场景知多少?

参考技术A这里以MySQL为例,其MyISAM引擎是不支持事务操作的,InnoDB才是支持事务的引擎,一般要支持事务都会使用InnoDB。根据MySQL的官方文档:https://dev.mysql.com/doc/refman/5.5/en/storage-engine-setting.html从MySQL5.5.5开始的默认存储引擎是... 查看详情

搜索引擎系列二:lucene(lucene介绍lucene架构lucene集成)(代码片段)

一、Lucene介绍1.Lucene简介  最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便... 查看详情