众所周知,所谓开源软件,就是开放了源代码的软件。当我想要做一个以国产为由,100% 自研,并且功能类似的软件(可以进行 3D 建模),从一个开源软件开始做起,往往是最快能出 Demo 的。
但是如果被人发现,这软件看着比较眼熟,怎么办?第一步:改 logo,确保图标不一样。logo 怎么样都行,甚至 AI 随便生成一个(当年 AI 还没有那么发达的时候,能用的文生图 AI 只有 dalle-playground 和 stable-diffusion)都行,只要和原始的软件完全不一样就行。然后修改「关于」界面,把所有的开发者名字全部删除,换成咱们组的组长的名字,而且还得是网名,就行。这样的话,初步的忽悠应该是可以成功了,Demo 能够顺利过关。不过,咱们组负责下载源码的那位同事似乎是离职了,因为他好像没办法对代码上手,只能改图标、改人员名单之类的。
然后就是招人了。招人嘛,首先你得有学历对吧,至少得是本科,最好是个博士。现在 PC 上都是什么语言最热门?不对,电脑是不是 PC 啊?电脑应该就是 PC 了,那就是招这个会电脑的。现在最热门就是 Python 了,好像还有嵌入式。那就招一个会 Python 的,招一个会嵌入式的,都是臭编程的。两个人一起来搞这个 3D 建模软件。不会?可以学,技多不压身嘛。好像这个软件既有 C++ 的部分,又有 Python 的部分,反正大差不差,搞吧。
但是好像这个软件还是和开源的软件很像啊,尤其是功能,那咋办?删。什么功能好用,就删除什么功能。3D 建模需要什么功能?挤出,面编辑,布尔,桥接,这些功能全删了。只有这样,才能使其完全不像开源的软件。你别以为这样做简单,实际上能做到精准删除功能的,还不引入 bug,那可不是一般人轻易能做到的!
很好。然后,这款软件几乎就没啥功能了,甚至连导入 FBX 都做不到了,只能导入 OBJ。但是这样也不行啊,接下来的 Demo 需要展示功能。那咋办?那就加功能。但是死活没找到软件的 GUI 界面接受键鼠输入的信号是在哪儿弄。那就侦测全局的键鼠状态,听说用 GetAsyncKeyState 就行,然后鼠标的位置用 GetCursorPos 获取就行。需要使用功能的时候,鼠标移动到屏幕的最左上角,按 TAB,会冒出一个输入框,往里面打指令,就可以实现功能。什么?你说这不够国产化?没事,指令全部改成中文的,要用输入法输入中文来操作。但是输入框没办法完美地适配中文输入法交互。没事,我适配 Ctrl+V 就行,用户需要先用记事本输入指令,然后按 Ctrl+C 复制指令,再鼠标移动到显示器最左上角,按 TAB,冒出输入框后,按 Ctrl+V 就能粘贴指令,再按回车,这不就生效了嘛,功能也做出来了,你看,这生成了一个立方体。别小看立方体,所有的图形不都是用它捏的?
很好,保存文件。但是保存的文件的后缀好像是 .blend,那不行,得改成 .bim。怎么这都搞不定?哦,文件关联啊,你不是会删除功能吗?你把文件关联这个功能删了不就好了吗?对,文件的内容里面也绝对不能出现 BLENDER 字样,那要不这样,改成公司名字的缩写。
就这样,我们这个小组,总共两位开发,干了差不多三年。终于有一天,有人发现了问题:这原版的开源软件的维护人员,好像挺多嘞,有一百来人吧?不仅人数超过我们组的开发的人数,而且软件的 C++ 的部分、Python 的部分都在不断更新,不仅如此,官方的软件甚至都进行了大版本升级,官方自带的 BIM 插件的功能就已经包含了咱们自研的软件的全部功能,还增加了更多的新功能和用法,光是快捷键就好用很多,而且人家的键盘监听不是全局的,不像咱们的,程序窗口退到最小化都还在监听键鼠的状态,一不小心就弹出命令框要输入命令了。这样吧,软件我们要重新开发,但是只有一个月的事件,招一名前端,要求本科以上,并且需要在一个月内,实现 Autodesk Revit 的全部前端功能。工资呢?哎,一万,够了吧?有五险一金呢。顺带忽悠他,就说这 0xAA55 这位员工很牛逼,还是著名的某图形学网站的站长的好朋友,这可是你追星的好机会!
终于,咱也是招到了这位前端开发。诶等下,咱们是不是还有微信小程序的业务要做?那就 100% 全部交给这位前端去完成。为啥?因为好像我们就只有这一位前端开发啊,不交给他,那交给谁?
干了几个月,好像微信小程序里面也可以嵌入 BIM 相关的东西。这挺好的啊,先用某知名建模软件对效果图进行一个离线渲染,再跟投资人讲,这是我们小程序的渲染效果!但是小程序只有一个人也干不动啊,要支持那么多功能。之前不是有个二开小组嘛,一个搞嵌入式的,一个搞 Python 的,都拿过来开发微信小程序。不会?可以学嘛,技多不压身。JS 从零开始入门,jQuery,WebGL,看,这还是可以搞出来的。
哎!你这后端怎么生成的建模?颜色不对,太黑了啊。什么?你跟我说光照?啥光照?你把颜色给我调成最亮,对,就是 #FFFFFF!你看看人家的微信小程序,有阴影特效呢!咱们的为什么没有?哦,光照啊,那他们也不会啊,我问一下。好,我明白了,让他们学「虽撅而死」(three-js 的中式英语发音)是吧,行,这就安排。
不对啊,怎么还是黑的?怎么用了 #FFFFFF 还是黑色?哦,忘了打光了……这下,阴影效果也有了。
哎不是,画面达不到人家离线渲染的效果,投资人要有意见了!什么?你跟我说你要搞场景,咱们美术只有一人。微信小程序加载不了那么大的模型,还有材质。对方也不懂咱们开发啊!你说你搞一个 JSON 生成器?这么费劲干啥,咱招个实习生给你手写 JSON 就行了呀。你说要十万多个 JSON,穷举?喂,你别当人家是牛马啊,十万个 JSON 哪是人干的活?她一天给你出两个就不错了,出来还得校对,不然你的后端程序又不认。
呃,对不起啊,咱们遇到了危机!勒紧裤腰带好好干,工资只发三分之一,每天加班到九点,不过分吧?有福共享,有难同当是不是?说不定再过半年,咱们就渡过危机了呢。