kanonji
kanonji

最近のノート
シェーダーを少しずつやっていきたい 進捗中
シェーダーも取り組みたいなと思いつつ、他にもやりたい事があって順番にと思ってやってたが、ついつい思い付きでなんかやり始めちゃったりして進まないので、もういっそやり始めてしまう事にしたプロジェクト。
ユーザーページ

シェーダーを少しずつやっていきたい 進捗中

シェーダーも取り組みたいなと思いつつ、他にもやりたい事があって順番にと思ってやってたが、ついつい思い付きでなんかやり始めちゃったりして進まないので、もういっそやり始めてしまう事にしたプロジェクト。

2021年4月14日作成 (282日め)

月メニュー

2021
4
4
/ 2021

まだ全然シェーダー書いてないけど、構造の理解は進んでいるはず。そろそろ実際に書いていくフェーズに入りたい。

Color()はShaderLabのコマンドで、ここに書いてあった。完全に想像だけど、Unity5の時代で既にlegacy扱いなので、初期UnityはShaderLabでshader書いてたけど、恐らく表現力不足とかでCGPROGRAM~ENDCGでCg/HLSLを内包する形に変わったとかなのかもしれない。

あと、恐らく最小で動くshaderがこれだと思われるんだけど、CGPROGRAM~ENDCGを書いてないからこれはCg/HLSLは使わずShaderLabで完結してるって事になるのかな?Color()はShaderLabの関数って事になると思うけど、Cg/HLSL使わず出来る事が他にもあるのかどうか、ShaderLabの関数リファレンスとか欲しい

結局、検索しながらUnityのshaderを書いて覚える事に。ふんわり知ってた事の確認もしながら。 CGPROGRAM~ENDCGがCg/HLSLで、shader全体はShaderLabという言語らしい。そういえばShaderLabって単語は見覚えがある。surface shader or vertex+fragment shaderの区別は#pragmaで書く事で決まるらしい。

KodeLifeで色々書きながら学習するんであれば、ネットに情報量が多いであろうGLSLでやってった方が良さそうかな。まぁでも、当てにしてた教科書的なリソースが活用できないなら、むしろUnityでCg/HLSLを書いて覚えた方が良いか。shaderを使いたい場所がとりあえずはUnityなわけだし。

KodeLifeがGLSLだけじゃなくHLSLも書けるらしい。なので、Unityのshader関連のリソースを使ってKodeLifeで手を動かして学習する方法に変えようと思ったが、UnityはCg/HLSLであって、少なくとも初心者から見たら違うものかも。既に理解してる人なら、多少の読み替えあるあがほぼ一緒なのかもだけど。

Panda3dのビルドは諦め、3D game shaders for beginnersのReference Framesから先をとりあえず読んでみたけど、example codeにp3d_から始まるPanda3d由来の変数が割と出てきて、Panda3dが動かないと実際にshader動かしてみるのは無理そう。読むだけでも参考程度にはなるけど

KodeLife、起動直後は全面に描画されててどんな頂点がそこにあるのか分からなかった。VJみたいな事をするなら良いのかもだけど、Unityからshaderかじり始めた自分としては頂点が分からないと理解の妨げになる。色々探ったらmeshを差し替える事が出来た。何故かBlenderで見るmeshより縦に潰れてるけど

3D game shaders for beginnersをやり始めたんだけど・・・最初のページであるSetupにはsetupらしいことが書いて無くて🤔ってなり、 次のBuilding The Demoで、これがデモの描画に使うpanda3dのsetupがはじまるも、これの導入で躓いてる。うーむ…

教科書的なリソースとしてはこの辺りかなぁ。The Book of Shadersは名前からシェーダー全般かと思いきやfragment shader特化みたいだから、3D game shaders for beginnersが良さそうかな? 積読にshader系技術同人誌があるからそれでもいいかも。

4
/ 2021
April

コメント

0 / 1000

※投稿者を公開したい場合はログインしてください。

このノートを共有

ツイート