11 海洋_

尚未进行身份认证

CSDN社区专家,IT高级讲师,畅销书作者,著作:《手把手教你3D游戏引擎架构》、《Unity3D实战核心技术详解》,《Cocos2d-x 3.x 图形学渲染技术讲解》等。

等级
博文 317
排名 2k+

我对架构设计的理解

游戏架构设计是一个老生长谈的话题,以前给多个游戏公司培训过,随着时间的积累,对游戏架构设计的理解又多了一些,在此给读者分享一下我对于架构设计的理解。游戏架构设计是基于引擎的基础上的二次封装,目的是便于游戏开发者能够专注于逻辑的编写,便于多人协同开发,便于功能的扩展等等。不论使用什么引擎,只要掌握了思想,就能解决问题。我先把我们的设计思想介绍一下,我们的架构设计总体来说是基于组件的模块化设计,举...

2019-02-09 13:53:52

聊聊Unity2018中的Package Manager应用

从Unity2017版本开始,随着Unity版本的提升,PackageManager逐步在完善。PackageManager里面包含了很多对开发有用的程序,如下图所示:左边显示的对话框就是Unity为我们提供的包体,它里面包含了2D相关的,AR相关的,以及支付相关的,还有Jobs,Render-Pipeline等等。内容还是非常强大的,其中我们已经将InAppPurchasing应...

2019-02-06 14:07:05

C#重要知识点在游戏开发中的应用

今天是大年三十,在此祝各位程序员朋友身体健康,猪年大吉。闲来无事,把在Unity开发中使用的C#知识点总结一下,自己在带团队新人的时候,好多知识点它们并不是很清楚,另外也不知道自己哪方面不足。其实在面试的时候,主考官也会问到相关的问题,项目开发中这些知识点是必备的。下面我把总结的给读者展示一下:我给读者介绍一下,C#作为面向对象语言,面向对象语言的三大特性就是,继承,封装,多态。继承就是子类继...

2019-02-06 09:47:04

回顾我的2018

2018年即将过去,回顾过去,2018年是一个多事之秋,尤其是出现了版号的问题,导致了IT小公司很多转型做小游戏,通过广告收费,这样的小游戏创新不足,在市场上很难被认可,即使转向IOS,IOS审核相比以前也是非常严格,这就挤压了产品的生存空间。在年末,像过去一样,IT行业的公司面临着重新洗牌,这个已经成为了行业规律,小公司由于项目不给力,更重要的是资金短缺,面临着入不敷出,最后关门大吉。大公司同...

2019-01-27 09:27:02

图形学渲染算法资料持续更新中

ForwardvsDeferredvsForward+RenderingwithDirectX11https://www.3dgep.com/forward-plus/FundamentalsofRayTracinghttp://www.cosinekitty.com/raytrace/contents.htmlTheBasicsofGPUVoxelizati...

2019-01-11 20:57:53

[译]网格着色器渲染数亿面片的模型

现在在工业仿真或者航天以及军事仿真中,会使用数以亿级的模型数量,针对它们的渲染,普通的渲染管线几乎是不可能做出逼真的渲染效果,这就要用到网格着色器。本篇博客主要是给读者介绍网格着色器渲染技术,我们主要从以下几方面给读者介绍:1网格着色器管线2网格和网格着色3预计算Meshlets3.1数据结构3.2渲染资源和数据流3.3ClusterCullingwith...

2019-01-04 11:23:02

聊聊引擎底层如何实现Bloom渲染算法

Bloom渲染是游戏中常用的,在Unity和UE4中也有Bloom渲染算法如果我们自己实现Bloom渲染算法,该如何实现呢?网上关于Bloom的实现算法讲述的也比较多,但是我们本篇实现的Bloom渲染算法相对来说比较简单,但是效果也不赖。我们讲述的同样是引擎底层实现的Bloom渲染算法,我们在实现渲染算法之前都会查阅相关资料,那我们自己编写Bloom渲染算法,参考的网址:https://lear...

2019-01-03 15:39:36

[译]体素技术介绍

Avoxelrepresentationofascenehasspatialdataasopposedtotheconventionalrasterizationview(asstoredinarendertarget)whichjusthasasliceofdepthvalue.Avoxelizedscenecanbeeasi...

2019-01-01 09:18:04

聊聊引擎底层如何实现BRDF渲染算法

BRDF作为比较流行的渲染算法,但凡成熟的引擎的都有此功能,我们自己写引擎也不例外,我在编写引擎时也会参考网上的一些资料,这也是学习的过程,先介绍BRDF,它是双向反射分布函数,说白了它是对于物体表面上光的处理,BRDF有很多模型,我们在编写Shader的时候也是基于这些模型。BRDF使用的数学模型是Cook-Torrance公式,如下所示:我们实现的BRDF渲染算法会参考UnrealEng...

2018-12-29 08:38:58

Fog Volume渲染算法实现

由于项目需求,需要实现FogVolume的效果,查阅了网上资料没有找到相关算法介绍,Unity虽然提供了插件但是效果不是项目想要的,只能自己去写,为了便于日后查阅,写篇博客记录下来,在介绍FogVolume算法实现之前,先介绍FogVolume可以实现的效果表现,它可以跟blinnphone,阴影结合起来使用,效果更佳,看下面与blinnphone结合实现的效果:每种渲染效果的背后都...

2018-12-27 21:42:51

Unity屏幕雪花另类实现方式

今天是圣诞节平安夜,为此特别制作了一个雪花飘落的场景,我们的雪花渲染方式不同于网上流行的使用CameraFilter,而是采用自定义Mesh实现的,自定义Mesh可以帮助我们实现很多的效果,而且对效率的提升非常有帮助,雪花实现方式分为:C#脚本和Shader渲染,C#负责雪花的生成,Shader负责雪花的飞舞和渲染。下面我们介绍实现方式:关于unity,每帧可渲染65000顶点,表示雪的网状物...

