今回はSceneKitの2回目の記事として、10.9から新しく追加された、
「shaderModifiers」
というもので遊んでみましょう。
これはどういう機能かというと、
SceneKitの既定のシェーダーに、GLSLコードを挟み込んだり、上書きしてしまうものです。
数種類の定数によって、どのように書き換えを行うのか?を定義します。
今回はわかりやすく、WWDC2013で紹介されている、
SCNShaderModifierEntryPointGeometry
を試してみます。
これは頂点シェーダーを通過する際に、計算を挟み込むことができるものです。
使える変数としては、
ヘッダーファイルに以下のような記述がありました。
| struct SCNShaderGeometry {
| vec3 position;
| vec3 normal;
| vec4 tangent;
| vec2 texcoords[kSCNTexcoordCount];
| } _geometry;
|
| Access: ReadWrite
| Stages: Vertex shader only
今回は、これを使って、
「平面をねじる」
エフェクトにチャレンジします。
続きはこちらでどうぞ