第四天。
李牧睡到上午十点才醒。昨晚他熬到凌晨四点,把手势识别的延迟从0.3秒降到了0.15秒,然后又优化了光机的控制时序,让投影亮度和刷新率之间找到了一个更好的平衡点。睡下去的时候天都快亮了。
他爬起来第一件事不是洗脸刷牙,而是直接走到桌前,按下了电源键。
系统的志显示稳定运行了一夜——没有死机,没有过热,光机和振镜的累计运行时间已经超过了六个小时,各项参数都在正常范围内。
但问题仍然存在。
最大的问题是——那个立方体太无聊了。一个半透明的彩色方块,谁看了都不会觉得“这太牛了”,最多觉得“有点意思”。
他需要一个真正能引起惊叹的展示模型。
李牧坐在桌前想了想。什么东西最适合展示全息投影的效果?复杂的机械结构?人体骨骼?分子模型?
他最后选了一个最经典、也最保险的:一个发动机的3D模型。
不是因为他对发动机有多深的了解——虽然他学机电一体化,发动机原理课上过,但那些书本上的剖视图和真实的发动机内部结构还是有差距。而是因为,发动机这东西,任何一个人看到了都会知道“这是工业的核心部件”。而且他的观众大概率不懂技术细节,他们需要的是视觉上的震撼和直观的“高级感”。
系统在他说出想法后,立刻推送了相关的知识:一个简化的四缸发动机3D模型的几何数据,以及如何将这些数据转换成光机能读取的投影指令。
但这部分工作量很大。模型不是现成的,他需要自己编写程序,把模型的每一帧、每一个角度的投影数据实时计算出来,再发送给光机。
李牧花了整整一天半的时间做这件事。这期间他遇到了无数个问题:模型的数据格式和光机不兼容,投影出来的画面撕裂,不同角度的画面切换不连贯,手势控制和模型动画之间存在冲突……
每遇到一个问题,系统就推送一小段相关的知识。不是完整的教程,更像是一个“提示”——“检查一下投影帧缓冲区的同步信号”“试试调整振镜摆动曲线与光机曝光的相位差”“这个bug可能是因为浮点数精度丢失”。
每一次,李牧都靠自己理解那个提示,然后自己动手改代码、调参数、重新编译、重新测试。
失败。
失败。
再失败。
然后突然,成功了。
第五天傍晚,当他把最后一个bug修复完毕,开启程序的时候,桌面上方几厘米处,出现了一个微型的、立体的、四缸发动机模型。
每一个气缸、每一个活塞、每一条油路,都清晰可见。模型的颜色用了半透明的蓝色,显得很有科幻感。振镜以人眼无法分辨的速度摆动着,光机以240Hz的频率依次投射出模型从各个角度的画面,合成了一个让李牧自己都觉得不可思议的立体影像。
他伸出手。
手掌贴近模型左侧,程序识别到手部进入感应区,发动机模型随着他的手掌平移,向左移动了几厘米。他用食指和中指做了一个捏合的动作,模型缩小了一圈,变成了一个可以俯瞰全貌的小尺寸。他把两手指分开,模型放大,活塞的细节清晰地呈现出来。
他手腕一转,模型跟着旋转了九十度,从俯视变成了侧视,能看到正时链条的走向和气门的排列。
李牧做了几个深呼吸,然后把这套动作又重复了三次。
不是因为需要练习,而是他想确认这不是偶然的成功。
第四次,模型跟随他的手势流畅地旋转。第五次,缩放同样丝滑。第六次,他试着同时做旋转和移动两个作——程序处理得有些吃力,画面出现了两帧的卡顿,但很快就恢复过来了。
够了。
这已经够了。
李牧靠在椅背上,盯着那个漂浮的发动机模型看了很久。它安静地悬浮在桌面上方,像一个小小的、精密的、光的雕塑。
他忽然有一种冲动,想给它拍张照片,发给群里那些人看一看。但他忍住了。
不行。现在还太早。作品还不完美,而且——他需要五百个人的公开认可。发到同学群里,最多几十个人看到,大多数还会觉得他在吹牛。
他需要一个更大的舞台。
“系统,如果我现在开始直播,你觉得效果怎么样?”
面板浮出来,这一次,上面出现了他之前没见过的内容:
【新手任务进度评估】
【作品完整度:78%(主要缺陷:手势识别在复杂作下仍有卡顿;投影亮度在环境光较强时会明显衰减;模型动画的流畅度有提升空间)】
【建议:继续优化,达到85%以上再开始直播。】
李牧点了点头。“那你告诉我,怎么降到百分之八十五。”
系统没有直接回答。但是在接下来的两个小时里,他的“文件夹”里陆续出现了新的文档:《环境光对DLP投影的影响及补偿算法》《多线程手势识别的实时性优化》《模型动画与投影同步的进阶技巧》。
他关掉程序,开始从头到尾梳理这些问题。
窗外,凤城的夜幕又一次降临。
老工业区那些沉默的厂房在路灯的映照下,拉出了长长的影子。而在六楼的这间出租屋里,一个年轻人正在一盏台灯下,用一台旧笔记本和一个由拆机零件拼凑起来的古怪设备,编织着一个他自己都还没完全意识到有多大的梦。