頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


ARKitで眼球をオブジェクトとして描画してみる

Metalでテクスチャを持つdaeファイルを描画する

↑これに関連する話。

ARKitのARSCNFaceGeometryで、
{
    ARSCNFaceGeometry *arscnFaceGeometry = [ARSCNFaceGeometry faceGeometryWithDevice:device fillMesh:NO];
}
ARSCNFaceGeometryオブジェクトを作成する時にfillMeshをNOにすると両目と口の部分のメッシュを描画しない顔になる(今まではfillMeshをYESにして肌などと同じようにiPhoneのフロントカメラ画像を描画していた)。
そこで、fillMeshをNOにし目の部分を”くり抜いて”、顔メッシュの向こう側に眼球のオブジェクトを置くとそれらしく見えるのか?を試してみた。

ちなみに眼球の位置はARFaceAnchorクラスのrightEyeTransformなどで取得できる。

原点を示す図

↑リファレンスによると、取得できるsimd_float4x4型のマトリックスは眼球の中心基準とのこと。顔の中心(ARFaceAnchorのtransform)からの相対位置になる。

眼球のオブジェクト

↑ということで代わりになる眼球のオブジェクトをBlenderで作成。というかManuelBastioniLABから借りたもの。

↑テスト動画。

なんとなくいけてるように見えるかもしれないが、そういうところだけをアップしていると言った方がいいかも。
くり抜かれた目の部分が実際のとずれるので不自然になることがあり、使えないかなあという印象。唇の時と同じだ。
あと、rightEyeTransform/leftEyeTransform で「寄り目」が正しく取得できず、目が中央に寄らない。
スポンサーサイト




<< ヨーグルトメーカーでR-1複製200回成功  TopPage  Metalでテクスチャを持つdaeファイルを描画する >>

コメント


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

トラックバック

トラックバックURL
https://ringsbell.blog.fc2.com/tb.php/1297-405a4f8d




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