夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

GitHubCopilotでShaderを書く

本日はUnity枠です。

先日GitHub Copilotを導入しました。

redhologerbera.hatenablog.com

今回は応用してShaderを書いていきます。

〇GitHub Copilotが対応する言語

GitHub Copilotは現時点で以下の言語に対応しています。

・Python ・JavaScript ・TypeScript ・Ruby ・Go ・PHP ・C# ・C ++ ・CSS ・HTML ・SCSS ・Java ・Swift ・Kotlin ・Objective-C ・Shell ・PowerShell

UnityではC#を使用してコーディングを行うためこちらは対応していますがShaderはShaderLabと呼ばれる言語の中でHLSL文を使用して記述しています。

今回はShaderでGitHub Copilotの支援が受けれるのかを試していきます。

〇結論

結論ですが、UnityのシェーダーでGitHub Copilotの支援を受けることはできました。

おそらくShaderのCG/HLSL はC言語の派生であり、支援対象になっていると思われます。

しかしShaderLab部分の支援も行われており例えばプロパティブロックにコメントでノーマルマップと記述すると簡単にノーマルマップをプロパティに追加できました。

また一般的な構文だけでなくセマンティクスなどの予測変換も行えます。

コメントを書くことでコードを生成することもでき、例えばcolの最大成分が0.5以下の場合colを黒(0,0,0,1)にするとコメントを書くことで次のように支援を受けることができます。

しかしながら筆者であれば以下のように記述するためC#に比べ精度は低いように感じられます。

                    col.rgb =max(col.r, max(col.g, col.b)) <= 0.5?  col.rgb:0;  

といってもShaderの場合IDEの支援が比較的受けづらい現状があったためこれだけでも非常に生産性が上がるといえます。

本日は以上です。