跳转至

Blog

三年工作总结

一转眼就过了工作的第三个年头,笔者也算是从之前的阴影中走了出来,很多感慨,在这里记录一下这三年的状态,期待下一个三年~

开源感慨

之前写过一个开源小软件,发布几个月就发现淘宝上有人50一份的卖,由于当时代码写的很青涩,存在很多小bug,发现这个情况,还是因为那个恶心的商家私信让我帮忙远程定位问题,说出问题的是他朋友,后面一问才知道人家是淘宝买的,本身写那个软件纯粹是因为热爱,自己写这个软件收到四百多的打赏,其中两百多还是一个人给的,反应过来是找我那个人直接拿我软件在淘宝上买,一看销量,至少赚了几千,关键我还免费给人当售后???当时还是个穷学生,软件群人满了需要扩群,会员都开不起,最后还是把群主转给另一个有会员的群友,被这件事情给恶心到之后,一气之下就把软件给闭源了,后面有学技术的小伙伴私信问一些技术细节,也都如实相告,后面人有点多,干脆做起了教程,然后直到去年年初,有个人加我,问软件某部分是怎么实现的,我还屁颠屁颠的一点点给他解释原理,结果它直接就不耐烦了,问我要源码,说不给就去告我,我用了开源的Qt,就必须开源自己的代码,它姐姐是律师,某节跟它打官司都输了,我难道比某节还硬?我就纳闷了,这就是个小玩具,又没盈利,完全靠爱发电,还花费了我工作之外的绝大部分的精力,这算什么事?

cover

元宇宙杂谈

这周被抓到上海参加集训,有个游戏相关的研究汇报,本来想着通过脑袋瓜里的一些硬通货,秀下肌肉,结果一上台就猿形毕露,重点重点没说,还尬住好几回,白瞎了组内小伙伴的协助以及连夜赶的PPT,果然我目前还是只能写点技术小作文。

长期的闭门造车,导致了口述能力很差,思维跳脱,情商又低,这次可以说是充满遗憾~

很多同学了解到 元宇宙(Metaverse) ,可能是从电影《头号玩家》所呈现出来的效果,也有来自于扎克伯格对于元宇宙的阐述,但实际上,元 这个概念,在人类近代社会发展中,已经有了非常成熟的应用。

那什么是元呢?

Qt 3D UI

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

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

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

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

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

  • 弹出窗口的位置有偏差

  • 焦点事件也对不上

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

开放世界杂谈

开放世界(Open World) 是一个玩家可以在自由地实现目标的虚拟世界,而不是具有更线性和结构化游戏玩法的世界。其中的著名游戏包括《塞尔达传说》《侠盗猎车手》《荒野大镖客》《上古卷轴》《我的世界》《艾尔登法环》...

开放世界的重点在于开放性,因此开放世界游戏一般在在内存上会动态且无缝的加载游戏世界,这类游戏的主要吸引力在于为玩家提供自主权,使得游戏进程可以按玩家预期的顺序和方式来推进,但不是在游戏中可以做他们想做的任何事情(这在当下的计算机技术几乎是不可能的)。

——摘自 《Wiki - Openg World》

关于开放世界的关卡设计,这里有一些非常优秀的文档:

笔者是一名入行不久的引擎工程师,本文主要用于记录和讨论,将以程序开发的视角去剖析开放世界,一些想法和思考方式可能过于片面,欢迎大家指正。

国庆内卷

国庆疯狂卷了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

2023小记

最近不断有听说小伙伴失业,很多游戏公司也传出了资金困难的消息,而我们这里也未能幸免于难...

第一次切实体会到了上野千鹤子所提到的“你所秉持的‘努力就会有回报’的观念,其实是周边环境一直以来的提携。”

最近的心情就像是看徐克的梁祝,五味陈杂,虽然理解,但不甘心,很失落,但肯定还有希望!