FC2ブログ

頭と尻尾はくれてやる!

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


SceneKitのshaderModifiersで輪郭線を描く

オブジェクトの輪郭線を描くと言えば真っ先に出てくるのがこの少し大きくしたオブジェクトの裏面表示、という手法でしょうか。
今までやったことないのでSceneKiteでやってみた。

オブジェクトを二つ作成。positionは同じ。
{
    SCNMaterial *material = outlineNode.geometry.firstMaterial;
    NSAssert(material, @"material is nil");
    material.cullMode = SCNCullModeFront;//裏面表示
    material.shaderModifiers = @{
                                 SCNShaderModifierEntryPointGeometry :
                                     @"_geometry.position.xyz += _geometry.normal.xyz*0.1;" };
}
↑法線方向に少し大きくするshaderModifiersの記述。これだけでOKって簡単すぎるやろ!

輪郭線の比較

↑左側は単にSCNNodeオブジェクトのscaleプロパティをいじっただけ。やっぱり右側の法線方向に大きくした方が均一になって美しい(コード書いてないけど裏面部分の色をグレーっぽくしてる)。

<< Kerasで係数の保存と読み込み  TopPage  daeファイルから作成したオブジェクトのcullMode設定ができない >>

コメント


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

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1177-6767109a




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

FC2Ad