烘培是指,把光照信息渲染成贴图,而后把这个烘培后的贴图再贴回到场景中去的技术。烘培技术把光照计算的结果提前写入到了贴图中,因此在实时渲染中不需要进行耗时的光照计算,大大提高了实时渲染的效率。

烘培和渲染区别

渲染是指生成一张图片

烘焙是指按模型UV的展开而渲染成一张物体的材质(可以理解为UV0或者UV1)的

所以你可以理解烘焙是把物体展开的渲染,再来个上贴图的动作

由于烘培的光影效果是提前渲染到贴图中的,因此烘培的光影效果是静态的,这与实时渲染的光影效果是不同的,它不能随着环境光照的改变而变化。并且由于贴图已经包含光影信息,如果再对该物体启用光照计算,则会出现贴图中的光影与实时计算光影间产生冲突,所以应对烘培后的物体关闭光照计算。

Max中的烘培方式有两种,CompleteMap和LightingMap。CompleteMap把光影信息和源纹理一起渲染到一张新的贴图中,最终用于实时渲染的只有这一张贴图,但是由于光影贴图不能使用REPEAT的纹理环绕模式,所以整个纹理必须被平铺,这样在目标贴图大小一定的情况下,任何局部都会变得比较模糊。LightingMap把光影信息单独渲染到一张新的贴图中,最终使用原始纹理和光影纹理共同完成实时渲染,光影贴图的大小不会影像到原始纹理的清晰度。

总体来看,Completemap和lightingmap两种渲染烘焙可以有如下的区分。

◆ Lightingmap烘焙方式 

优点:可以保留材质清晰的纹理

缺点:光感稍弱,所消耗的资源比completemap烘焙方式多。

常用的范围:适用于大面积的砖墙,室内外的地面等,物体面数比较多的情况下,尽量不选择Lightingmap烘焙。

◆ completemap烘焙方式 

优点:烘焙出来的效果光感好,更接近于渲染图的效果

缺点:要达到好的效果,就需要烘焙的尺寸大一些才可以,否则会很模糊。

常用的范围:适用于小物件,及对质感要求比较高的物体

3DMAX 烘培技术的更多相关文章

  1. 【翻译】CEDEC2012 SQUARE ENIX GPGPU实现高速GI烘培工具的方法

     虽然实时GI技术已经趋于成熟了,但出于对不同平台的性能和质量的考虑, 更倾向搭配一些预计算的渲染技术来实现,如给静态物体提供GI的LightMap, 给动态物体提供GI的Irradiance Vol ...

  2. Unity3D研究院之动态修改烘培贴图的大小&脚本烘培场景

    Unity默认烘培场景以后每张烘培贴图的大小是1024.但是有可能你的场景比较简单,用1024会比较浪费.如下图所示,这是我的一个场景的烘培贴图,右上角一大部分完全是没有用到,但是它却占着空间.  有 ...

  3. Unity3D 5.1烘培 操作

    http://blog.csdn.net/asd237241291/article/details/48056575 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技 ...

  4. Unity3d 烘培lightingmap 注意的2点.

    1.在Qulity里面设置合适的灯光数量.否则,你会发现烘培出来的场景,有些灯光没有起作用. 2.在导入模型时候,注意勾选:Generate Lightingmap .  否则,模型没办法烘培. 3. ...

  5. unity中使用自定义shader进行光照贴图烘培无法出现透明度的坑爹问题

    最近开发中在对场景进行光照贴图烘焙时发现一个坑爹问题,在使用自定义shader的时候,shader命名中必须包含Transparent路径,否则烘焙的时候不对alpha通道进行计算,烘焙出来都是狗皮膏 ...

  6. Unity 自动烘培Cpu占用过高电脑卡死

    起因 打开Unity项目   发现右下方一直  

  7. webGL之three.js入门4--ThreeJS Editor入门篇

    因为工作需要,要看threejs editor的源码,顺便记录过程. github下载的源码目录是这样的 但是editor和其他文件夹内的内容的关联的,我需要将其独立出来并且编辑editor. 进入e ...

  8. [OSG]OpenSceneGraph FAQ 以及OSG资源

    1.地球背面的一个点,计算它在屏幕上的坐标,能得到吗? 不是被挡住了吗? 答:计算一个空间点的屏幕坐标,使用osgAPEx::GetScreenPosition函数.当空间点处于相机视空间内(不管它是 ...

  9. OpenSceneGraph FAQ

    转自http://www.cnblogs.com/indif/archive/2011/04/22/2024805.html 1.地球背面的一个点,计算它在屏幕上的坐标,能得到吗? 不是被挡住了吗? ...

随机推荐

  1. C# 调用类库里的事件

    首先在类库中定义事件: //定义委托 public delegate void DelWeiTuo(string name); //定义事件 public event DelWeiTuo EventW ...

  2. Lombok引入简化Java代码

    转载 http://t.cn/RS0UdrX Lombok简介 如Github上项目介绍所言,Lombok项目通过添加“处理程序”,使java成为一种更为简单的语言.作为一个Old Java Deve ...

  3. You're trying to decode an invalid JSON String JSON返回有解析问题

    SpringMVC架构的web程序,通常用map返回消息在浏览器中显示,但是实际中报下列错误“”You're trying to decode an invalid JSON String“返回的字符 ...

  4. python网络爬虫之使用scrapy爬取图片

    在前面的章节中都介绍了scrapy如何爬取网页数据,今天介绍下如何爬取图片. 下载图片需要用到ImagesPipeline这个类,首先介绍下工作流程: 1 首先需要在一个爬虫中,获取到图片的url并存 ...

  5. 【LeetCode】Sqrt(x) (转载)

    Implement int sqrt(int x). Compute and return the square root of x. 原文地址: http://kb.cnblogs.com/page ...

  6. Double.valueOf()与Double.parseDouble()两者的区别

    写代码用到这两个方法,不知道有什么区别,看一下源码: Double.parseDouble(String str) public static double parseDouble(String s) ...

  7. charles抓取线上接口数据替换为本地json格式数据

    最近要做下拉刷新,无奈测试服务器的测试数据太少,没有足够的数据做下拉刷新,所以用charles抓取了测试服务器的接口,然后在伪造了很多数据返回到我的电脑上,下面来说说使用方法: 第一步: 安装FQ软件 ...

  8. FFMPEG more samples than frame size (avcodec_encode_audio2) 的解决方案

    在实际的项目中,从音频设备采集到的音频的类型和编码器类型(aac ,amr)通常是不一致的. 那么我们首先需要做重采样的过程.利用swr_convert 重新采样. 这时候我们可能会遇到另外一个问题. ...

  9. 清理html中空白符/空格/换行在行内元素中产生的间距

    问题:行内元素之间产生间隔 原因:换行符,Tab制表符,空格产生间隔 解决方法: 1.行内元素写成一行 2.设置font-size为0px 把父级文本设置为0px; 再为需要显示文字的行内元素设置文字 ...

  10. synergy的配置使用

    1.http://blog.csdn.net/qq_16618179/article/details/54094636 2.两个版本要一致 3.synergy  fail to connect sec ...