2018-12-24 21:58:58

聊聊引擎底层如何实现Forward+Phone渲染

现在的渲染技术由于硬件的提升,算法也得到了极大的改进,Forward,Deferred在成熟引擎中已经得到了广泛的应用,比如Unity,UE4等。下面我们将其应用到我们自己的引擎中,先看看Phone算法。Phone算法首先要了解Phone模型算法的作用,它是计算镜面反射光强的模型,它的计算公式是一个叫PhongBuiTuong提出的,我们的Shader编程也是根据此算法实现的,看下面的公...

2018-12-21 13:22:08

聊聊引擎底层如何实现SSAO渲染

SSAO被称为屏幕空间环境光遮蔽,它的原理是:对于铺屏四边形(Screen-filledQuad)上的每一个片段,我们都会根据周边深度值计算一个遮蔽因子(OcclusionFactor)。这个遮蔽因子之后会被用来减少或者抵消片段的环境光照分量。遮蔽因子是通过采集片段周围球型核心(Kernel)的多个深度样本,并和当前片段深度值对比而得到的。高于片段深度值样本的个数就是我们想要的遮蔽因子。SS...

2018-12-19 09:01:56

聊聊引擎底层如何实现Deferred延迟渲染

Deferred又称为延迟渲染,它是后处理渲染技术的一种,网上也有相关的定义说明,它主要是采用GBuffer实现的,GBuffer可以存储的信息相比ZBuffer更多,这也是Unity引擎也提供了Deferred渲染,只是在手机端比较耗,所以大部分开发者并不是特别关注,其实它在引擎渲染里面也是非常重要的。程序我们还需要自己手动实现一下,这样对技术的理解能够更深入。我们在上篇博客中给读者介绍了关于...

2018-12-17 19:22:48

聊聊引擎底层如何编译Shader脚本

由于现在的引擎都比较完善,开发者无需关心引擎底层的技术,只负责写逻辑即可,比如Unity引擎和UE4引擎,它们的出现确实为开发者提供了便利,但是对开发者来说,个人认为并不是好事情,它导致了大部分开发者只能做些没有任何科技含量的东西,请允许我这么说,因为我们只是在如何用好引擎方面大动脑筋,而不是去思考如何改造引擎。更要命的是使用的引擎都是国外开发的,人家是做底层的技术,换句话说,核心技术掌握在人家手...

2018-12-15 16:51:21

应聘客户端主程需做哪些准备

上一篇博客给读者介绍了关于应聘引擎程序或者资深引擎需要做的准备工作,本篇博客给哪些想应聘客户端主程的开发者提供一些建议。客户端主程市场需求也是非常大的,我本人以前也应聘过客户端主程,也招聘过客户端主程,下面将一些心得分享给读者,以供参考。项目要求客户端主程就是要对整个项目负责,对主程的要求就比较多,比较杂了,因为他关乎整个项目的成功与失败,所以必须要谨慎对待。项目也分很多种类,比如MMOR...

2018-12-12 18:04:09

应聘引擎程序需做哪些准备

每个人进入企业都面临面试这一关,不同的职业面试的内容是不同的,即使都是IT游戏行业,也分多个职业,从技术角度讲,有客户端,服务器,引擎程序。它们面试的内容也是不同的,工欲善其事必先利其器,要想进入某个领域必须武装好自己,不打无准备的仗。下面就给读者分享关于面试引擎程序的一点心得。简历简历是门面,相信每个面试者都写过简历,应聘引擎的程序员在简历中最好能体现自己以前做过引擎编写工作,或者使用某...

2018-12-11 07:21:24

利用运动学实现导弹仿真飞行

利用Unity实现导弹飞行的算法网上案例很多,本篇博客主要给读者介绍如何将所学算法运用到项目开发的实战教程。我们将使用运动学原理实现仿真,这意味着我们将只在计算中使用速度,而不考虑物体上的质量和其他作用的物理力,这些力会影响物体的运动,比如阻力。为了能够模拟导弹击中目标,我们将考虑以下变量:发射速度,发射角度,导弹距离目标的距离。很多程序员学过算法,学过数据结构,但是在项目开发过程中就不会灵...

2018-12-10 14:15:11

手把手教你成为Shader编程实战达人—GPU

GPU编程市场应用GPU全称是GraphicsProcessingUnit,中文成为图形处理器,所以GPU编程也叫图形学编程,它是针对的显卡中的芯片编程,游戏引擎的更新换代发展的一个重要阶段是显卡芯片的出现,引擎的渲染能力得到极大提升。GPU加速器于2007年由NVIDIA®率先推出,引擎的更新换代也是跟GPU硬件息息相关的,从固定流水线变成了可编程流水线,画面品质得到了质的飞跃...

2018-12-08 10:53:43

手把手教你成为Shader编程达人系列概述

最近,很多大型的游戏公司或者虚拟现实公司,都在大量招聘资深的GPU渲染引擎程序员或者引擎主管等。对于从事游戏开发的程序员,尤其是客户端程序员掌握GPU编程非常重要,由于项目分工的缘故,大部分程序员并没有接触到GPU编程,认为GPU编程很高深,在项目开发过程中并不关心,只负责写逻辑,这样会严重阻碍自己的职业发展。作为一名从事IT行业多年的老程序员,要想在行业立足,技术要做到全面,当然自己最拿手的技术...

2018-12-07 08:07:47
CSDN身份
  • 博客专家
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!