タグ

openGLとカメラに関するedo_m18のブックマーク (2)

  • 空間とプラットフォームの狭間で - Unityの座標変換にまつわるお話 -

    はじめに はじめまして、ドリコムでエンジニアをやっているイシカワと申します。 普段はネイティブアプリケーション向けに共通ライブラリの開発を担当していて、最近はUnity開発にも関わっています。 今年からUnityを日常的に使うようになり、これまで敷居が高かった3Dアプリ開発が自分にとってぐっと身近な存在になりました。 エディタを起動すれば、すぐさま開発に集中できる環境を用意できます。ゲーム開発の民主化、万歳。 しかし、カッコイイ視覚表現を追求しようといざグラフィックスまわりのコードを書き始めると、そこにはマルチプラットフォーム対応によって生まれた落とし穴が潜んでいます。 この記事では、3Dプログラミングの基礎である「座標変換」において、Unity開発者がつまずきやすい問題を紹介します。 数ヶ月前の自分をふりかえり「こんなまとめ記事が欲しかった・・・」という視点で書いてみました。 テーマの都

    空間とプラットフォームの狭間で - Unityの座標変換にまつわるお話 -
  • クリッピング座標 - code snippets

    カメラ座標に投影行列を施して得られる座標系である。 クリッピング座標の原点はカメラ位置。 変換後のクリッピング座標系では同次座標を用いた視体積内外の 判定が容易になるように射影行列を決定する。 クリップ座標はまだ、ユークリッド座標じゃなくて同次座標です クリッピング座標ではクリッピングが行われる。 どんな風にして行われるかというと、wより大きか小さいかで行われるのだ。 クリッピングは同次座標 w を用いて (1) という条件で行われる この条件を満たない頂点は捨てられる。 条件に満たない頂点を捨てた後、 クリッピング範囲にぴったり沿うように新しい辺を作る。 透視投影の場合 錐台の形をしていたクリッピング範囲は、±1の範囲の立方体に変形する。 カメラ座標系は右手座標系だけど、 正規化デバイス座標では左手座標系になってることに注意。 ちなみに、OpenGLでは普段は右手座標系だ。 原点にあるカ

    クリッピング座標 - code snippets
    edo_m18
    edo_m18 2017/05/16
    “glFrustum()は、nearとfarで正の値しか受け付けないからだ”
  • 1