タグ

3Dと3dに関するlike_futsalのブックマーク (9)

  • 図解でわかる!ARKitのtransform理解のための4×4行列の説明 - Qiita

    先日ARKitのための3D数学という記事を書きました。その中でも言及していますが、今記事では、transformを理解するために、4*4行列だけにフォーカスして説明していこうと思います。 僕も最初はよくわかっていませんでした。しかし今では理解できていて、座標変換するときに4*4行列を使うことの便利さを痛感しています。 4*4行列とはなんなのか 行列です。 この行列をベクトルに掛けると、座標を変換することができます。 こんなかんじの行列のイメージだけまずは覚えてください。 3D座標系を理解しよう 3D空間上にx軸とy軸とz軸があって、その空間上の点が(x, y, z)という座標系で表されることは中学高校の数学をやっていれば理解できるでしょう。 以下の図では、xがaで, yがbで, zがcで示される点Pを表しています。 しかし、座標変換を考えるときに、この点だけを考えるのは得策ではありません。

    図解でわかる!ARKitのtransform理解のための4×4行列の説明 - Qiita
  • チュートリアル3:行列

    同次座標 変換行列 行列入門 平行移動行列 単位行列 拡大縮小行列 回転行列 変換の組み合わせ モデル行列、ビュー行列、射影行列 モデル行列 ビュー行列 射影行列 行列の組み合わせ:モデルビュー射影行列 すべてを合わせる 演習 エンジンは船を動かさない。船はそこにあり、エンジンは船の周りで世界を動かす。 フューチュラマ これが全体のたったひとつの最も重要なチュートリアルです。少なくとも8回は読んでください。 同次座標 これまで、3D頂点を(x,y,z)の3つ組としてのみ考えていました。ここでwを導入しましょう。すると(x,y,z,w)というベクトルを得ます。 こうする理由がもうすぐ分かるでしょう。ただしこれだけは覚えておいてください。 w == 1 ならばベクトル(x,y,z,1)は空間での位置を表します。 w == 0 ならばベクトル(x,y,z,0)は方向を表します。 (もっと言えば、

    チュートリアル3:行列
  • 指定した場所にジオメトリを複製する SCNReplicatorNode をつくってみた in SceneKit - Apple Engine

    画像は球状にスペースシップを複製し配置したもの(ReplicatorSample3) ジオメトリを位置情報の配列をもとに複製したり、法線情報の配列から回転させるやつで 3DCG や動画編集などであるリプリケーター。 また、複製したジオメトリに対して SCNAction 設定を一括で設定することもできる。 github.com 作成した Swift File SCNGeometory+Vertices.swift SCNGeometory を extension で拡張して vertices() でジオメトリの頂点情報を SCNVector3 の配列で返し、 normals() でジオメトリの頂点情報を SCNVector3 の配列で返す。 SCNReplicatorNode.swift 位置情報の配列を元に、複製したジオメトリを配置する SCNReplicatorNode と、 テスト用に

    指定した場所にジオメトリを複製する SCNReplicatorNode をつくってみた in SceneKit - Apple Engine
  • iOS で SceneKit を試す(Swift 3) その55 - SCNNode の Pivot(原点)を変更する - Apple Engine

    SCNNode の説明で書き忘れていた Pivot について。 SCNNode には Pivot と呼ばれる原点がある。 例えば球のジオメトリである SCNSphere は Pivot が中心にあり、 移動、回転、拡大縮小を行なった場合、中心から動作が行われる。 Pivot を変更することのメリット 以前、LookAt コンストレイントを使用する際、新しいノードを作成し子のノードに X 軸方向に移動させたジオメトリ設定し、 ノードを回転させることで、X 軸方向移動分を半径として回転させていた。 ノードの Pivot を変更することで、回転の軸となる原点が変わるため、 親のノードを作成しなくても済む。 また、床が Y 軸 0 あり、 キャラクターなどがジオメトリ中央から作成されている場合、 シーン配置時に足の裏の Pivot を変更することで、 キャラクターは Y 軸 0 で地面につくことが

    iOS で SceneKit を試す(Swift 3) その55 - SCNNode の Pivot(原点)を変更する - Apple Engine
  • 回転行列⇔角度の変換 - Qiita

    カメラキャリブレーションにおいて外部パラメータである回転行列(Rotation Matrix)を扱う時, 3 * 3の行列で表したい時と,各軸(x軸,y軸,z軸)に対する角度で表したい時がある. この時の相互変換行列のメモ.間違っていても責めないでください. (回転行列⇒角度の場合は一意に求まらない場合があるので,多少の注意は必要.) ただし,今回は右手座標系において,各軸に対する変換は以下のように定めており, 回転行列R = Rz * Rx * Ryとする.(掛け合わせる順序が変わると式が変わる.) x, y, zは各軸の回転角(ラジアン)とする. x軸周りの回転行列 Rx = ( 1, 0, 0, 0, cos(x), -sin(x), 0, sin(x), cos(x) )

    回転行列⇔角度の変換 - Qiita
  • 3D、カメラ周りの勉強中なので、その情報集め。あと理解したもののメモ - Qiita

    3Dについて勉強したのでその備忘録です。 理解につながった記事のリンク集と、自分の理解した内容をメモとして残しています。 (いくつかの画像は参考にした記事から拝借しています) 実際にJavaScriptのCanvas2Dを使って簡単な自作3Dエンジンを作ってみました。 自作3Dエンジンサンプル ##参考にした記事など フォグについてのPDF 自作Quaternionサンプル いわずとしれたTHREE.js(GitHub) その60 変換行列A×BとB×Aの違いを知ろう 3Dプログラミングの基礎知識(1) 3Dプログラミングの基礎知識(5) 3Dプログラミングの基礎知識(6) 3D座標変換 自前でビュー変換行列を作成 3D座標変換(別記事) ワールド座標→スクリーン座標変換 1-9 座標変換其の四 その39 知っていると便利?ワールド変換行列から情報を抜き出そう ##4x4行列 ##行列のか

    3D、カメラ周りの勉強中なので、その情報集め。あと理解したもののメモ - Qiita
  • How to convert camera extrinsic matrix to SCNCamera position and rotation

  • swift - How to calculate the camera position from Vuforia GL matrix? - Stack Overflow

  • 3D座標変換 - ゲームプログラミングWiki

    解説 ここからが3Dの番となります。 今回は3Dの中で一番基であり、数ええられないくらいの 3D 初心者を消してきた「座標変換」について説明します。 今までの中で間違いなく強敵で、数学もどんどん出てきます。 それでも 3D ゲームを作るに当たってこの行列変換は必ず必要になってきます。 気合を入れましょう。 ↑ 座標変換って何? そもそも座標変換とは何なのでしょうか? 座標については知ってますよね。 変換といえば、文字を変えていくあの変換ですよね。 座標変換とは文字通り「座標を変えていきます。」 3Dの座標変換は数式で演算することもできますが、通常は行列を用いて変換していきます。 さて、ここでプリミティブのことを思い出してください。 ポリゴンを形成するプリミティブは全て頂点から形成されています。 ということは頂点を操作すれば図形が変わるということです。 そこで、この性質を用いてこの頂点に

  • 1