読者です 読者をやめる 読者になる 読者になる

peroon's diary

game programmer

SetPass Callが増えないシェーダをShaderForgeで作る

自作シェーダで同じマテリアルを付けているはずなのに、それをつけたマテリアルが増えるたびにSetPass Callが増えていた。調べてみると、ShaderForgeでUnlitで作るとSetPassは増えないが、Lit(Basic)で作ると増えるようだ。Unlitシェーダにノードを足していったところ、Light Dirを使ったところでSetPassが増えるシェーダになっていた。それを回避したもの、たとえば下記のシェーダであれば、SetPassは増えない。

f:id:peroon:20160630192343p:plain

f:id:peroon:20160630192355p:plain

追記:モデルによるのか調査中だが、MaterialのシェーダをStandardシェーダに変えたらSetPass Callが増える場合と、増えない場合がある

追記2:PointLightを置いているとStandardShaderマテリアルを付けたオブジェクトが増えるごとにSetPass Callも増える