• 等级
  • 674894 访问
  • 57 原创
  • 0 转发
  • 10705 排名
  • 243 评论
  • 217 获赞

ECS 与面向数据的设计

《守望先锋》使用了 ECS 的架构方式,但是为什么 ECS 会成为一个更好的架构呢?这篇文章就来讲一下 ECS 背后的‘面向数据的设计(Data-Oriented Design)’,你将会明白这个 Why。进而,你将发现面向数据的设计是多么的重要!

2018-12-01 09:51:25

理解PBR:从原理到实现(下)

前面的文章我们讲了虚幻4中的反射率方程,及其各个部分的公式,这篇文章我们就来讲明白这个方程是如何在实时渲染中求解的!

2018-11-15 23:10:27

理解PBR:从原理到实现(上)

以反射率方程为线索,理解 PBR 技术集合中的各个技术点,进而理解整个 PBR 的原理,以及虚幻4引擎中的实现方案。上半部分,主要是理解其原理。

2018-11-06 11:05:29

DXR 实时光线追踪技术概览

DirectX Raytracing 渲染管线介绍。

2018-09-19 08:47:13

SIGGRAPH 2018 见闻录

亲历 SIGGRAPH 2018 大会的体验 & 经验总结。

2018-09-01 18:14:55

从 Unity 导出 glTF 2.0 资源文件

最近不是一直在和 glTF 搏斗吗,现在很多引擎都已经支持了 glTF 2.0,特别是在 WebGL 领域,包括 Three.js 等流行的引擎都已经支持了 glTF 2.0 格式。 怎么得到 glTF 2.0 格式的模型、动画或者场景呢?目前有了一些工具完成格式转换,例如 FBX 转换成 glTF 2.0 等。我偏爱的一种方式是把模型先导入到 Unity 中,预览 或者 进行场景布局,然后再导...

2018-06-04 21:03:16

3D引擎数据结构与glTF(4): BIN

回顾 glTF 文件组织 glTF 是一种面向实时渲染的内容标准格式,类似于顶点缓冲、Index 缓冲这些数据它会以一个二进制文件的形式保存,这样,应用程序加载 glTF 内容时就可以把这些 Buffer 直接传递到图形API,而不需要再对它们进行解析或者转换,从而达到高效的目的。前面几章我们主要是讲 “.gltf” 文件中的 JSON 对象的内容,这里我们就介绍一下 glTF 中的 “.bin...

2018-04-11 21:10:39

《炉石传说》架构设计赏析(6):卡牌 & 技能数据的运行时组织

前一篇文章我们看到了《炉石传说》的核心卡牌数据的存储,今天我们继续探索卡牌&技能。主要的类通过之前的分析,卡牌&技能涉及到几个类体系:Entity,Actor,Card,Spell,令人十分困惑,特别是前两者。在这里先略带武断的说一下这几个类的基本定位:Entity主要用来做网络数据同步用的;Actor主要处理客户端的渲染对象的控制,作为Component挂载在资源对象上;Spel...

2018-04-05 17:42:41

《炉石传说》架构设计赏析(5):卡牌 & 技能的静态数据组织

经过前面几次的尝试,我们对炉石的代码已经不陌生了。除了网络机制还没有了解以外,本机的逻辑已经比较熟悉了。接下来继续向暴雪最NB的技能系统进发,我们的目标是:分析技能的静态数据描述;分析技能的运行时数据、逻辑组织;这篇笔记主要记录对其分析静态数据。静态数据组织卡牌数据卡牌的基本数据对于的AssetFamily为:AssetFamily.CardXML;数据对于的资源包为“cardxml0.unity...

2018-04-05 17:42:22

《炉石传说》架构设计赏析(4):Asset管理

欢迎转载,请注明作者【燕良@游戏开发】及原文地址:http://blog.csdn.net/neil3d/article/details/39580197另外,欢迎大家来我的QQ群交流各种游戏引擎相关的技术:游戏引擎能吃吗(264656505)话说,经过这段时间的学习和摸索,对于Unity3D的开发思路已经基本清晰了。唯独还剩下一个AssetBundle机制还没有搞透,这个涉及到前期项目的资源规划...

2018-04-05 17:42:05

《炉石传说》架构设计赏析(3):Gameplay初探

