原帖由 @Kuze 于 2019-1-15 12:25 发表
以后美工越来越没用了吧?
原帖由 @Kuze 于 2019-1-15 12:25 发表
以后美工越来越没用了吧?
原帖由 @洛克狼 于 2019-1-16 02:38 发表
拿个镜子起来,能看到自己的脸,就是光线追踪
原帖由 endrollex 于 2019-1-16 20:14 发表
没多大意思,光追的DEMO就是汽车金属漆表面反射那种很细腻的样子
其实这种场景不多,美工可以藏拙甚至省略,总体上影响不是特别大,黄老板吹的响,消费者看不出画面提升有多大,反而运行速度拖累了
原帖由 @u571 于 2019-1-16 08:45 发表
人脸在屏幕外就做不到,必须要光追
原帖由 @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,所有反射内容都是即时的、整个场景中存在的所有的东西。
欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) | Powered by Discuz! 6.0.0 |