Skip to content

v1.0.43 Unity-NativeモードでのGPUインスタンシングについて(Unity2017系) #52

@MasamiYitsuse

Description

@MasamiYitsuse

Ver.1.0.43で、Unity-NativeモードでのGPUインスタンシングについて修正を行いました。
※Ver.1.0.42が本件の最初の修正更新となりますが、更新内容に問題があり、「GPUインスタンシングで正常に出力されない」「ローカルスケールの計算に問題があり正常に出力されない」などの問題がありましたため、Ver.1.0.42をご使用の方はVer.1.0.43へのバージョンアップを行うようにしてください。

ただ、SS6PUのUnity-NativeモードでのGPUインスタンシングは、Unity2018を中心に対応している状態です。

Unity2017でGPUインスタンシングを使用する場合については、Ver.1.0.43に更新した上で、お手元でのシェーダを下記に従って書き換えていただければ、Unity2017でもGPUインスタンシングが可能になるはずです。

※恐らくは、Unity2017.1~2が書き換えの対象となるはずです(Unity2017.3~4については、そのままで利用できる可能性が高いです)。2017.1~2ではVer.1.0.43をそのまま使用しようとしても、マテリアルの設定をGPUインスタンシング使用に変更した段階で、シェーダのコンパイルでエラーが発生します。
※ただ、シェーダコンパイラが例外を起こしたりして、正常にコンパイルできないような場合については、Unity2017でのGPUインスタンシングの使用は控えるようにしてください。


該当ファイル: Assets/SpriteStudio6/Shader/Base/Shader_Data_UnityNative.cginc

  • 9行目「UNITY_INSTANCING_BUFFER_START(PerDrawSprite)」を「UNITY_INSTANCING_CBUFFER_START(PerDrawSprite)」に変更
  • 24行目「UNITY_INSTANCING_BUFFER_END(PerDrawSprite)」を「UNITY_INSTANCING_CBUFFER_END」に変更
  • 26行目以降の「UNITY_ACCESS_INSTANCED_PROP」を使用している箇所で、「PreDrawSprite, 」を削除する(引数を1つにする)

となります。


本修正については、主にUnity2017.3で入ったGPUインスタンシング関係での記述変更にともなうもので、SS6PU Ver.1.0.41以降で行ったGPUインスタンシング関連の修正をUnity2018.2を基準として行ったために(2017で)追加修正(過去バージョン記述への変更)が必要となっております。

お手数とご不便をおかけいたしますが、2017を使用されている皆様においては、何卒ご容赦のほどお願いいたします。

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions