找回密码
 立即注册
楼主: 鱼丝

同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好?

[复制链接]
发表于 2020-11-25 12:21 | 显示全部楼层
并不是大牛,第一次回答这种高端问题。
总觉得题主有点死抠细节。
写这篇回答的时候,我也并没有滚去看Unreal的源码查证。而且我自己也没见过Unity的源码并且对Unity完全不了解。
我觉得题主举的第一个例子中,如果Unreal通篇总共没几个地方用到FVector的operator[]重载的话,那这种写法也无伤大雅吧。只能说Unity的写法更优雅【然而对UE来说也许并没什么卵用。
谈架构不是谈代码是否“优雅”吧。其实题主抛弃Unreal4的渲染质量谈“架构”也算作弊吧。Unity不是也有材质系统么?造出跟Unreal类似的效果也不难?但是去看看同等效果下的效率啊。我猜肯定是Unreal完胜。
删答案了,没什么卵用。
发表于 2020-11-25 12:21 | 显示全部楼层
也可能UE4是印度阿三代工的,Unity是北美程序员完成的!
发表于 2020-11-25 12:22 | 显示全部楼层
我个人觉得UE4源码更好一些咯
理由比较简单,
1.UE的架构是以高端设备和高端表现力为主,现在的高端手机跑UE还是不错的,等一年左右,按照现在硬件发展速度,移动平台性能也上来了。
2. 可拓展性,手上拿到了源代码至少安心啊,不会碰到有坑,还没发跳出来。
发表于 2020-11-25 12:23 | 显示全部楼层
连ue4都能被喷,题主要是看了cryengine那不是更得喷这是一坨什么狗屎了。
不要轻易否认比你强大得太多的人写出来的代码。
发表于 2020-11-25 12:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2020-11-25 12:24 | 显示全部楼层
当然是Messiah好! Messiah 天下第一!
哦不对,好像比较范围我没看清楚,不好意思刚才条件反射了,重新来过。
当然是Unity好 ! Unity 天下第一 !
发表于 2020-11-25 12:24 | 显示全部楼层
个人觉得UE这么写肯定是有道理的,我觉得性能好的代码看起来总是丑陋的。比如他用三个浮点变量加分支,和数组比,不见得性能会差,要知道树组的寻址也是要进行一次加法运算的。因为很久没接触C++了,连一个Date.now()都不知道怎么实现,所以用node.js试了一下,毕竟是V8引擎,应该差距不大吧,下面是我测试的截图和代码,结论是数组确实比if分支慢:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2020-11-25 12:25 | 显示全部楼层
内存对齐了解下?
如果数组在非内存对齐位开始 下标访问需要几次内存操作?
事实上对vector这种小对象if else并不会造成内存性能问题
提这个问题说明你压根不知道性能瓶颈在哪,如果性能差异只在于指令数量上,那可能所有引擎性能都没有差别了,就目前的用途,多几倍的时钟周期对人类根本没有差别
发表于 2020-11-25 12:25 | 显示全部楼层
FVector还有更nb的swizzle支持写法,有什么用了,UB。(https://github.com/leohawke/LeoEngine/blob/1.4/LBase/lmathtype.hpp)
const float& operator[] (int i)const                        { DebugAssertIf (i < 0 || i > 2); return (&x); } 尽管这个写法也有争议,但是应该比union这种写法的争议更少。
发表于 2020-11-25 12:26 | 显示全部楼层
同是c++写的,unity的更容易读一些。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-19 11:51 , Processed in 0.102275 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表