FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


SCNProgramのシェーダー記述を shader modifiers で置換えできる?

shader modifiersでバグ回避
↑この絡みでshader modifiersをいじってたんだけど、、、

従来の vertex shader と fragment shader を使っていた(SCNProgramを使うやつね)のを、shaderModifiersに置き換えたい。
それぞれ
vertex shader に関しては SCNShaderModifierEntryPointGeometry
fragment shader に関しては SCNShaderModifierEntryPointFragment
で置き換えられるのかな、と思ってたけどどうもそんな感じではない。

SCNShaderModifierEntryPointGeometry での計算結果を
SCNShaderModifierEntryPointFragment に渡す、というのができそうにない。

ただ例えば phong shader を作ろうとしたら、計算に必要な法線や視線ベクトルどうすんのよ!となるけどそんな場合には SCNShaderModifierEntryPointSurface ってのがある。
SCNShaderModifierEntryPointSurface - SceneKit | Apple Developer Documentation
↑本家のリファレンス。
これだと
vec3 view;
vec3 position;
vec3 normal;
などなどたくさん使えるのがある(フラグメントでの法線なんかがすでにある!)のでこれだけで大抵のことはできそう。


ただ、自分がやってたのは vertex shader に頂点ごとのあるデータを与えて、その計算結果を fragment shader に渡して描いてたんだが、こういう処理は shaderModifiers じゃできそうにない、多分。もし可能なら方法教えてください!

<< Blenderのマテリアル・テクスチャ設定画面がいつもと違う  TopPage  SCNPhysicsSliderJointで一瞬止まるのが許せない >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1172-d58d6a17




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad