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


 35 123
发新话题
打印

光线追踪是什么效果?什么意思?

posted by wap, platform: iPhone
引用:
原帖由 @mjnaur  于 2019-1-16 10:18 发表
如果没记错的话,光栅化下镜子的实现是这样的:
1. 通过摄像机位置、观察方向、镜子位置及其法线,计算出以镜子为surface、从镜子后面看向游戏场景的view matrix。
2. 然后通过该view matrix和场景中的三角形们,过一遍光栅化pipeline,把东西画在一个额外创建的framebuffer上。
3. 拿这个framebuffer当纹理,贴在镜子上,然后再真正的摄像机位置上再过一遍光栅化pipeline,画出最终的效果。
也就是说,光栅化方法实现镜子的话,场景中能看到多少镜子,就需要走N+1遍pipeline,另外为了保存镜子反射内容,需要保存N个额外framebuffer在显存中。
一般我们只会用这种方法来实现全反射(镜子)。而如果碰到漫反射这种对画面最终效果影响不明显的,则会用一些更加投机取巧的方法,比如屏幕空间反射(能够动态显示场景中的变化内容,但是范围有限(仅仅屏幕上会画出来的东西),而且会延迟至少一帧),或者就反射一下cubemap完事(静态的,无法显示场景中变化的内容)。一般这种方法都会造成失真。

如果是光线追踪方法的话,只需要过一遍光追pipeline,并且不需要额外的内存来保存这些framebuffer,所有反射内容都是即时的、整个场景中存在的所有的东西。
放一个镜像的角色模型在镜子对面不更省事嘛……


TOP

引用:
原帖由 zo 于 2019-1-18 08:45 发表
posted by wap, platform: iPhone
放一个镜像的角色模型在镜子对面不更省事嘛……
如果场景中只有一面贴墙的镜子,并且你只想反射角色一个东西的话,这的确是个不错的方法



TOP

引用:
原帖由 zo 于 2019-1-18 08:45 发表
posted by wap, platform: iPhone
放一个镜像的角色模型在镜子对面不更省事嘛……
哈哈镜呢?


TOP

平面反射有非常简单的模拟算法,根本不需要光线追踪。

TOP

不能反射屏幕外那是现在延迟渲染技术的屏幕空间反射一项而已,要反射屏幕外的办法一大堆,性能也比屏幕空间反射需求更低
fps能照镜子的游戏也一大堆,英雄萨姆、老的那款prey等
照镜子真正难做的是,两个镜子对着,中间一个活动的物体,这种不用光线追踪就算能搞性能需求估计也要爆炸

TOP

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