作品集

王佳斌 (Benjamin)

技术美术 / 图形程序

SMU Guildhall 学生,因为热爱从关卡设计转到游戏开发。我曾参与两款已发布游戏的开发, 也在个人引擎中大量探索实时渲染管线与技术美术——从自研 C++ 引擎的 DX11 / DX12 / DXR 光线追踪,到已上线的 Unreal Engine 项目。

02

个人项目

DXR 路径追踪器
个人

DXR 路径追踪器

本项目采用DirectX 光线追踪管线模拟全局光照,结合基于物理的渲染 (PBR) 与路径追踪,实现照片级真实感的渲染效果。

DXRHLSLPBRIOR
DX11 PBR 渲染器
个人

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 导出器
个人

自定义 SP 导出器

这是Substance Painter的自定义Texture导出器。

Substance Painter
Houdini 练习
个人

Houdini 练习

​IDMap

Houdini
Vaporum
个人

Vaporum

用TCP连接服务器和客户端。通过使用字符缓冲区,我可以从服务器向客户端或从客户端向服务器发送消息。我把大部分逻辑放在本地机器上处理,唯一的缓冲区是两个玩家的键盘和鼠标输入。为了获取另一个玩家发送的缓冲区,我使用 CallbackFunction 在服务器/客户端获得字符串时 Fire Event 并进行解析。

TCP
Doomenstein
个人

Doomenstein

为所有Actor绘制 3D Sprite,并根据视线方向和时间查找正确的动画帧

C++RaycastingData-DrivenMultiplayer
Libra
个人

Libra

AI的Heat Map

C++2D PhysicsGame Engine
Starship
个人

Starship

追踪导弹和碎片导弹

C++Game EngineDirectX