精选分类
文章列表
DX11-CSM VSM ESM
# DX11-CSM 本文为 DX11 阴影专栏第二篇。讲解 CSM 的主要实现过程。前置基础为 ShadowMap 的实现。 # CSM 先来看看之前简单使用 2048x2048 的 ShadowMap 的效果。 锯齿、漏光、条纹自遮挡,这些都是采样频率太低导致的。可是我近处顶多 25x25 大小的场景,使用 2048 的分辨率还有这么严重的走样是不能接受的。究其原因是这 2048x2048 的深度图并没有被完全利用。明明我只看到了一部分的场景,但是这一部分场景在光源 NDC 中只占一部分,只利用了一部分分辨率;其次,由于我们的光源矩阵是手动设定的,那么就可能会有物体在视锥内但是在光源...
more...DX11-ShadowMap
# DX11-ShadowMap 本文为 DX11 阴影专栏第一篇。主要讲述 ShadowMap 的实现。 前置知识 Render To Texture ShadowMap 的算法非常简单。实现上唯一对于初学者的难点就是怎么采样渲染出来的纹理。DX11 中我们只需要创建 Texture2D 的 RenderTargetView 并在渲染时绑定即可渲染在纹理上,而后再使用 ShaderResourceView 绑定到着色器上进行采样即可。类似与 GL 中的帧缓冲。 此处沿用了 DX11 教程中封装好的 Texture2D 类。 此外,本文会省略一些基础过程,诸如设置缓冲区。 #...
more...MyMC 项目介绍
# MyMC 本项目由赵亦安、陈薛嘉、何志鑫、唐锐 4 人小组进行开发~ 主要是基于 Cpp + OpenGL 对于 MineCraft 的简单实现。 本文是对于该项目的简单介绍。 由于水平有限以及开发仍在进行中😭,项目有很多缺点和 Bug,我们也不怎么打算要维护~。欢迎大家提出建议,我们会随缘改进的!谢谢大家喵😘。 MyMC 项目Github MyMC-下载 项目Github # 游戏 Begin! 解压安装包后可以看见 MyMC,res,shaders 三个文件夹。res 存放纹理、模型等资源。shaders 存放着色器资源。MyMC 内的 MyMC.exe 即游戏启动...
more...Unity CelToon
# 卡通渲染学习记录 本文记述三渲二学习历程,打算分别采用 Unity 和 Unreal 进行实现。 # 卡通渲染原理 本文依据参考 知乎 # Unity 实现篇 # 描线 # 法线外扩 Unity 中实现法线外扩非常简单,保留模型的初次 Pass 正常渲染,在第二次 Pass 中进行模型沿着法线外扩,并开启 Cull Front (根据三角形朝向裁剪,这里裁剪了正面,只渲染背面) Shader 代码如下 Shader "OutLine" { Properties { _OutLineWidth...
more...Unreal OutLine
# UE OutLine 描边 描边是卡渲比较重要的技术。UE 中主要可以通过后处理,加自定义 pass,加自定义材质来实现。本文借此机会总结 UE 描边技术和效果。 # 后处理 后处理描边的核心是采用边缘检测算法。参考文章的实现。 # Step 1 创建后期处理体积 场景中加入一个后期处理体积,名为 OutLinePostProcess。设置后期处理体积为无限大。 # Step 2 创建后期处理材质 首先,创建一个材质及其实例,命名为 OutLine。将材质实例添加到后期处理体积的 渲染功能 - 后期处理材质 的数组下。 # Step 3 创建材质函数 创建一个材质函数,命名为...
more...