经过前面两篇文章的分析,我们对炉石的代码已经不陌生了,接下来我初步尝试分析其游戏逻辑代码。欢迎转载,请注明作者【燕良@游戏开发】及原文地址:http://blog.csdn.net/neil3d/article/details/39453291经过前面的分析,我们已经找到了两个关键的类Gameplay和GameState(当然还有我最感兴趣的Spell和SpellController,这两个还要在...

2018-04-05 17:41:48

《炉石传说》架构设计赏析(2):Scene管理

欢迎来的我的酒馆,快来火炉旁暖暖你的靴子。哈哈,我们继续欣赏炉石的代码。欢迎转载,请注明作者【燕良@游戏开发】及原文地址:http://blog.csdn.net/neil3d/article/details/39231541上篇文章我们分析到SceneMgr处理了Scene的加载工作,今天我们主要分析一下炉石这款游戏中一共有哪些Scene,他们各自负责什么,以及它内部的逻辑、UI的处理方式。在正...

2018-04-05 17:41:32

《炉石传说》架构设计赏析(1):游戏启动流程

前些天看新闻,Unity Awards两项大奖颁给了暴雪的《炉石传说》,这真是对Unity一个再好不过的宣传了——你看,暴雪都开始用Unity了。大家都知道,目前Unity发布的游戏大多都没有对程序集进行混淆、加密,所以作为一个炉石的玩家&Unity的初学者,自然不能错过这个机会。让我们好好看一下暴雪的代码吧。炉石传说的游戏内容的非常丰富多彩,所以我花了一些时间分析了其程序集,将一些设计思...

2018-04-05 17:41:04

《炉石传说》架构设计赏析(7):使用Google.ProtocolBuffers处理网络消息

这段时间琢磨了一下Unity3D网络游戏开发中的网络消息处理。网络游戏的服务端一般都是自主开发的,所以对应的网络消息处理也要自己开发。客户端/服务端之间的消息传到目前使用JSON和Google.ProtocolBuffers是两种常见的做法。打开炉石的代码看了看它的处理方式,感觉代码写的还是很好的,把它的思路分析一下,与大家分享。整体机制描述我们想要达到的目标大概是这样的:有N个网络消息,每个消息...

2018-04-05 17:40:45

3D引擎数据结构与glTF(3): Mesh

在上一篇文章中我们介绍了场景中对象之间的层次关系,接下来我们就探讨单个物体在三维空间中的表示。 要渲染三维空间中的物体,首先就要在三维空间中表示物体的造型。目前图形学中最常用的方法叫做“边界表示法( Boundary Representation )”,即用一组多边形或者曲面来定义物体的边界,它们可以区分了空间中哪些部分是物体的内部,哪些是物体的外部。其中使用多边形的方式更通用一些,构造一个物体

2018-01-23 22:45:47

3D引擎数据结构与glTF(2): Scene Graph

在这篇文章中我们将介绍 Scene Graph 的概念,以及在 glTF 标准中是如何定义 Scene Graph 数据的。

2017-12-23 19:31:28

3D引擎数据结构与glTF(1):简介

glTF是Khronos Group制定的一套3D内容的格式标准,包括场景、Mesh、动画、材质等方面。通过学习它,可以对3D引擎中的核心数据结构有一个基础的的理解,对于深入掌握3D引擎技术有很大的帮助。

2017-12-09 16:35:40

Steam VR - The Lab Renderer学习笔记

Steam的The Lab Renderer主要实现了哪些特性?从代码的层面看,是如何实现的?

2016-10-16 10:38:18

MDCC2016 VR峰会演讲资料-虚幻4渲染系统架构解析

我在MDCC 2016 VR开发者分会上所在技术分享的PPT提供给大家下载,并说明一下为什么我认为要深入 学习引擎架构。

2016-09-27 11:08:51

D3D9 Shader实例教程

2008年写的一组Shader编程教程代码,基于D3D9 API,因为有同学问起,所以找出来,重新发布一下。

2016-09-07 19:49:49

博客专家

燕良

从2001年开始,自主研发3代游戏引擎,广泛应用于 多款单机、网络游戏,使用这套引擎开发的大型网络游戏超过10款。代表作品有《仙剑3》《功夫世界》《龙online》《神兵传奇》等。曾经就职于小米,从事VR方面的研发工作;目前就职于蚂蚁金服,专注图形技术开发。 ...展开 收起
关注
  • 网络游戏/图形技术专家
  • 中国 北京 海淀区
奖章
  • 博客专家
  • 专栏达人
  • 持之以恒