纳金网

标题: 加载人物时CPU端shader.Parse消耗过大,有什么解决方法吗? [打印本页]

作者: herry7x    时间: 2013-10-9 15:14
标题: 加载人物时CPU端shader.Parse消耗过大,有什么解决方法吗?
在使用自己写的shader时,动态在游戏中创建一个角色。CPU端会出现一个明显消耗过大的调用Shader.Parse。哪位大神知道如何才能解决这个问题啊?

作者: herry7x    时间: 2013-10-9 16:55
就是有没有什么好方法可以预编译shader,能让动态加载资源时不再编译shader
作者: saviosun    时间: 2013-10-9 17:22
创建一个xx.shader的文件,把shader代码写在里面不行吗?
还是你希望动态合并shader 碎片,那就没什么办法了。
作者: herry7x    时间: 2013-10-9 17:32
saviosun 发表于 2013-10-9 17:22
创建一个xx.shader的文件,把shader代码写在里面不行吗?
还是你希望动态合并shader 碎片,那就没什么办法 ...

我使用的是assetbundle加载资源的方法,shader是连同模型一起包含在一个assetbundle资源包中的。在游戏加载assetbundle时,shader也跟着一起解压出来,其中就会调用到shader.Parse方法,对shader进行解析,但每次解析的耗时都很大,游戏中就会卡顿一下。不知道有没有什么好的解决方法。
作者: ldragon    时间: 2013-10-10 08:54
关注一下大神快来
作者: saviosun    时间: 2013-10-10 09:18
herry7x 发表于 2013-10-9 17:32
我使用的是assetbundle加载资源的方法,shader是连同模型一起包含在一个assetbundle资源包中的。在游戏加 ...

理论上说在打bundle得时候shader会根据你指定的平台编译的,在bundle里的是编译过的shader。
我曾经测试过这块,用ios打包的自定义shader甚至在editor里都无法正确显示。
作者: nts    时间: 2013-10-13 11:21
shader是移动平台的痛
作者: dihcro    时间: 2013-10-24 10:27
这个问题一下子说不清楚啊。。。
你可以先看一下unity 2013 Internal Unity Tricks and Tips(Youtube)
他建议使用Pix for Windows,Intel GPA,VS grphics debugging来debug graphic




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5