unreal源码分析
‘壹’ 如何学习Unreal Engine 4的材质系统源代码
双击GenerateProjectFiles.bat文件,一分钟后会生成一个UE4.sln
用Visual Studio 2013打开UE4.sln
进入后按F5进行编译,时间较长请耐心等待
(外星人20分钟,小编的机子1.5小时,听说还有2小时的,心里瞬间平衡多了……)
打开图示目录(Win32和Win64文件夹是按机子的信息打开)
找到UE4Editor.
看可以在桌面创建一个快捷方式。
打开中……
出现这个窗口后,可以选择你想要的类型,下面的框是命名。
扩展后还可以更改文件目录。
‘贰’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
blueprint我觉得是神器啊,可以给策划拿来用(可视化编程),程序员也可以用的很开心~这个比你随便写几行,就要重新编译运行一遍强多了~
- FVector这个确实有union更方便,不过我觉得没有也可以接受~
‘叁’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
要很清楚这些引擎是世界最顶尖的脑袋架构出来的,一些显而易见的问题,比如用if是否很2b,难道你以为可以架构出blueprint、能够做到c++hot load这种吊炸天的人,他们想不到?
不可能的事情!去看看Unreal4的Multicast delegate怎么设计,怎么构建,C++用的多好,多纯熟,对语言的压榨多极致,能够有这种把握深度的人,会不知道用书本上写的条条框框“千万别用if啊”什么的?不可能的事情!
Tim Sweeney这些人的脑袋太好用了,太厉害了。比如Component的结构,坑超级多,你想到的,别人不会没想到。我遇到这种情况,不会第一时间想别人是否2b了,而会先考虑、是否自己没想到更深刻的问题?或许还有其他坑?就连Voxel Cone Tracing这种屌炸天的算法都能想到,不可能想不到你看出来的小问题。
‘肆’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
这个没有什么可比性。最符合业务需求的就是最好的架构。unity主要是适配移动手机的。而unreal,至少从目前来看,移动这一块做的还是不大行。
‘伍’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
两个引擎思路设计是不一样的:
Unreal注重的是工业化流程, 强调整体性, 官方性. 所以你会发现Unreal很少会有那么多的插件和扩展(普及程度是最大原因, 但还是和设计有关系).
Unity3D的思路就是全脚本化, 让大家来给它做各种Mod, 可以说是用互联网思想来做引擎. 有了流量和用户, 普及就不是啥问题, 更可以说自己的哲学是正确的
题主所说的, 用带反射的语言来做. Unity3D就是这么完成的编辑器. 可以说, 编辑器本身完完全全都是用引擎本体写出来的. 但引擎本体本没有编辑器支持.
而虚幻呢, 由于老的一些架构和思想下, 还是使用引擎本体糅合编辑器的功能, 通过宏控制来制作. 但多年的编写经验证明这么做其实也还好. 这是用C++做脚本这点. 我也感觉不大好, 至少来说, 开发效率和普及就受到很严重的牵制.
另外我觉得, Unreal这种整合方式的思想和Unity3D这种MOD开发的思想肯定会长期存在的, 各有各的好处. 有的人喜欢完善, 有的人喜欢自定义. 就像Windows和Linux一样
‘陆’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
收到你的求助了。这2个都是游戏引擎,Unity3D引擎更适合独立开发者,和小公司。Unreal更适合大的,有(经济和研发)实力的公司,另外Unreal开放了一款用来和Unity3D竞争的叫UDK,他和正式版的Unreal的区别是没有C++源代码,无法深度定制
unity3D 目前是国内使用最多的,而且最易上手的。我是用Unity做开发的,安卓/IOS等等各个平台都能转换。 UE4,平台限制太多,虽然说画面渲染不错,但是开销大! 单纯学习而言,先学习U3D才是王道。
‘柒’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
在有业务的背景前提下,根据业务需求,对所做产品做架构设计,程序的框架搭建及核心代码编写,同时根据搭建的架构撰写详细设计文档(即代码实现文档,包括各个类得设计,类中的函数、类的功能,函数的输入值、返回值等)其中包括部分伪代码,所写文档来指导开发做代码开发。
‘捌’ 为什么unreal4免费开源后,在国内没有火起来
这个问题可从几个方面来看:
免费:不是真正的免费,而是盈利达到一定程度的比例分成,越是大的公司对这一点越不能容忍。
开源:整个unreal引擎非常巨大,不论是抄袭,还是修改,都需要巨大的学习付出,而且产出小,投入和付出不成正比。
新功能的蓝图和以前的脚本语言编写习惯不一样,大多数程序员是排斥的,意味着他们需要学习新的脚本语言
蓝图还取代了shader,牛逼的shader开发人员不会喜欢这种即时编译shader,因为蓝图shader的编译感觉上很慢
以3D为主打的unreal4功能高大全,国内短平快的项目用起来成本高,游戏公司支持的大型端游一般有自己的引擎
本来unity占领的市场份额就高,unreal4也没有积极的抢占市场(广告宣传)
没有市场的unreal4没有教程(完整的实战教程,启动器学习上的教程一般是例子,没办法拿来培训),恶性循环
最后一点,unreal4有自己的启动器,下载引擎需要登录,登录经常被墙,下载经常被墙
emmmm~
一不小心发现很久以前的回答,才疏学浅真的惭愧。就几个答案的问题修正一下。
2.开源:感觉ue4现在在向全方面发展,所以系统多,学习曲线陡,开源不代表彩笔能看懂,emmmm,看懂了层次看不懂命名,看懂命名看不懂实现,看懂了实现看不懂设计的原理。
3.感觉因为蓝图太方便了,所以C++的文档都不好好维护了(只有declaration没有description)
4.这个是我孤陋寡闻了,现在VFX业界都是节点式编辑材质了,甚至更进一步houdini全节点流,真的香。
6.单从国内手游看貌似unity占优,再往大了看,ue4根本不是游戏引擎,而是实时3D项目的组装器,各种目瞪口呆。
7.有教程,但是由于ue4实在太大,全面的教程讲不深,单个的教程很零散,强大的教程多油管,方便的蓝图和国内unity开发习惯有相当的区别。地形系统很牛逼嗯,物理很牛逼嗯,API很牛逼嗯。。。。。额,玩了三个月是不是该找工作了
‘玖’ 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好
很直接说一句,那都不是什么问题,或者可以说,根本不是比较的重点。Unity那种写法,上世纪就已经有人在用,不见得是什么高明的写法,这种c/c++的奇技淫巧,只有初学者或者刚刚学会一点儿的人会感兴趣。我顺手可以拈来好多类似的,比如gcc的tree node结构,初读感觉那个精妙,后来发现也就那样儿。这种union我大概10年前在写高速raytrace引擎的时候已经用过,而且用在xmm上面,即现在DirectXMath的写法。至于你说不明白为什么Unreal这么写,看不懂if。为什么?很简单啊,因为这是“历史问题”。那个年代过来的代码都是这么写的,就一直这么写了。
很多人搞错了一点,以为数学库要效率高,这也是我刚开始写引擎和图形程序时候的错觉。后来发现,不是的,游戏引擎的数学库,不是全都要求效率高的,数学库最重要的是“稳定”。因为真正在跑的,AAA游戏,或者重度的MMORPG,最重要的,不是数学运算,而是“架构”。反而数学运算,需要稳。稳到什么程度?havok曾经推销他们的物理引擎,最引以为傲的的,并不是它有多快,而是它的所有物理运算在所有平台上的计算结果都完全一致(评论有朋友修正了这个说法,应该是同样的计算在同一平台上每次计算都一样)。这简直吊炸天啊有木有!!!如果你不明白这句话背后的意义,那么我想你没必要讨论数学库