- 博客(11)
- 收藏
- 关注
原创 屏幕空间粒子模拟
这么做的假设是n-1到n+1之间同意物体上两个相对固定的点p0和p1,在屏幕空间的相对位置几乎不变。第一次找到xp的预测,本质是x对应的p0给自己找了一个名为xp的p1。为什么要先用mv00找一个新位置,也有另一种解释,就是如果v很大,那么n和n+1帧的相同屏幕位置的像素很有可能不在同一物体上。用第n帧点x的motion vector mv0(指向n-1帧的位置)预测第n+1帧的位置xp。再根据预测的位置获取第n+1帧的mv1(从n+1帧xp位置指向该xp的n帧的位置x’),应用于x上移动粒子。
2025-04-17 11:43:57
266
原创 合批(Batching)在UE中的实现汇总
游戏引擎中的,从而降低CPU与GPU之间的通信开销,提升帧率。每次绘制一个物体时,CPU需要向GPU发送材质、网格、变换矩阵等数据,这个过程称为Draw Call。过多的Draw Call会导致CPU过载,成为性能瓶颈。将多个物体的渲染数据合并为一个或少量Draw Call,减少CPU与GPU之间的通信次数。合批成功的关键在于(如材质、纹理、Shader等)。
2025-02-27 16:51:48
1030
原创 虚幻引擎SubSystem解析与使用指南
Unreal Engine 的 SubSystem 是一套用于管理全局或特定作用域功能的轻量级框架,它通过引擎自动管理生命周期,提供了一种结构化的方式实现模块化功能。SubSystem 的核心思想是按作用域自动实例化,开发者无需手动管理对象的创建和销毁。用最最通俗的话来讲,SubSystem就是一套UE封装好的单例,你可以根据该单例所需的生命周期选择对应的SubSystem类型来继承实现。任何需要使用单例的场景,你都应该优先考虑SubSystem。
2025-02-25 15:57:40
1221
原创 UE4打包安卓链接库时遇到报错“XXX is incompatible with aarch64linux”
外部插件原本的链接库存储地址叫Android_Arm64-v8a和Android_Armeabi-v7a,和这个AllArchNames里的字段不匹配,于是就链接出错了,改成Arm64-v8a和Armeabi-v7a就好了。查到最后法线,时同时支持arm64和armv7时,ue4的链接器采用模式匹配的方式来动态判断应该链接哪个平台的库,我那个外部插件的不同平台命名不规范。过于坑爹,看了下UE5的链接库还是这套逻辑,只是AllArchNames更新了几个关键词,啊这。记UE4一次离谱的打包安卓的error。
2024-12-31 14:19:18
269
原创 GPU架构浅析以及对游戏着色器编码的启发(包含最新40系架构)
图灵架构是20系的架构,算是影响深远的一代架构,奠定了很多基础性的概念。先从最小的计算单元结构看起。SM(Streaming Multiprocessor)是基础的计算单元。所有计算任务最终都要由SM中的一个或几个组件协同完成计算。一个SM包括4个warp、1个共用的L1 Cache/Shared Memory、4个Texture Unit和1个RT Core。RT core是用于加速光追的的硬件结构,主要加速了建立BVH和射线检测,是一个相对独立的模块。
2023-12-14 16:38:39
1217
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人