海洋个人博客

喜欢自由的飞翔!

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

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

2018-12-07 08:07:47

阅读数 369

评论数 4

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

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

2018-12-29 08:38:58

阅读数 1473

评论数 2

Fog Volume渲染算法实现

由于项目需求,需要实现Fog Volume的效果,查阅了网上资料没有找到相关算法介绍,Unity虽然提供了插件但是效果不是项目想要的,只能自己去写,为了便于日后查阅,写篇博客记录下来,在介绍Fog Volume算法实现之前,先介绍Fog Volume可以实现的效果表现,它可以跟blinn phon...

2018-12-27 21:42:51

阅读数 192

评论数 2

Unity屏幕雪花另类实现方式

今天是圣诞节平安夜,为此特别制作了一个雪花飘落的场景,我们的雪花渲染方式不同于网上流行的使用Camera Filter,而是采用自定义Mesh实现的,自定义Mesh可以帮助我们实现很多的效果,而且对效率的提升非常有帮助,雪花实现方式分为:C#脚本和Shader渲染,C#负责雪花的生成,Shader...

2018-12-24 21:58:58

阅读数 10882

评论数 9

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

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

2018-12-21 13:22:08

阅读数 187

评论数 0

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

SSAO被称为屏幕空间环境光遮蔽,它的原理是:对于铺屏四边形(Screen-filled Quad)上的每一个片段,我们都会根据周边深度值计算一个遮蔽因子(Occlusion Factor)。这个遮蔽因子之后会被用来减少或者抵消片段的环境光照分量。遮蔽因子是通过采集片段周围球型核心(Kernel)...

2018-12-19 09:01:56

阅读数 149

评论数 0

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

Deferred又称为延迟渲染,它是后处理渲染技术的一种,网上也有相关的定义说明,它主要是采用GBuffer实现的,GBuffer可以存储的信息相比ZBuffer更多,这也是Unity引擎也提供了Deferred渲染,只是在手机端比较耗,所以大部分开发者并不是特别关注,其实它在引擎渲染里面也是非常...

2018-12-17 19:22:48

阅读数 407

评论数 1

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

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

2018-12-15 16:51:21

阅读数 372

评论数 1

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

上一篇博客给读者介绍了关于应聘引擎程序或者资深引擎需要做的准备工作,本篇博客给哪些想应聘客户端主程的开发者提供一些建议。客户端主程市场需求也是非常大的,我本人以前也应聘过客户端主程,也招聘过客户端主程,下面将一些心得分享给读者,以供参考。 项目要求 客户端主程就是要对整个项目负责,对主...

2018-12-12 18:04:09

阅读数 251

评论数 1

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

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

2018-12-11 07:21:24

阅读数 390

评论数 1

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

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

2018-12-10 14:15:11

阅读数 172

评论数 0

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

GPU编程市场应用 GPU全称是Graphics Processing Unit,中文成为图形处理器,所以GPU编程也叫图形学编程,它是针对的显卡中的芯片编程,游戏引擎的更新换代发展的一个重要阶段是显卡芯片的出现,引擎的渲染能力得到极大提升。GPU 加速器于 2007 年由 NVIDIA® ...

2018-12-08 10:53:43

阅读数 235

评论数 0

手把手教你架构3D引擎高级篇系列八

本篇博客是给读者介绍引擎底层如何与Lua进行结合,方便开发者直接使用脚本编程,为什么选择Lua,通常开发者会使用Json,XML,txt等等。相比Lua有哪些优点呢? a、除了Lua库,在没有使用其他库可以使用。 b、可以在文件中使用不同的公式,例如:some_variable = math....

2018-12-03 21:14:45

阅读数 229

评论数 0

手把手教你架构3D引擎高级篇系列七

前面封装了数据结构中常用算法,接下来给读者封装一个好用的东西——委托。使用过Unity开发的人知道,我们经常在项目中使用委托,类似我们说的回调。使用C#编写委托,其实质是什么呢?其实就是把委托函数加到一个列表中。我们在实现引擎的委托时,首先要清楚我们的委托面对的是所有类型的,因此很容想到模板。在实...

2018-12-01 16:57:24

阅读数 918

评论数 1

提示
确定要删除当前文章?
取消 删除