02
个人项目
个人
DXR 路径追踪器
本项目采用DirectX 光线追踪管线模拟全局光照,结合基于物理的渲染 (PBR) 与路径追踪,实现照片级真实感的渲染效果。
DXRHLSLPBRIOR
个人
DX11 PBR 渲染器
对于基于图像的照明(IBL),我使用了split sum approximation,第一部分是预过滤的环境图,其中我根据不同的粗糙度值预先计算了 HDR 图像的卷积。对于第二部分,即镜面积分的 BRDF 部分,我使用了预先计算的LUT。水平纹理坐标为 n⋅ωi,垂直纹理坐标为粗糙度值。
DX11HLSLPBRIBLCell Shading
个人
简易我的世界
基于Perlin Noise的程序化地图生成,包含草地、泥土、海滩、雪原、河流、海洋并且根据不同的地形生成各种植被
C++DirectXVoxelProcedural
个人
风格化渲染
我使用颜色曲线的 alpha 通道来增加 NDotL值以进行Cell Shading。并且还使用色调映射来更改角色的整体色调。
SDFCell Shading
个人
可互动材质
草地:使用顶点偏移,通过计算从玩家到每个顶点的方向来实现草地偏移。
Unreal EngineHLSLRender TargetVertex Shader
个人
多边形编辑器
对于每个多边形,我在生成它时计算它的边界 AABB ,并递归地构建 AABB 的BVH以加速射线投射交点。为了管理多边形,我只让BVH的叶节点拥有场景中多边形的索引值。
C++BVHRay Casting
个人
油画风格渲染
卡通漫反射
SDF
个人
自定义 SP 导出器
这是Substance Painter的自定义Texture导出器。
Substance Painter
个人
Houdini 练习
IDMap
Houdini
个人
Vaporum
用TCP连接服务器和客户端。通过使用字符缓冲区,我可以从服务器向客户端或从客户端向服务器发送消息。我把大部分逻辑放在本地机器上处理,唯一的缓冲区是两个玩家的键盘和鼠标输入。为了获取另一个玩家发送的缓冲区,我使用 CallbackFunction 在服务器/客户端获得字符串时 Fire Event 并进行解析。
TCP
个人
Doomenstein
为所有Actor绘制 3D Sprite,并根据视线方向和时间查找正确的动画帧
C++RaycastingData-DrivenMultiplayer
个人
Libra
AI的Heat Map
C++2D PhysicsGame Engine
个人
Starship
追踪导弹和碎片导弹
C++Game EngineDirectX