4月30日凌晨,雨还在下。
李君宪的台灯是宿舍唯一的光源,在潮湿的空气里晕开一团暖黄。屏幕上,两行代码已经对峙了二十分钟:
if (pyer.idleTime > 10.0f) { // 玩家静止超过10秒
world.timeScale = 5.0f; // 世界时间流速×5
interiht.freeze(); // 室内光影冻结
} else {
world.timeScale = 1.0f;
interiht.syncWithWorldTime();
}
逻辑很简单。但“室内光影冻结”这个函数,怎么写?
他试了三个方案:一是直接停止室内所有光源的计算,但这样室内会变成一片死黑,没有“凝固感”,只有“熄灭感”。二是记录玩家静止瞬间的光影状态,然后锁定贴图,但窗外的动态影子还在动,内外就撕裂了。三是陈末建议的:用双层渲染,室内层用静态快照,室外层正常更新,中间用遮罩过渡。
The content is not finished, continue reading on the next page