3D渲染-光线追踪-包围盒

3D渲染-光线追踪-包围盒,第1张

上节通过光栅化和光线追踪的对比,引入光线追踪。

在光栅化中,其实就是构建网格,然后在像素网格中放入物体。对于每个物体,通常会观察该物体所覆盖的每个像素。

在光线追踪中,则颠倒此循环过程,首先确定每个像素,然后去查看每个物体,判断物体能否覆盖相应像素。换言之,将相机(起点)与一个像素点连线,发出射线,然后观察每个物体被光源照亮情况,将每个交点的着色值加权和写入像素值。

解释了Whitted-Style Ray Tracing的原理,并讲解了如何进行光线和场景中物体求交问题。

之前每一个像素都需要与场景中所有三角形求交。
即:algorithm = pixels ✖️ traingles
可以向想象:一个成像平面上有很多个像素,一个场景中由很多三角形构成。每一个像素都要与场景中全部三角形求交,非常慢。

使用包围盒进行加速。

一般使用的包围盒是长方体。
对长方体的理解:由三个不同的对面形成的交集。如下图

使用包围盒计算更方便。使用轴对齐包围盒,计算更方便。如下图:

先以2D的为例。
1、光线先与x轴上两对面,求交点。
2、光线再与y轴上两对面,求交点。
3、将1和2求交集,即光线在2D包围盒里的区域。
如下图:

扩展到3D:
1、当光线进入了全部的对面时,则光线进入包围盒。
2、当光线只要离开任意一个对面时,则光线离开包围盒。
即:T enter = max {t min } T exit = min {t max }
当T enter < T exit 时,说明光线在包围盒内一段时间。

由于光线是一条射线。
当 T exit < 0 时,说明光线在包围盒的背后,不会有交点。
当 T enter < 0 且 T exit > 0 时,说明光线在包围盒里,有交点。
总结:光线与包围盒(AABB)有交点,当且仅当 T enter < T exit && T exit > 0

3dmax中渲染时间很长或者很慢的原因:

硬件。

图像分辨率。

网络或本地位置。

本地电脑与渲染平台。

正在使用的渲染解决方案。(阿诺德、VRay、Corona 等)

解决方案:升级硬件

使用 Windows 任务管理器,检查渲染期间的 RAM 使用情况。如果使用率超过 90%,则 RAM 不足,Windows 将尝试将数据写入硬盘驱动器,这是一个非常慢的过程。解决方案要么简化正在渲染的场景,要么在系统上安装更多 RAM。

检查 PC 是否满足或超过要求。例如,可以到3dmax找到 3ds Max 系统要求。

网络或本地位置。

如果场景和素材都在网络位置,暂时将场景和素材移动到PC本地位置。将资产存储在网络位置可能会导致明显的延迟。有许多自定义公司配置和安全性阻碍了像 3ds Max 这样依赖不受限制的读写访问的程序。

本地电脑与渲染平台。

渲染平台会将渲染作业拆分到多台计算机上,并比一台 PC 更快地完成作业。渲云是渲染平台的一个例子。

在云端根据需求选择合适的配置,可批量渲染,批量出结果,不耽误本地做其他的工作,并且能享受高配置、高内存、高性能服务器带来极致的渲染速度,节省渲染时间,提高工作效率。

渲云拥有超强的分布式渲染技术,可利用海量的节点d性扩展,一键加载各种渲染环境以满足各种渲染任务的完成。同时资深强大的研发团队产品团队,根据软件、插件更新情况,快速完成支持服务。并不断研究更符合设计师工作使用的渲染方式。

此外也可以使用赞奇云工作站,通过赞奇云工作站打造云制作平台,实现权限管理、流程管理、 项目进程管理、任务信息同步,实现异地协同制作,同时提供安全的存储服务,有效的报障数据 的高速传输,并避免数据泄露。

通过云赞奇工作站、软件中心、云盘、渲云云渲染 打通 素材上传 -> 云上制作坐席置备 -> 设计 -> 渲染 ->合成 呈现全流程环节。

渲染解决方案

所有渲染引擎都使用不同的算法。论坛或比较网站提供了关于哪种渲染解决方案对于所需工作最快的最佳信息,可以根据不同的渲染需求选择适合自己的渲染器。

2016版本的3Dmax渲染参数的设置方法及详细的 *** 作步骤如下:

准备材料:3DMAX,VR渲染器,电脑。

1、首先,单击渲染按钮,然后选择VR360渲染器,如下图所示。

2、其次,设置公用参数,大小,然后保存设置,如下图所示。

3、接着,单击VR渲染器以设置相关参数,如下图所示。

4、最后,直接设置GI,以及发光图和灯光缓存,如下图所示。这样,3Dmax2016版本的渲染参数就设置好了。

出现错误的原因有很多。列举几个常见出错的原因。

1、模型过大,超出max的运算范围。模型过大,当你拖动模型的时候,每拖动一点,电脑就会计算下你拖拽后的模型面数,拖拽出现在视图中的面数过多,从而会出现错误。

2、模型空间内合并导入的模型带着过多的无用信息,从而导致出错。有时候你找到的模型可能是在原来一个场景中,被你孤立另存出来的,这时候如果将孤立另存的模型,直接合并进你的模型,原本该场景中的材质都会被合并进来,合并的多了,自然垃圾信息就会变多,从而容易出错。

3、软件与系统的兼容性差。有时候说不准,不同的版本对于同一台电脑兼容性存在差异,有时候在别的电脑上可以很好的运行,回到自己的电脑则兼容性较差,这种可能性也是存在的。

解决办法:

1、对于问题一,就需要自己在建模的技巧上好好练习,小场景无所谓,大场景、复杂的场景,就需要自己做好减面的 *** 作了,面数少计算量就会降低。

2、对于问题二,需要你在合并之前,在模型被孤立之后,新建个文档,打开被孤立的模型,将无用的材质覆盖成默认的材质球,或者删除,摁shiftt,打开材质路径,将无用的材质路径删除,或者刷新掉。之后再保存,再在回到自己的模型合并进去。

3、对于问题三,这就需要多尝试几个版本,找到合适的了,不过此类问题相对较少,当决定换个新版本的时候再做对比吧。

个人观点,希望对你有帮助~^-^


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13283711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-07
下一篇 2023-07-07

发表评论

登录后才能评论

评论列表(0条)

保存