📺 插件功能演示
🛠️ 技术栈
- Engine: Unreal Engine (Cross-version support)
- Language: C++ (Core Implementation)
- External Libs: Google libwebp
- Key Modules: AsyncTask, ThreadSafe, Memory Management, Image Decoders
📝 项目核心技术方案
本项目致力于解决虚幻引擎原生对 WebP 动画格式支持不足的问题,通过深度集成 Google 开源编解码库实现高性能的图片处理。
1. libwebp 库的底层集成
- 原生接入: 将
libwebp编译为第三方静态库,并通过 C++ 接口封装了其核心编码与解码函数。 - 格式支持: 实现了对静态 WebP 以及带有 Alpha 通道的动态 WebP 动画的完美解析与生成。
2. 异步多线程编解码流水线
- AsyncTask 机制: 采用虚幻引擎的
AsyncTask框架,将耗时的编解码任务从主线程(Game Thread)完全剥离。 - 性能优化: 设计了生产者-消费者模式的缓冲区,确保视频帧或序列图在后台平滑解码,彻底解决了播放大尺寸动态 WebP 时的掉帧问题。
3. 内存与线程安全设计
- 线程同步: 利用智能指针与原子变量(Atomics)确保跨线程访问图像原始数据时的安全性。
- 内存回收: 针对大量帧数据的内存占用,实现了 LRU 缓存机制,自动清理不再显示的图像缓存。
📸 插件内部预览