» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 转个有趣内容 - 世嘉土星光追测试

b站地址 bilibili.com/video/BV1QLkEBVEFw
原地址:youtube.com/watch?v=p8rQ47YRbFs

小房间中的实时光线追踪测试(开发记录)

这是一次在小型封闭房间中进行的实时光线追踪实验,目标是在性能受限的平台上探索可行的动态光照方案。

基本实现思路

当前实现相对直接:
我通过 BSP(Binary Space Partitioning) 对场景中的所有顶点进行可见性测试,以判断它们是否被光源照亮。

在本次测试中,光源被简化为最近一次激活的动态光源的位置,实际上等同于散射手枪子弹的命中点。这种做法便于验证系统在高频动态光源变化下的表现。

目前,光线追踪尚未作用于场景中的实体(entities),不过这一部分实现非常简单,只需对实体执行一次射线检测即可判断是否受光照影响。

光照模型与更新策略

测试场景中没有任何静态光照,因此画面中的所有光照效果都来自动态光线追踪。不过在实际应用中,该系统可以很自然地叠加在传统的静态光照之上,用作动态补光或特殊效果。

出于性能考虑,我采用了分帧更新的策略:

每一帧只更新 1/4 的顶点

顶点一旦通过光照测试,会立即被设置为全亮

如果测试失败,则会将亮度逐渐平滑地衰减至 0

这种渐变处理可以有效掩盖低更新频率带来的视觉不连续问题。

当前限制与可改进方向

目前的光照判断非常基础:

未考虑表面法线方向

未考虑光源与顶点之间的距离衰减

这意味着光照结果仍然偏“硬”,但只需增加少量数学计算(如点乘、距离衰减函数),即可显著提升真实感。

关于间接光照的尝试

在间接光照方面,我为每一个面(face)维护了一份 PVS(Potentially Visible Set),用于描述哪些面可能对其他面产生光照影响。

在 PC 端,这部分数据已经保留并可以使用;
目前的挑战在于,如何在 Sega Saturn 这样的硬件平台上,以合理的性能成本整合间接光照计算。

这个实验验证了:
即使在资源极其有限的环境下,通过合理的数据结构、分帧更新和视觉掩盖手段,动态光线追踪依然具备可行性。后续的重点将放在优化 BSP 查询、简化间接光照模型,以及探索更适合土星架构的实现方式上。


本帖最近评分记录
  • casaba22 激骚 +1 最骚 Rated by wap 2026-1-21 00:29

TOP

啊!这么超前吗?



TOP

光线的规律是很简单的,根据物理规则写个脚本没啥压力,主要是计算效率。


TOP

光追要精度的, 土星能上个什么分辨率? 低于1080p那个精度就不行了,也没必要去追了。

TOP

posted by wap, platform: Chrome
没啥稀奇的,能跑是因为场景简单质量低,这种情况下随便你怎么折腾,这视频目前也只算了直接照明

本帖最后由 ginaamix 于 2026-1-21 01:26 通过手机版编辑

TOP

posted by wap, platform: iPhone
能不能来个fc光锥测试

TOP

posted by wap, platform: Android
厉害,科技就是这样一点点进步的

TOP

发新话题
     
官方公众号及微博