Game physics 光线跟踪器中景深实现的参考资料?
我有一个基本的光线跟踪器,我想实现景深。你能帮我吗 向我推荐我可以使用的资源、书籍和代码Game physics 光线跟踪器中景深实现的参考资料?,game-physics,raytracing,Game Physics,Raytracing,我有一个基本的光线跟踪器,我想实现景深。你能帮我吗 向我推荐我可以使用的资源、书籍和代码 谢谢我从本页的一点信息中找到了答案:,特别是底部的图表。我想我做的有点不同于它的显示方式,但概念非常简单 我可以解释正在发生的事情以及如何实现它的总体思路(我会尽量简洁)。光线从任何给定点向各个方向反射(一般来说),因此它实际上不是一条光线穿过渲染点和眼睛之间,而是一个离开渲染点并向眼睛扩展的圆锥体。你的眼睛/相机的镜头会倾向于弯曲这些光线,使圆锥体停止膨胀并再次开始收缩。为了使物体完全对焦,圆锥体应该收缩
谢谢我从本页的一点信息中找到了答案:,特别是底部的图表。我想我做的有点不同于它的显示方式,但概念非常简单 我可以解释正在发生的事情以及如何实现它的总体思路(我会尽量简洁)。光线从任何给定点向各个方向反射(一般来说),因此它实际上不是一条光线穿过渲染点和眼睛之间,而是一个离开渲染点并向眼睛扩展的圆锥体。你的眼睛/相机的镜头会倾向于弯曲这些光线,使圆锥体停止膨胀并再次开始收缩。为了使物体完全对焦,圆锥体应该收缩到视网膜/框架上的一个点,但这只在距透镜一个特定距离处起作用:参考页面中“焦平面”所指示的距离(尽管我认为它应该是以眼睛为中心的球体,而不是平面) 对于焦平面前方的任何物体,光锥将更加弯曲:它将聚焦到视网膜/帧前方的一个点,然后再次开始扩张,因此当它到达帧时,它不再是一个点,而是一个圆。类似地,对于焦平面后面的点,圆锥体的弯曲度将减小,并且在到达帧时还不会收敛到某个点。在这两种情况下,效果都是场景中的一个点被涂抹在多个像素上 对于实现,您可以将这一想法转变为:不必将场景中的每个点渲染为几个像素,您可以将附近的几个点渲染为单个像素,这当然是自“涂抹”之后实际发生的情况相邻点的光圈最终会重叠,因此每个光圈都会形成一个像素 我是如何实现它的: 首先,定义一个光圈:一个位于眼睛中心并平行于视网膜/框架的平面区域。孔径越大,自由度效应越明显。光圈通常只是圆,在这种情况下,它很容易由其半径定义。其他形状可能导致不同的照明效果 还定义了“焦距”。我不认为这是一个正确的术语,但它是指物体与眼睛的距离,在这个距离上,物体会完全聚焦 要渲染每个像素,请执行以下操作: