-
PBR Rendering in Unity SRP
Introduction After Unity has introduced its Scriptable Render Pipeline framework, I’ve been using it to develop my own experiment renderer in Unity. By utilizing SRP, we can get rid of annoying RHI abstraction work and pay attention to actually r...…
-
Introduction of SRP
SRP Render Pipeline Workflow1. Opaque Depth Prepass2. Alpha Test Depth Prepass3. Stencil Prepass4. Depth Bound Generation (Compute Pass)5. Depth Frustum Generation (Compute Pass)6. Directional Light Shadow Pass7. Spot Light Shadow Pass8. Point Lig...…
-
SRP项目当前进度
介绍 之前在高中总结里提到了我最近在做一个基于Unity的SRP的项目(好吧,我就直接把SRP名字照搬过来了,懒得改了),目前已经四个月过去了,项目进展当前来看不算很顺利,但是也零零碎碎写了不少东西,这篇博客主要就是记录和介绍一下当前已经完成了的渲染管线功能和一些问题。(本人的)SRP管线特点我希望提供管线能灵活的支持多种光照模型,所以选用了forward渲染路径,同时为了方便实现不少后处理特效(如SSR,SSAO,SSGI这类),又希望同时也输出一份thin G Buffer,所以其实...…
-
Several Graphic Discoveries in Breath of the Wild
Introduction I’ve been playing Breath of the Wild for a really long time (200h+). After beating Ganon and playing around with the dlcs, I have paid more attention to the details of the world – not the details in gameplay (though I have already be...…
-
Portfolio
Who Am I ?I’m William Xie. I’m from China and am currently studying at Cal. I mark myself as a gamer and a game developer. I have been doing (and studying) game development for two years.What Can I Do ?I am familiar with the game engine Unity. I a...…
-
Unity中的音效池
概述 音效是独立开发者在开发游戏中比较容易忽视的一个方面。比起直观的画面和玩法,音效不那么容易被注意到。但是,如果缺少了音效,玩家就缺少了一层反馈,游戏的操作手感就会大大改变。Unity引擎已经帮我们封装了相关的API,我们在实际开发的过程中,只需要调用相关的API就可以快速实现一些功能。Unity的音频框架简单的介绍一下Unity的音频框架。在Unity中,所有可以发出声音的物体都需要带有一个AudioSource组件。这个组件,即声源,定义了改物体发声的各种参数,包括是否为立体音效,...…
-
Unity中时间尺度管理
概述 在这就是IB这个项目中,为了提高游戏的打击感,在玩家使用近战武器打进敌人身体里的时候,降低了时间尺度timeScale来表现肉体对于武器的阻碍——关于如何做好打击感我可能会在下篇文章说,这篇主要集中在Unity的时间上——这就导致了一个问题:如果武器同时打进了多个敌人并且这些肉体的阻碍程度不同时,时间该怎么调整?如果这时我们还有剧情演出需要改变时间尺度,我们又该以什么为准呢?问题主要问题我们已经提到一些了,归根结底还是处理不同时间尺度改变的请求之间的冲突。其实最好的方法应该...…
-
在Unity中实现场景中动态血迹效果
概述 上一篇博客聊到了关于如何制作溅出的血迹附着在场景上的效果。大概效果参见下图: 上面这张图上可以很明显看到红色和紫色的血迹在地上遗留,这次主要就是要实现这个效果。问题那实现这个效果主要有哪些问题需要解决呢? 如何以较低的成本获得不同的血的形状? 如何知道血迹应该放置在哪里? 如何使血迹能贴合地附着在物体的表面 如何有效率地绘制大片大片的血迹实现一个可能的做法(但是很明显不是本篇重点)如果是以前做过fps游戏的读者可能看到这个问题第一反应是直接把血迹贴图画在物...…
-
48小时,一款游戏
概述 七月份逛论坛的时候意外发现了国外的一个游戏开发比赛Ludum Dare,了解了之后才知道这是目前游戏界最长寿的比赛之一,至今已经举办了十来年了。再一看,8月11号的时候就有一场比赛,于是一拍脑袋就参加了。机制Ludum Dare每次比赛分为两个赛组,一个是最传统的Compo,另一个是现在比较流行的Jam。Compo是Ludum Dare刚开始举办的时候就有的比赛机制,要求参赛人员独立一人在48小时内开发出一款符合当期比赛主题的游戏,其中除了代码可以使用第三方库以外,所...…
-
Unity优化——渲染与画面(一)
概述 游戏做出来后结果只能跑20-30fps无疑是令人悲伤的,所以游戏优化显得非常重要。最近我也在对这就是IB这个项目进行优化(虽然项目才在一半不到的开发进度),有了不少感慨,这里可以拿出来探讨探讨。我真的有必要优化吗?优化是一个费时费力的事(大部分情况下),于是不少开发者只要看到运行效率只要不是不能接受就忽视了优化这个环节。某种意义上来说,过优化确实是不必要以及有害的,会大大地降低了开发效率。但是在很多情况下,虽然目前表现尚可,但由于代码安排得不合理,很有可能在后续的开发过程...…