Unity默认烘培场景以后每张烘培贴图的大小是1024。但是有可能你的场景比较简单,用1024会比较浪费。如下图所示,这是我的一个场景的烘培贴图,右上角一大部分完全是没有用到,但是它却占着空间。
有时候可能你想去修改烘培贴图的大小,如下图所示以前我试过在Inspector视图中修改烘培贴图的大小,图虽然是小了但是它是整体缩小,后来在手机上面发现这这样直接修改烘培贴图的大小确实有问题,接缝方面处理的有问题。而且每次烘培完场景以后都需要这样缩一下。。(千万不要这样缩图)
我们需要美术在烘培场景的时候去设置烘培贴图的大小,可是Unity的烘培菜单根本没有设置烘培贴图的大小。。后来我想到了一个巧妙的办法,用脚本来烘培场景,顺便设置烘培贴图的大小。。代码很简单。
Clear()就是删除当前场景的烘培贴图。
Bake()就是直接烘培当前场景,我还可以在烘培场景之前加一些代码。。。一切都是脚本化操作。嘿嘿。。
maxAtlasHeight和maxAtlasWidth 就是每张烘培贴图的宽和高,一般我们每个场景用一张512的就差不多了。烘培贴图必须要2的幂次方,并且要正方形的。
1
2
3
4
5
6
7
8
|
[MenuItem("Test/Test")]
static void Init()
{
LightmapEditorSettings.maxAtlasHeight = 512;
LightmapEditorSettings.maxAtlasWidth = 512;
Lightmapping.Clear();
Lightmapping.Bake();
}
|
这样美术只用在Lightmapping窗口中设置好当前烘培场景的参数。。调用我们写的拓展菜单方法就可以了。这里我设置的烘培贴图的大小是512。
利用上面的方法我们把一张1024的贴图缩小到了512,效果没有什么变化但是空间缺缩小了4倍。。
IOS PVRTC压缩后512的贴图只有170.8KB,很给力吧。。
Unity3D研究院之动态修改烘培贴图的大小&脚本烘培场景的更多相关文章
-
Unity3d运行时动态修改材质
void Start () { const string MainTexVariableName = "_MainTex"; var renders = gameObject.Ge ...
-
Unity3D代码动态修改材质球的颜色
代码动态修改材质球的颜色: gameObject.GetComponent<Renderer>().material.color=Color.red;//当材质球的Shader为标准时,可 ...
-
(转)Unity3D研究院之Assetbundle的实战(六十三)
上一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity3D研究院之Assetbundle的原理(六十一) 本篇文章我们将说说assetbundl ...
-
(转)Unity3D研究院之Assetbundle的原理(六十一)
Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中,提供了封装与解包的方法使用起来很便利. 1.预设 A ...
-
Unity3D研究院之Assetbundle的实战(六十三)
http://www.xuanyusong.com/archives/2405 上一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity3D研究院 ...
-
(转)MoMo的Unity3D研究院之Assetbundle的原理(六十一)
http://www.xuanyusong.com/archives/2373 Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbun ...
-
Unity3D研究院之Assetbundle的原理(六十一)
www.xuanyusong.com/archives/2373 Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中,提供 ...
-
Unity3D移动平台动态读取外部文件全解析
前言: 一直有个想法,就是把工作中遇到的坑通过自己的深挖,总结成一套相同问题的解决方案供各位同行拍砖探讨.眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大脑 ...
-
Unity3D研究院之Jenkins的使用(七十八)
长夜漫漫无心睡眠,来一篇嘿嘿.我相信如果已经用Shell脚本完成IOS和Android打包的朋友一定需要Jenkins 怎么才能让策划打包ipa和apk?怎么才能彻底省去程序的时间,只要在同一局域网内 ...
随机推荐
-
SQL Server2008从入门到全面精通 SQL数据库视频教程
第1章 SQL Server 2008入门知识:1.SQL SERVER 2008简介2.数据库概念3.关系数据库4.范式5.E-R模型6.SQL Server 2008体系结构7.安装IIS服务8. ...
-
Apache索引目录浏览的学习笔记
在浏览一些镜像文件站的时候,会发现网站目录是可以浏览文件(夹)列表的.举两个例子:网易开源镜像:Ubuntu.只要 Web 服务器是基于 Apache 的网站都可以开启或禁止索引(目录浏览),那么如何 ...
-
grep 命令搜索 带空格的字符
grep - n ' a[[:space:]]b' 就能搜索到 'a b'类似的字符了 如果要搜索带单引号的 用双引号括起来 如果要搜索带双引号的 用单引号括起来
-
java下管道流 PipedOutputStream 与PipedInputStream
package cn.stat.p2.demo; import java.io.IOException; import java.io.PipedInputStream; import java.io ...
-
ios中判断控制台Log输出控制,是否是iphone5,自动调整尺寸
// 控制台Log输出控制,此确保在release版本下无Log输出 #ifdef DEBUG #define CMBLOG NSLog #else #define CMBLOG ...
-
BZOJ3270: 博物馆
3270: 博物馆 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 269 Solved: 147[Submit][Status][Discuss] ...
-
BZOJ1467_Pku3243 clever Y_EXBSGS
BZOJ1467_Pku3243 clever Y_EXBSGS Description 小Y发现,数学中有一个很有趣的式子: X^Y mod Z = K 给出X.Y.Z,我们都知道如何很快的计算K. ...
-
7_CentOS下安装和卸载AdobeReader
曾经最喜欢Fedora 版本的Linux,但是因为现在Fedora的界面实在太花里胡哨了,所以最近开始捣鼓CenOS,本来 RedHat的EL版本也是一个不错的选择,最后想想还是用社区版的. 话说Ce ...
-
20175310 《Java程序设计》第8周学习总结
20175310 <Java程序设计>第8周学习总结 本周博客: https://www.cnblogs.com/xicyannn/p/10722004.html 教材学习内容总结 这周学 ...
-
TCP/IP详解--TCP连接中TIME_WAIT状态过多
TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的.仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT.服务器在处理客户端请 ...