跳转至

整活

Qt 3D UI

整了个花活0.0,在没改Qt源码的情况下,可以很轻松地将一个QWidget进行3D变换。 原理:

  • 通过前后两个四边形区域算出中心投影变换矩阵

  • 利用中心投影变换矩阵在QApplication中重新映射鼠标位置相关的事件

  • 通过QRHI和GraphicsEffect的机制,结合变换矩阵,重新绘制图像

  • 根据目标四边形的位置,自动伸缩绘制区域 目前还有一些问题:

  • 弹出窗口的位置有偏差

  • 焦点事件也对不上

不过现在能做好多有意思的东西了~

国庆内卷

国庆疯狂卷了5000+行代码0.0

把RenderGraph重构了一遍,之前的RenderGraph仅仅是实现了一个便于构造依赖图的结构

重构之后增加了以下功能:

  • 异步执行渲染组织逻辑,借助QObject的ThreadQueue机制来完成线程间的数据通信。
  • 在RenderGraph中对资源进行了封装,该层面的代码并不直接创建RHI资源,每帧的setup阶段只是创建资源描述,在complie阶段会对资源进行绑定和重建,可以通过资源池对无引用的资源进行复用,并调整了编辑器上的预览视图。
  • 封装PrimitiveRenderProxy,主要用于搭建MeshPass(BasePass)中的渲染结构,它可以复用几何数据和流水线结构,来达到外部调用 drawAllMesh(OverrideFragmentShader, OverrideUniformBuffer,OverridePipelineState)的效果,目前用于鼠标的点选机制,后续将用于ShadowMap,屏幕空间反射效果的实现。

明天看下能不能把文章给赶完,忙不过来就得等到下周,弄完这篇文章我可能要跳票了~

preview

preview

我复活辣

我复活辣! Qt 6.7 将正式公开 RHI 接口,作者大大文档都已经写好了: - QRhi Class | Qt GUI 6.7.0

从下周开始,图形引擎的文章会继续更新(刚开始调整状态,更新会有点慢),不过会优先把RHI的接口说完,尽快进入到引擎和渲染架构相关的内容

还有一些关于UE的东西想去整理:

  • Niagara性能优化
  • 开放世界项目管理

preview

小引擎推进

推进进度 - 景深滤镜(抄来的0.0,感觉效果有点不对,好像是alpha的问题?) - 抄了一个PBR仓库的代码,一点点代码抄了两天,主要是问题出在用QRhi要兼顾DX,GL,Vulkan,比如UV不同,DX没有RWTextureCube,采样器maxLod的问题,还好有renderdoc... - 重构了一波网格材质的构建方式,尽可能的提供自定义扩展的手段 下周整理一下目前的代码,争取下下周能开始继续写文章

preview

preview

preview

小引擎推进1

就昨晚和今天有时间写代码T.T,主要是把之前的一些旧代码搬过来,做了一些重构

  • 简单接入ShaderToy和之前用QScintilla搭建的GLSL编辑器
  • 重构了一些FrameGraph的接口,简化了一下Pass的定义,修复SSAO的BUG,丫的,看好多教程上都是传Perspective矩阵进去,我傻乎乎只传了裁剪矩阵,后面细看逻辑才发现还得加上View,命名害死人...
  • 加入文字渲染的两种策略,纹理策略是通过QPainter绘制的,网格策略是通过QPainterPath加入文字可以得到多边形路径,再使用EarCut算法,去除多边形中的空洞,最终得到文字的网格顶点

preview

preview

preview

小引擎推进2

本周没有划水~

  • 视频渲染:用Qt的多媒体框架解码视频帧,使用Rhi渲染,做了几个简单的播放器控件
  • 数字信号处理:用Qt的多媒体框架解码音频帧,实时流送到音频输出设备中播放,同时对帧数据加窗,做傅里叶运算(fftw),得到频谱后,用柱状图进行显示
  • SSAO:屏幕空间遮蔽,搭好了FrameGraph,还有Bug...

preview

preview

preview

停更说明

停更一两个月:

  • Qt目前已经支持下载6.6.0的开发版本,RHI已经包含DX12后端,部分文件结构有所变动,需要调整QEngineUtilities的代码
  • 调整了文章的大纲,为了避免之后的章节存在调整和异动,打算把新加入的那些章节的Demo给写完
  • 部分章节的Demo比较枯燥,准备加入一些趣味性,如果您有好的建议,请务必联系我~
  • 最近工作压力较大,空余时间也一直在忙,身体状态不是很好~

preview

开坑啦

终于把之前挖的坑给填上一部分,干了一堆杂活T.T,下周先开始写图形的基础篇章...

preview

preview