文章列表

原理基础SSR需要ColorTexture和DepthTexture。 视角空间的SSR的大概步骤:1、屏幕空间坐标——>ViewPos2、ViewPos获取ViewDir和ViewNormal3、ViewDir和ViewNormal算出视角的反射方向4、从ViewPos开始RayMarch,方向是反射方向,逐步RayMarch判断深度差(小于Thickness为击中),判定成功获取到那个地方的ViewPos,转换为屏幕空间坐标返回5、屏幕空间坐标采样Color图,得到反射颜色 代码思路优化项HIZ加速通过生成梯度深度图,加速射线检测区间的判定。每次从最小的mip开始,如果不合格...

SSAO的进化版。 不再是通过对比深度来判断是否遮挡,而是寻找每个方向上的地平线高度。 原理基础GI是一个几何点从旁边所有角度的光照和。HBAO就是从几何点往旁边和方向去计算遮蔽的过程,通过简化方向为8个或者16个,结果贴合GI的原理。 从一个几何点,往周围若干个方向打射线,找到每个方向的最大遮挡高度的角度。 下图中,S0、S1、S2、S3是4个方向的射线,分别会得到一个最大的水平角。方向越容易被遮挡——>水平角越大——>AO越强 如何计算水平角?1.计算坡度Slope 坡度 = 高度变化 / 水平变化tanAngle...

记录BongoCat的自动开箱。 BongoCat的dll没有加密混淆,作者也说代码可见,可以自己修改。 使用反编译工具dnSpy,打开游戏目录的Assembly-CSharp.dll。 然后修改dll里对应的代码。 修改完保存dll替换。 1.点击倍数Pet类里,找到AddPet方法,修改点击数据。 每次点击计数+100 123this._currentGained += 100;this._currentAchievement +=...

UE里默认不支持多Pass,项目里一般都会需要这个功能。 记录一下一种实现思路。 效果视频: StaticMesh多Pass实现主要是两个方面,一个是材质管理,另一个是把多Pass加入渲染流程中。 材质管理首先需要在UStaticMesh和UStaticMeshComponent里新增多Pass材质。 UStaticMesh是用资产编辑器打开的窗口,最里层的材质设置。 UStaticMeshComponent是SM要渲染的必要组件,可以设置材质进行覆盖UStaticMesh里的材质。(常见里摆放或者蓝图里) 多Pass的结构定义,材质Index以及是否投阴影。 123456789101112...

大佬们的文章链接参考: https://zhuanlan.zhihu.com/p/666213716 https://zhuanlan.zhihu.com/p/100748588 UE的DeferredDecalUE的延迟贴花有两种版本,一种是使用DBuffer,还有一种不使用DBuffer。 不使用DBuffer的情况 首先有一个BOX来划定范围,投射方向。 过程中画两次这个BOX。 第一次,关闭Cull,画Stencil: 第二次,CullBack,模板测试等于: BOX的范围内,深度图转换为WorldPos,然后再转换到BOX空间。 使用BOX内的空间坐标采样Decal图,然后加到G...

这篇记一下ShadowMap阴影的技术。 1.ShadowMap相关ShadowMap的原理从Light的方向渲染场景的深度图,因为具有遮挡关系,所以能做阴影用。https://zhuanlan.zhihu.com/p/384446688 阴影投影的过程需要投影的物体的转换过程,从Light方向画这些物体的深度: World空间—— ——>Light空间 先位移,再旋转 ——>Light视锥体 (XY范围缩放,Z深度缩放)...