Unitypostprocessingstack(v1-创新互联
环境:Unity5.6.2,post processing stack
创新互联公司是一家专注于成都网站制作、网站建设与策划设计,平昌网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:平昌等地区。平昌做网站价格咨询:18980820575注意:post-processing stack是从AssetStore上下载的v1版本,而并非stack2版本,stack2版本在unity2018的packagemanager中可以直接下载安装
首先,在相机上绑上PostProcessingBehaviour这个脚本
在Project视图中右键->Create->Post-Processing Profile
并赋值到post processing behaviour的Profile上
选中刚刚新建的Post-Processing Profile文件
在Inspector面板中就可以进行设置了
那如何通过代码来进行控制呢?
这里有坑啊,而且与以前的ImageEffects是不同的
首先当然要获取这个PostProcessingBehaviour
PostProcessingBehaviour ppb=GetComponent();
然后要获取创建的这个profile文件对象
var profile = ppb.profile;
再获取这个Color Grading效果
var colorGrading = profile.colorGrading;
获取它上面的设置
var settings = colorGrading.settings;
然后坑就来了,先看下图
以Color Grading这个效果为例:
它的面板中其实又分了几部分
Tonmapping和TrackBalls可以不管
有Basic, Chanel Mixer 还有Grading Curves
按照正常思维,在settings后面直接点,OK是可以的
本例我们设定要修改的是Basic部分中的Post Exposure(EV)的值
可以直接点出basic,再直接点出PostExposure都是没问题的,甚至可以直接赋值
settings.basic.postExposure = -1.2f;
没有问题,也不会报错,但运行程序,没有任何效果,面板中post exposure的值也没有变化。
这就是坑所在了。
正确的做法是,new 一个settings,把里面的post exposure值改掉,再赋给ColorGrading组件
var settings = new ColorGradingModel.Settings() ;
colorGrading.settings=settings;
而new一个settings只修改里面的exposure值,依然有坑
如前图所示,Color Grading面板中分为几个部分,有basic, Chanel Mixer还有Grading Curves
但是new 出来的settings里面其实基本上是空的,所以所有的这一切都要赋值,不然会报错
赋值就在new 的时候一并进行
而既然其它部分不变,则用之前点点点的方式获取,并赋给这个新建的settings,最后再将settings整个赋值回去
var scurves = ppb.profile.colorGrading.settings.curves;
var schannelMixer = ppb.profile.colorGrading.settings.channelMixer;
var settings = new ColorGradingModel.Settings() {
basic = {postExposure = -1.2f, contrast = 1, saturation = 1, hueShift = 0, tint = 0, temperature = 0 } ,
curves = scurves,
channelMixer = schannelMixer
}
这样new 出来一个settings最后再赋值回去
ppb.colorGrading.settings = settings;
如此修改才能生效,而之后再对值进行修改的话,直接在新建的settings上点出属性,直接赋值,再把settings赋值回去
settings.basic.postExposure = 10f;
ppb.colorGrading.settings = settings;
也就是每次修改,改的是你新建的settings,但最后还是要把整个settings赋值回去才能生效
以上
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
标题名称:Unitypostprocessingstack(v1-创新互联
文章转载:http://pwwzsj.com/article/dhggjo.html