2017年9月12日

关于地形altas的处理

正文内容加载中...

posted @ 2017-09-12 19:58 crazii 阅读(20) 评论(0) 编辑

2017年8月10日

[工作积累] 大型世界的草渲染

摘要: 最近工作在研究如何在大型世界的植被(主要是草)的渲染,主要考虑下面几个问题: 1.半自动化procedual生成,密度分布,画刷2.受环境的的影响(风,角色等)3.LOD和动态加载释放 由于睡觉后突发奇想,想到了一些idea,趁着没有忘记先记下来: 基本思路:billboard+instancing阅读全文

posted @ 2017-08-10 02:24 crazii 阅读(41) 评论(2) 编辑

2017年7月30日

引擎设计跟踪 地形LOD的改进

摘要: 虽然地形已经有LOD和形变(geomorphing, 这里简称morphing)来进行LOD的渐变,从而避免bump, 但是如果LOD级别过多,远处的高山就会严重丢失细节,比如变成尖尖的凸起,非常丑陋,这是morphing无法解决的。 解决一种方式是使用强制的固定LOD (fixed LOD),如果阅读全文

posted @ 2017-07-30 20:09 crazii 阅读(46) 评论(0) 编辑

2017年7月29日

引擎设计跟踪 ShadowMap 细节和分析

摘要: 之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法。主要修复了LiSPSM(上面链接里后面有更新),实现了TSM和CSM阴影。 总的来说,CSM只是结构上的不同,多了拆分和几个pass,实现起来相对比较简单阅读全文

posted @ 2017-07-29 22:35 crazii 阅读(33) 评论(0) 编辑

2017年7月27日

[工作积累] TAA Ghosting 的相关问题

摘要: 因为TAA要使用上一帧的历史结果,那么在相机移动的时候,颜色就会有残留,出现ghosting(残影)。 由于上一帧历史是累积的,是由上一帧的直接渲染结果和上上帧的结果做了合并,所以ghosting并不是一帧就消失,要累积一段时间才会消失。 处理ghosting有很多方法,比如depth based 阅读全文

posted @ 2017-07-27 23:16 crazii 阅读(10) 评论(0) 编辑

2017年7月21日

[工作积累] UE4 TAA ReProjection的精度处理

摘要: 先贴一个UE4 TAA的slidehttps://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf 里面细节问题很多,先记录一下目前想到和遇到的问题,便于备忘,后面有空的话再记录。 TAA用到的Vel阅读全文

posted @ 2017-07-21 23:11 crazii 阅读(76) 评论(2) 编辑

2017年7月14日

[工作积累] Tricks with UE4 PerInstanceRandom

摘要: 最近在用UE4的Instancing, 发现限制很多。 Unity有instancing的attribute array (uniform/constant buffer),通过InstanceID来访问每个instance的数据,实现每个实例的不同的参数(通常的一种做法)。 然而Unreal没有这阅读全文

posted @ 2017-07-14 22:47 crazii 阅读(69) 评论(0) 编辑

2017年5月27日

[工作积累] UE4 并行渲染的同步 - Sync between FParallelCommandListSet & FRHICommandListImmediate calls

摘要: UE4 的渲染分为两个模式1.编辑器是同步绘制的 2.游戏里是FParallelCommandListSet并行派发的。 mesh渲染也分两类,static mesh 使用TStaticMeshDrawList 来绘制, skinned mesh是用DrawingPolicyFactory::Dra阅读全文

posted @ 2017-05-27 23:44 crazii 阅读(41) 评论(0) 编辑

2017年5月9日

[工作积累] D3D10+ 中 Pixel Shader 的input semantic和参数顺序

摘要: 由于semantic的使用,我们有理由相信 vertex shader的output 和 pixel shader的input是按照semantic来匹配的,而跟传入顺序无关。印象dx9时代是这样。 虽然习惯上使用共用的sruct (VS_OUTPUT)来保证senamtic修改的同步,便于维护,但阅读全文

posted @ 2017-05-09 19:32 crazii 阅读(19) 评论(0) 编辑

2017年1月14日

[原] inline operator delete & DLL boundary

摘要: 很久以前写在百度空间的这篇文章: [百度空间] [原] 全局operator delete重载到DLL 首先,纠正一个词“重载”,operator new/delete是替换(replacement),不是重载。只要任意一个编译单元定义了替换函数,并不需要全局声明,不用包含头文件,就会替换掉全局的默阅读全文

posted @ 2017-01-14 15:21 crazii 阅读(38) 评论(0) 编辑

导航

公告