Skip to content

F-Mu/VulkanThreadPool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ed66f69 · Jun 14, 2023

History

39 Commits
Dec 18, 2022
Dec 12, 2022
Jun 14, 2023
Dec 11, 2022
Nov 23, 2022
Dec 18, 2022
Dec 11, 2022

Repository files navigation

基于VulkanLearning视频的简单引擎实现的线程池可视化

https://github.com/blurrypiano/littleVulkanEngine/tree/master

ThreadPool.gif

左边是线程池,中间是任务执行区域,右边是任务等待区域

按1~5可以生成执行时间为1~5秒的睡眠任务

同时用来实验C++书籍中的条款

存在简单的异步执行,更多说明在v1.2分支README中

v2.0

  • 大重构(感谢学长给的基本架构)

  • 去除3D特性(以后继续尝试添加)

  • 更好的分层以及优化主循环(依旧模仿Piccolo小引擎),https://github.com/BoomingTech/Piccolo

  • v1.2版本在另一个分支中

  • 存在莫名其妙的bug导致界面不初始化或出现段错误

  • Rectangle的相关类图

Rectangle.png

v2.1

  • 修复BUG(大概,原因系Window初始化时height和width还没生成,以及RenderSystem成员变量未正确初始化)

v2.2

  • Task完成后动画完成(加入原有model类)

  • 修改类名和文件名

  • 为Component类加入dirty机制

v2.3

  • 根据C++书籍提供的一些条款进行小改动

  • 将render_pass归类

v3.0

  • 添加了一个极其丑陋的删除粒子动画(甚至算不上粒子)

  • 调整资源结构

v3.1

  • 为了去除bind改用lambda(实现条款),改用C++20(C++20 deprecated了volatile float,glm库会报警告)

  • 修改README

  • 调整ParticleComponent的参数,使其效果更佳(但还是很丑陋)

  • 模仿GetComponent调整Component的添加方式,默认实现type,使Component更有扩展性

v3.2

  • 使粒子效果更好看,包括粒子颜色渐变,增加粒子以抗锯齿(真的在努力做火焰效果了,其实也许红色拖影更好看?)

  • 修复了Task乱飞的bug(没修好)

  • 修改移动逻辑

v3.3

  • 添加数字组件,可以在睡眠任务中计数,并实现数字渐变效果

  • 调整项目结构

  • 再次宣称修复好了Task乱飞的bug(因为不知道bug产生的原因,只能限制各种条件)

  • 修改Pipeline逻辑,组件中bind,RenderPass中渲染

待实现(可能也不会实现):

  • 粒子分为不动粒子(不需要logic tick)和运动粒子,优化性能

  • 更好的异步执行(Job System)

  • 尝试更更好的分层

  • 任务执行完删除资源(验证层报错,不会改,接口已实现)

  • 继续模仿Piccolo小引擎优化主循环

  • 更好的粒子系统(搞不明白),更好的粒子系统tick逻辑

  • 使用贝塞尔曲线实现数字组件(现在也挺好看的?)

  • 重新加入摄像机,以便看到Z轴

  • 封装各个类的成员变量(不想动,不好调试)

  • 求出多面体的凸包,而不是严格限制顶点顺序(不想写)

    • 白框(即空矩形)需按边顺序放点

    • 满矩形需按右上、左上、右下、左下的顺序放点(主要为了task的删除动画)

About

基于Vulkan的简单线程池的简单可视化

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published