トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_shader_20_30

命令数の上限


デフォルトでShaderの命令をどんどん記述していくと、

Shader error in 'Custom/xxx': Program 'frag_surf', Arithmetic instruction limit of 64 exceeded

というエラーが出てShaderが実行できないことがあります。

http://docs-jp.unity3d.com/Documentation/Components/SL-ShaderPrograms.html

より、
デフォルトの「#pragma target 2.0」の指定の場合は、頂点シェーダーで256命令、フラグメントシェーダーで32テクスチャ+64演算のような制限があるようです。
「#pragma target 3.0」とすれば命令数の上限は上げることができます。

Nexus7でOpenGL ES 2.0で確認したところ、「#pragma target 3.0」でも動作するのを確認。