ditor中:修改shader并保存时立即编译。
Runtime下,无论哪个平台,都是在进入场景时加载shader object内容到内存,但是首次实际调用渲染时才编译,编译完成之后会cache下来。
有两种优化方法:
1 调用ShaderWarmupAllShaders(),自动编译该场景中用到的所有shader。该方法在Unity5中已经废弃。
2 在项目设置的GraphicsSettings中,可以导出ShaderVariantCollection,并在Preloaded Shader中导入,这样的话就可以在载入场景时一并编译需要预加载的shader,这样的优化在移动平台上用得比较多。
原理上基本是一种
都是把2D图像映射到一个平面网格上,然后让这个网格始终面向摄像机,同时摄像机的投影模式为平行投影(没有近大远小)
实际实现上有挺多的,比如可以在3D模式下自己实现上述原理,还可以使用assetstore的一些2D游戏制作插件,还可以使用unity3d自带的2D模式制作。
以上就是关于在Unity 3D中,shader是何时编译的,在何时加载入显存中的全部的内容,包括:在Unity 3D中,shader是何时编译的,在何时加载入显存中的、求教大神,unity小游戏怎么简单和数据库连接、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)