• 技术文章 >常见问题

    pso缓存是什么

    藏色散人藏色散人2021-11-24 11:58:00原创59

    pso有两种意思,分别是:1、指工艺认证“Process Sign-Off”,此为客户对供应商/代工厂进行的生产工艺流程的审核;2、指微粒群优化算法。

    本文操作环境:Windows7系统、Dell G3。

    pso缓存是什么?

    PSO 一是指工艺认证(Process Sign-Off),此为客户对供应商/代工厂进行的生产工艺流程的审核;二是指微粒群优化算法。

    554ce92193e04f4797f3e7626288e3f.png

    当Link完了之后,生成一个program,我们会拿到这个data,把它存下来,存在一个文件里。我做了一个虚拟的文件系统,这个虚拟文件的key就是那段program的data。存下来以后,当第一次运行游戏时这个文件是空的。

    每次都会Link,然后存进去。当第二次运行的时候,情况就会变好了。以前曾经Link过的,我直接在文件里找到,通过这个Program加载进来,也不需要去设置Shader,也不需要Link,直接就可以用了。

    第三个是多个PSOcachefile。UE4自己有一个功能是对PSO的缓存,原来是叫Shadercache,后来改成pipelinecache。他只有一个文件,我们改进了这个功能。在录的时候,我们可以录很多个文件。

    比如我们在打Boss战的时候,那个Boss以前从没出来过。他一出来,不管你是Link还是怎么样,反正他会卡顿。因为就算是你Link了,他往显卡送的那一刻,往镜头送那一刻,他也会有一定的时间开销。然后当那个Boss从来没出现过。

    一出来就卡一下,这个效果不太好。还有就是我们游戏运行Loading完了之后,我们需要播一个CG,那个CG有很多也是游戏不太用到的资源,它也会卡一下。我们还是想用引擎的PSO功能,记录的功能,然后把它预热一下。

    但是一个不够,尤其是出现怪物的时候。然后我们就做了一个录不同的PSO的cache。PSOcache需要录渲染所有的参数,Shader,各种参数都录下来。录下来之后当你需要播这些、需要画这些文件的时候,它会在后台给你把这些东西跑一遍。

    这样的话,当你真正渲染模型的时候就不会卡顿,我们做了多个这样的文件。比如说,在这个Loading条结束的时候,我们需要播CG,那在Loading条结束的时候,就加载这个场景所对应的记录好的文件。当这个CG播放的时候就会非常的平滑。

    没有一丝的卡顿。对于boss也是这样,快到播boss的时候,我们也在后台把这个cache文件加载进来,做一下这样的预热,就会达到非常好的平滑效果。今天的分享大概就是这些,非常感谢。

    更多相关知识,请访问常见问题栏目!

    以上就是pso缓存是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:pso
    上一篇:某存储芯片的地址线为24条,则该内存条的容量是多少? 下一篇:id密码由什么组成
    VIP会员

    相关文章推荐

    • 详解如何使用ETag和条件标头进行缓存• 详细介绍让网站飞起来的浏览器缓存技术• 你值得了解的HTTP缓存机制(代码详解)• 浅析Vue中入口缓存的问题(代码分享)• 浅析Redis缓存中的8种淘汰策略

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网