输出后,Macbook上的效果和iPad上的效果相差很远 渲染
程序员文章站
2022-04-20 09:15:06
...
http://game.ceeger.com/forum/read.php?tid=2078&page=e
各位大侠,我是一个Unity的新人,最近在做一个汽车的demo。但,在Macbook上的效果和输出到iPad后的效果相差非常大,详细见下图。
1,请问,是不是我选用了iOS平台不支持的shader呢?
2,如果我不开反锯齿,效果会很烂,如果我开了8倍反锯齿,在iPad上的效果会不错,但有点卡,有没有什么方法可以不用反锯齿但能实现类似的效果呢?
3,看下图,是不是我的面数太多,要优化一下呢?好像官方文档说iOS平台上最好不要超过4万个面吧?应该怎样优化呢?谢谢
我也感觉有些shader在pc上gles2.0模拟出来的效果和android真机上相差很远。只好慢慢调然后一遍遍真机测试直到想要的效果出来。
期待高手出现解答。
1、
另外两个问题,如果你用了不支持的shader的话应该会有提示的。
抗锯齿会卡,不过我估计可能你优化面数后还是会卡的。因为卡的是抗锯齿嘛。
面数也的确有点多。你可以试试看优化一下,具体做法就要问美工啦,我自己做都是3dmax里转为可编辑网格然后焊接距离很近的点。
不过还是觉得优化后估计效果不大明显,我试过50万面的简单场景(也是中间放个车,呵呵,比你的还简单,就在一个平面上,没有那些柱子什么的),unity能胜任的,我觉得卡还是抗锯齿造成的。
我刚注意到,木有影子,你木有lightmap一下?
2、
从你的统计数据来看,面数确实有点高,可以简化一些;
Drawcall太高了,这种场景很简单,应该尝试减到100以下;
RenderTexture使用太多了,这个在移动平台上很费,查查是哪个shader造成的,然后简化掉;
shader建议选择使用mobile里面自带的shader。
3、
面数高,这种shader也费。图像偏差太大,很可能是shader不支持、
4、
mobile的shader 在移动平台上运行会比较流畅
还有就是玻璃这种shader 也比较耗资源-,- 你不如把玻璃换成透明的材质就好了
看不看得到反射反正没太大关系...
5、
Shader的问题。Mac上支持OpenGL2.0,甚至3.0
IOS上只支持OpenGLES2.0, GLSL支持的最大指令数量就不一样。Unity上GLSL的片断Shader支持64条指令。
还有计算精度是不一样,ES2.0不支持双精度,颜色有差别是很正常的。
另外21万多变形太多,很难想象在Ipad上能否流畅运行。如果不需要显示车内装饰细节的话,还有很多优化空间。
PS2上的GT赛车也就3万就很强悍了。
各位大侠,我是一个Unity的新人,最近在做一个汽车的demo。但,在Macbook上的效果和输出到iPad后的效果相差非常大,详细见下图。
1,请问,是不是我选用了iOS平台不支持的shader呢?
2,如果我不开反锯齿,效果会很烂,如果我开了8倍反锯齿,在iPad上的效果会不错,但有点卡,有没有什么方法可以不用反锯齿但能实现类似的效果呢?
3,看下图,是不是我的面数太多,要优化一下呢?好像官方文档说iOS平台上最好不要超过4万个面吧?应该怎样优化呢?谢谢
我也感觉有些shader在pc上gles2.0模拟出来的效果和android真机上相差很远。只好慢慢调然后一遍遍真机测试直到想要的效果出来。
期待高手出现解答。
1、
另外两个问题,如果你用了不支持的shader的话应该会有提示的。
抗锯齿会卡,不过我估计可能你优化面数后还是会卡的。因为卡的是抗锯齿嘛。
面数也的确有点多。你可以试试看优化一下,具体做法就要问美工啦,我自己做都是3dmax里转为可编辑网格然后焊接距离很近的点。
不过还是觉得优化后估计效果不大明显,我试过50万面的简单场景(也是中间放个车,呵呵,比你的还简单,就在一个平面上,没有那些柱子什么的),unity能胜任的,我觉得卡还是抗锯齿造成的。
我刚注意到,木有影子,你木有lightmap一下?
2、
从你的统计数据来看,面数确实有点高,可以简化一些;
Drawcall太高了,这种场景很简单,应该尝试减到100以下;
RenderTexture使用太多了,这个在移动平台上很费,查查是哪个shader造成的,然后简化掉;
shader建议选择使用mobile里面自带的shader。
3、
面数高,这种shader也费。图像偏差太大,很可能是shader不支持、
4、
mobile的shader 在移动平台上运行会比较流畅
还有就是玻璃这种shader 也比较耗资源-,- 你不如把玻璃换成透明的材质就好了
看不看得到反射反正没太大关系...
5、
Shader的问题。Mac上支持OpenGL2.0,甚至3.0
IOS上只支持OpenGLES2.0, GLSL支持的最大指令数量就不一样。Unity上GLSL的片断Shader支持64条指令。
还有计算精度是不一样,ES2.0不支持双精度,颜色有差别是很正常的。
另外21万多变形太多,很难想象在Ipad上能否流畅运行。如果不需要显示车内装饰细节的话,还有很多优化空间。
PS2上的GT赛车也就3万就很强悍了。
上一篇: 圣诞前夕Groovy1.5.1发布
下一篇: 金蝶徐少春:人工智能无法挑战人心