内容简介:这是第157篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。UWA 问答社区:answer.uwa4d.comUWA QQ群2:793972859(原群已满员)
这是第157篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
本期目录:
- 模型中多个材质的渲染顺序
- SpriteRenderer的屏幕填充实现
- iOS如何导出Log
- Shader加载异常
- Unity 2018.3.7版本开发中,模型在部分设备上无法显示
模型
在一个模型中,有两个默认材质。这个时候,如果用代码,强行增加一个材质,Unity会采用复制原材质中上一个材质的Mesh作为新材质的Mesh。所以有两个问题:
1)有没有可能为材质球指定Mesh;
2)如何才能让原材质的位置调换但是效果还是显示正确。
也就是让下图中两个材质球调换位置,并且效果显示正确;
第一个材质是颜色贴图材质,第二个材质是特效波动材质。
A:如果你的Mesh没有Submesh,多个材质球就是会渲染多遍,使用的对象就是当前的这个Mesh。如果有Submesh,我在编辑器模式下默认是不让增加材质球数量的,我不知道通过代码是否可行,但是如果可以通过代码添加但不能指认Mesh,是挺奇怪的。
关于顺序,RenderQueue相同的情况下,不透明和透明的排列顺序不同(不透明由近到远,因此可能认为数组顺序应该反着来做,透明的由远及近,按照数组顺序来),对于多材质的Mesh的材质渲染顺序似乎也不同。(注意,这里虽然RenderQueue设置到了半透明队列里,依然开启了ZTest和ZWrite)
所以,如果你想控制两个材质球的渲染顺序,就调整材质球的RenderQueue就好了,谁大谁就在后面。
最后,注意Unity给的Warning:
可以用多Pass来优化,甚至在一个Pass里通过宏来开关来控制(当然又要注意宏开关过多导致变体数量的问题……)
渲染
Q:3D场景里的SpriteRenderer能否填充整个屏幕?我用一个正交摄像机专门照这个背景图,这个背景图是放在场景中的,能否让这个背景图自适应填充整个屏幕?
功能有点类似,简单改造一下这个脚本就行。
自适应分两种,一种是拉伸的(图片会变形),另一种是不拉伸(图片会被裁切掉)。
编译
Q:iOS下怎么导出Log呢?我们Log文件写在Application.persistentDataPath下,iPhone上怎么找到这个文件呢?
我们在用这个工具,可以在Windows上看iOS日志很方便。
Shader
Q:我使用了LowPolyWaterv2这个插件,里面的一个Shader在场景中做了一个水面效果,遇到如下问题:
1)当这个Shader不打包成单独的AssetBundle包时,加载场景后水面显示正常;
2)当这个Shader打包成单独AssetBundle包,加载场景后显示的水效果异常,而且并不是Shader丢失。
请问Shader打包和不打包单独AssetBundle包会有什么不同逻辑吗?
A:主要区别在于对Shader变体的收集,单独打包Shader,需要手动选择变体,使用Unity自动收集会有丢失的现象。
模型
Q:我在项目中使用的一个模型,版本为Unity 2018.3.7,发布以后在华为P30、mate10等机器上无法正常显示,再后续的测试中尝试修改模型法线、重新绑定等都未能解决,目前已经尝试过的很多方案,发现以下规律:
使用的材质为Standard(Specular setup)
1)模型在绑定的情况下单独导入,能正常显示;
2)模型添加绑定以后,无法正常显示;
3)绑定模型在导入Unity以后,在Inspector界面中的Model页面将Normals选择为none,能显示模型整体轮廓;
4)绑定模型在导入Unity以后,在Inspector界面中的model页面将Normals选择为import,或者Calculate,都无法正常显示;
5)将Unity导出设置是进行如下设置Player Settings -> Resolution and Presentation 中的Use 32-bit Display buffer* 以及 Disble Depth and Stencil* 全勾选或者全不勾选,均无法正常显示;
6)更换材质也无法正常显示;
7)降低版本,在Unity 5.2.3中尝试过,显示出来的模型是全黑色,没有贴图效果,材质自身给定的颜色也不显示(最好的情况,显示依旧不正常)。
请UWA社区的各位大神多多指点,先在此谢过!
A:暂时解决了这个问题,具体原因尚不是特别明确。
关于模型:
1)出问题的模型,在蒙皮前对模型的旋转上设置了一个关键帧;
2)出问题的模型,在蒙皮前模型的旋转存在非零数据;
关于设置:
Unity2018.3.7f1,在默认打包的时候勾选了GPU Skinning。
暂时的解决方法:
在Unity中反选GPU Skinning。
目前猜想:
感觉上是华为使用的Mali-G7X 的GPU在对这种模型进行计算的时候,在最开始计算初始bound pose的时候出现了错误,少计算了模型蒙皮的旋转信息。
尚存疑问:
在三维软件中对模型进行解除蒙皮,清空模型的所有信息,然后再进行绑定动画,仍然存在问题,这个暂时就不太清楚问题在什么地方,后续查找到以后再更新吧。
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
官方技术QQ群:793972859(原群已满员)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 利用深度学习对甲骨材质实现自动分类
- 从洪荒到智能——数据驱动的材质属性建模发展历程
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
- Octane渲染入门-渲染设置图文版
- 通过分析 WPF 的渲染脏区优化渲染性能
- React 服务器端渲染和客户端渲染效果对比
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
游戏运营:高手进阶之路
饭大官人 / 电子工业出版社 / 2018-1-1 / 79.00元
《游戏运营:高手进阶之路》是一本系统的、成体系的、注重运营效能、强化系统思维、提升专业认知的书籍。《游戏运营:高手进阶之路》几乎完整覆盖了一个游戏运营人员日常工作中的方方面面,并从工作中具体的业务场景出发,归纳整理出各种解决问题的方法论。《游戏运营:高手进阶之路》为广大游戏从业者建立了完整的知识技能成长体系,包含两大岗位基本功—内容输出和协作推进,四大职业技能—活动策划、版本管理、用户运营、数据分......一起来看看 《游戏运营:高手进阶之路》 这本书的介绍吧!