热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

h5先加载小图_【3dmax】小图渲大图(光子贴图的调用)

大家好,今天我们来讲解一下大家常说的用小图渲大图是什么意思。它的意思就是用低分辨率的渲染获得光子贴图,然后继续渲染最终的成品(也就是获得高

大家好,今天我们来讲解一下大家常说的用小图渲大图是什么意思。

它的意思就是用低分辨率的渲染获得光子贴图,然后继续渲染最终的成品(也就是获得高分辨率的图像)。这就说平常所说的小图渲大图。

这么做的意义是可以大大的减少渲染时间。举例说明:比如我的想法是要做一个800x600这么大小的一个图。

07cf4cba26bd81153a0b85a1e8ce83c1.png


我想渲染这么大的一个图,可以先选择一个小点的,比如300x200,.用这个来渲染光子贴图,最终把它运用到大的图像上。

3166d02fa8d4fd366868453a1a73e9af.png

首先用发光图引擎和BF算法进行渲染, 质量选择低质量或中等质量的效果。如果正常渲染我们看一下需要多少时间呢?点击渲染,完成之后保存一下,同时观看一下它的渲染时间。可以看到渲染用了接近32秒的时间,这是正常的渲染。

首先可以看到正常用低分辨率产生了至9147个采样点,可以达到当前的这个渲染效果。

84e1595923c2110b05014783cf317879.png

接下来用300x200的分辨率,这个分辨率特别的小,渲染也是特别的快。但它产生的采样点肯定会非常少,至少要比9147个少很多。这是因为我们已经知道最小速率、最大速率它是根据当前设定的分辨率而定的。

现在选择高的预设,目的是为了获得更高的采样点。

8bd1fbb8d1dd19afc50f25e0f22cf55d.png

但在刚才的渲染过程中,注意有一个过程是“调用内存中的光子贴图渲染最终图像”(就是擦除的过程),这个过程很耗用时间。

现在用小分辨率渲染的目的是为了获得光子贴图,所以没必要把最终的光子贴图渲染出来。也就是说Vray渲染流程的最后一步不需要,只需要到达倒数第二步(生成光子贴图并保存在内存里)就可以了。

所以我在Vray的全局开关设置里面把“不渲染最终的图像”这个开关打开。打开它的话Vray将忽略最后一步,就不会渲染最终图像了。

40d54580df03d82a96a74260964091d3.png

那么为何我要把“当前预设”设置为高呢?就是为了获得多一点的光子,否则的话渲染大图的时候不够,采样点太少。现在用高预设、300x200来渲染一下,看一下效果。

渲染完成,可以看到它并没有进行最终的图像擦除,因为这一步在之前的设置里把它关掉了,所以不渲染最终图像。可以看到它生成的采样点是10000多个,比刚才正常渲染时的采样点要多,所以这里的采样点足够了。也就是这么多的采样点渲染一个800x600的图足够了。

0e4ec300154462a8cf1022a85296d577.png

再来看一下它用的渲染时间,用了27.4秒。虽然没有节省太多的时间,但是它的采样点变多了,运算的更仔细了。

那是不是代表着每次都要先渲染一遍大图呢?不用。根据经验应该能判断出来多少比较合适。这个就是一个经验问题了,需要多用多积累。那当前的光子贴图只需要点击保存就保存到内存里了,保存时命名为123.这样通过渲染小图就获得了光子贴图。

90da72631e3b467cdf849fb77664b85c.png

f7d17289f436e1098c0e53cd937f3bb6.png

接下来就可以根据光子贴图渲染出大图了,首先选择800x600,这里的模式选择“从文件”调用光子贴图,然后调出文件123,接着进行渲染就可以了。

3e819a174a3ced5bd3192b4bdbe04774.png

点击渲染,看一下效果。这次渲染几乎只用了零点几秒。大家可能会感到疑惑,为什么时间这么快,但画面什么都没有。

005ac80bf27c172f969edf20d7df7c20.png

我们再来回顾一下流程,在刚才的渲染中,前四步已经不用在运算了,因为我已经从文件里调用光子贴图了,所以前4步就不用再次进行运算了,直接进入第5步就可以了。

那么在第5步中就不是调用光子贴图了,而是调用我们已经保存在硬盘上的光子贴图。直接渲染图像。可问题是刚才我打开了“不渲染最终图像”,所以这一步它也被省略了,这就表示在渲染的时候所有的流程都没有了。这就是为什么点击渲染后瞬间就完成了,并且没有图像显现。所以现在要

把“不渲染最终图像”关掉,这样渲染的时候就直接进行最后一步。

abc693bb9dcf48c8af9822ede70ece5b.png

保存一下发现只用了12秒。

这是用小图渲染大图的优点之一,就是节约时间。可能你觉得没有节约太多,但当你使用灯光缓存的时候,节约的时间就会非常多了。用BF虽然节约的时间不是太多,但也节约了时间。

并且你用这种方法最为重要的是,你获得了一个光子贴图。如果你的场景需要好几个镜头,比如你之前的一个镜头已经渲染完成了,但其他视角也需要镜头,在下一个视角里面,摄像机所看到场景内的同一物品就不用再次渲染,只需要渲染另一部分的光子贴图就可以了,并且和原来的光子贴图合并到一起。

当然这需要利用光子贴图查看器进行合并,随后的文章中会讲到的。

使用这种方法的好处就是:第一节约时间,第二获得了一个光子贴图。

然后可以将渲染出来的图像进行一下对比,区别很明显。很明显后面调用电子贴图渲染出来的效果更好。

因为它是10000多个采样点,原来只有9000多个。

这种方法就是我们常说的小图渲大图,过程就是这样的。“不渲染最终的图像”的意义很重要,如果你只想获得光子贴图,就把它打开。

从文件的模式由于前几步流程都被忽略了,所以你的预设无论是高还是低,二的反弹是不是打开,都无所谓。对最终的图像没有任何的影响。细分值调高还是调低也没有影响。但模式选择单帧的时候这个值还是有意义的。

2ea4c557df3b2ca853df082983fbb00b.png


三阈值对从文件模式也没有意义,因为三阈值是调节自适应细分的。而自适应细分在从文件模式中这一步已经被省略了。但插值采样还是有意义的,在两个采样点之间需要插值采样来进行模糊,并且还可以有效的防止漏光。

f62d10e861da941762519f56ae5f5edc.png

而插值类型和查找采样也是有意义的,这两个参数决定了插值采样具体以何种方式进行运算。

那么今天呢,就给大家分享到这里

【学习交流】

觉得不错记得点赞收藏+关注哦~

更多高阶及学习资料:人工解答点击此处

国内外最全免费模型下载相关文章:点击此处即可获取

更多精彩:学习3dmax有前途吗?

更多精彩:初学3Dmax的50条建议

更多精彩:3dmax常见的八十个问题汇总

更多精彩:关于3DMAX的各种错误解决方法合集

更多精彩:怎么做效果图能做的好看?

更多精彩:3dmax材质疑问大全

更多精彩:学习3dmax有前途吗?

更多精彩:3dmax常见问题大全

更多精彩:3Dmax安装出错状况合集



推荐阅读
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
  • Java中提取字符串的最后一部分
    本文介绍了如何使用Java中的substring()和split()方法来提取字符串的最后一部分,特别是在处理包含特殊字符的路径时的方法与技巧。 ... [详细]
  • 本文将详细介绍Fuel CMS如何基于CodeIgniter框架构建,包括其单入口模式的实现方式及关键配置文件的作用。通过分析本地环境中的index.php和.htaccess文件,我们将更好地理解Fuel CMS的核心架构。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • 本文探讨了如何在Docker构建过程中使用动态环境变量,特别是针对Docker v1.9及以上版本的用户。我们将介绍如何声明和使用构建参数,以及这些参数对构建缓存的影响。 ... [详细]
  • 本文提供了一种有效的方法来解决当Android Studio因电脑意外重启而导致的所有import语句出现错误的问题。通过清除缓存和重建项目结构,可以快速恢复开发环境。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
author-avatar
手机用户2502909811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有