| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity项目技术方案Dots架构方案简介 -> 正文阅读 |
|
[游戏开发]Unity项目技术方案Dots架构方案简介 |
DOTS全称是Data-Oriented Tech Stack,翻译过来就是多线程式数据导向型技术堆栈(DOTS),它由任务系统(Job System)、实体组件系统(ECS)、Burst Compiler编译器三部分组成。 ECS + JobSystem + BurstCompile = 高性能 + 多线程 + ?编译层面优化 DOTS保证相同类型组件在内存中都是顺序排列,极大程度增加缓存的命中率,此外配合任务系统(Job System)让开发者无需头疼多线程同时访问数据需要手动加解锁的麻烦,最终加持Burst Compiler让性能飞起来。 ECS、JobSystem、Burst,这三个组件是可以相互独立使用,并不是说使用一个这三个必须同时用,你可以任意选择其中一个来进行使用,用于不同的应用场景。 在《黑暗之潮》当中利用ECS的例子,我们通过ECS渲染了大量的怪物。我们游戏里面怪物通常有一个特点,一组怪由几名精英配合一两种大量的存在的爪牙组成的,大家可以看到右面的图只有三种怪,如果说用默认的SkinMeshRenderer的话,就有一个非常严重的问题,没有办法合批了,画面上面有多少个怪,有多少个DrawCall而且Animator开销也不小,还有一个问题,GameObject为.Instantiate开销也是比较大的,如果说我要同时刷出来三四十只怪的话,肯定会卡顿,用ECS就能比较好的解决这三个问题。
什么项目用Dots?具有大量相同类型运算的项目,例如RTS、SLG、我的世界类型方块沙盒。 Dots这套解决方案,暂时只能对CPU进行优化,GPU方向期待Unity后续计划。 Burst目前还是Preview,正式项目中使用可能会有很多坑 。 https://aladdin.blog.csdn.net/article/details/105081530 Unity DOTS技术浅析_IT善男信女鬼的博客-CSDN博客 [Unity 活动]-Unity DOTS技术详解 - 宣雨松_哔哩哔哩_bilibili ILRuntime作者林若峰分享:次世代手游渲染怎么做 - GameRes游资网 [Unity 活动]-游戏专场|Unity 2019 新特性在次时代手游 《黑暗之潮》中的应用经验及技术分享_哔哩哔哩_bilibili Unity2019 Dots初试_Hello Captain-CSDN博客 Unity DOTS学习教程汇总_学无止境的专栏-CSDN博客 一种类ECS设计范式的介绍 链接: https://pan.baidu.com/s/1hH3YwgPvB9m39_e3HzlAcA 提取码: 5wwm?? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 17:58:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |