您当前的位置: 首页 > 

VT LI

暂无认证

  • 8浏览

    0关注

    126博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

lwrp下自写shader在pc端崩溃的原因及解决办法

VT LI 发布时间:2019-04-23 16:53:39 ,浏览量:8

解决办法:

在lwrp下的shader,要传递的参数需要用

CBUFFER_START(UnityPerMaterial)

CBUFFER_END

包起来。

类似这样:

CBUFFER_START(UnityPerMaterial)

uniform half4 _MainTex_ST;

CBUFFER_END

 

这是因为在pc平台下用的是dx版本的显卡,DirectX10中新引入的constant buffer,在DX10中,constant存放于常量缓冲区中,每个常量缓冲区由 4096个常量寄存器组成,共有16个常量缓冲区。这样就可以根据constant更新的频率来组织,可以提升性能。lwrp应用了该优化属性,所以需要用cbuffer来让变量放到常亮缓冲区,这样lwrp才能获取到我们的数据。如果不标记为cbuffer就相当于管线里获取不到相关的数据的定义就会崩溃。另外的,Constant buffer会为 两种:cbuffer,tbuffer。注意tbuffer是并不是用来存储纹理的,而是指可以像纹理那样来访问其中的数据,对于索引类数据有更好的性 能。

关注
打赏
1649603425
查看更多评论
立即登录/注册

微信扫码登录

0.0353s