GithubHelp home page GithubHelp logo

vulkanthreadpool's Introduction

基于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的删除动画)

vulkanthreadpool's People

Contributors

f-mu avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.