3DMAX 烘培技术
烘培是指,把光照信息渲染成贴图,而后把这个烘培后的贴图再贴回到场景中去的技术。烘培技术把光照计算的结果提前写入到了贴图中,因此在实时渲染中不需要进行耗时的光照计算,大大提高了实时渲染的效率。
烘培和渲染区别
渲染是指生成一张图片
烘焙是指按模型UV的展开而渲染成一张物体的材质(可以理解为UV0或者UV1)的
所以你可以理解烘焙是把物体展开的渲染,再来个上贴图的动作
由于烘培的光影效果是提前渲染到贴图中的,因此烘培的光影效果是静态的,这与实时渲染的光影效果是不同的,它不能随着环境光照的改变而变化。并且由于贴图已经包含光影信息,如果再对该物体启用光照计算,则会出现贴图中的光影与实时计算光影间产生冲突,所以应对烘培后的物体关闭光照计算。
Max中的烘培方式有两种,CompleteMap和LightingMap。CompleteMap把光影信息和源纹理一起渲染到一张新的贴图中,最终用于实时渲染的只有这一张贴图,但是由于光影贴图不能使用REPEAT的纹理环绕模式,所以整个纹理必须被平铺,这样在目标贴图大小一定的情况下,任何局部都会变得比较模糊。LightingMap把光影信息单独渲染到一张新的贴图中,最终使用原始纹理和光影纹理共同完成实时渲染,光影贴图的大小不会影像到原始纹理的清晰度。
总体来看,Completemap和lightingmap两种渲染烘焙可以有如下的区分。
◆ Lightingmap烘焙方式
优点:可以保留材质清晰的纹理
缺点:光感稍弱,所消耗的资源比completemap烘焙方式多。
常用的范围:适用于大面积的砖墙,室内外的地面等,物体面数比较多的情况下,尽量不选择Lightingmap烘焙。
◆ completemap烘焙方式
优点:烘焙出来的效果光感好,更接近于渲染图的效果
缺点:要达到好的效果,就需要烘焙的尺寸大一些才可以,否则会很模糊。
常用的范围:适用于小物件,及对质感要求比较高的物体
3DMAX 烘培技术的更多相关文章
- 【翻译】CEDEC2012 SQUARE ENIX GPGPU实现高速GI烘培工具的方法
虽然实时GI技术已经趋于成熟了,但出于对不同平台的性能和质量的考虑, 更倾向搭配一些预计算的渲染技术来实现,如给静态物体提供GI的LightMap, 给动态物体提供GI的Irradiance Vol ...
- Unity3D研究院之动态修改烘培贴图的大小&脚本烘培场景
Unity默认烘培场景以后每张烘培贴图的大小是1024.但是有可能你的场景比较简单,用1024会比较浪费.如下图所示,这是我的一个场景的烘培贴图,右上角一大部分完全是没有用到,但是它却占着空间. 有 ...
- Unity3D 5.1烘培 操作
http://blog.csdn.net/asd237241291/article/details/48056575 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技 ...
- Unity3d 烘培lightingmap 注意的2点.
1.在Qulity里面设置合适的灯光数量.否则,你会发现烘培出来的场景,有些灯光没有起作用. 2.在导入模型时候,注意勾选:Generate Lightingmap . 否则,模型没办法烘培. 3. ...
- unity中使用自定义shader进行光照贴图烘培无法出现透明度的坑爹问题
最近开发中在对场景进行光照贴图烘焙时发现一个坑爹问题,在使用自定义shader的时候,shader命名中必须包含Transparent路径,否则烘焙的时候不对alpha通道进行计算,烘焙出来都是狗皮膏 ...
- Unity 自动烘培Cpu占用过高电脑卡死
起因 打开Unity项目 发现右下方一直
- webGL之three.js入门4--ThreeJS Editor入门篇
因为工作需要,要看threejs editor的源码,顺便记录过程. github下载的源码目录是这样的 但是editor和其他文件夹内的内容的关联的,我需要将其独立出来并且编辑editor. 进入e ...
- [OSG]OpenSceneGraph FAQ 以及OSG资源
1.地球背面的一个点,计算它在屏幕上的坐标,能得到吗? 不是被挡住了吗? 答:计算一个空间点的屏幕坐标,使用osgAPEx::GetScreenPosition函数.当空间点处于相机视空间内(不管它是 ...
- OpenSceneGraph FAQ
转自http://www.cnblogs.com/indif/archive/2011/04/22/2024805.html 1.地球背面的一个点,计算它在屏幕上的坐标,能得到吗? 不是被挡住了吗? ...
随机推荐
- Android判断TextView是否超出加省略号
我们都知道通过指定android:ellipsize="end" android:singleLine="true" 可以让TextView自动截断超出部分并且 ...
- SAM4E单片机之旅——8、UART初步
通信还是比让LED灯闪烁实用得多的. 这次试试使用UART,实现开发版和PC间的通信.功能比较简单,就是把PC发向开发版的内容发送回去.这次主要介绍一下UART的配置,至于通信,则使用较为简单的不断查 ...
- 九度OJ 1085:求root(N, k) (迭代)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1407 解决:523 题目描述: N<k时,root(N,k) = N,否则,root(N,k) = root(N',k).N'为N的 ...
- 为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...
- Java单元测试(Junit+Mock+代码覆盖率)---------转
Java单元测试(Junit+Mock+代码覆盖率) 原文见此处 单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测 ...
- NOIP考前感悟
闭关这么久,后来突然后悔自己前几天和暑假的状态很頽 不然进步也还能多一点吧 还好提前发现了,最后也还是努力了一把 也算不枉费自己的选择吧 从初中开始学习OI,到头来也没有什么成果 但还好自己高一 也还 ...
- 【C++基础学习】成员对象与对象数组
第一部分 对象成员与对象数组 从一个简单的例子开始说起,首先定义一个Coordinate的类,里面有两个公有的成员变量m_iX和m_iY,分别代表横坐标和纵坐标. 接下来,定义一个对象数组cood和一 ...
- java基础以及操作Excle
今天把会经常用的几个集合的迭代方法又练习了一下,放在这里,经常复习! map集合迭代 /*** 迭代map[1]*/ for (Integer key : map.keySet()) {//迭代key ...
- 使用geolocation
The geolocation object geolocation API建立在navigator.geolocation 上. 如果对象存在,才可以使用定位服务. if ("geoloc ...
- H3C-交换机端口绑定
1.端口和MAC地址绑定: (1)使用am命令: [switch]am user-bind mac-address 00e0-fc23-f8d3 interface Ehternet 0/1 (2)使 ...