質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1400閲覧

3D ローカル座標とそれの座標変換にいて知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/09/01 02:36

3D空間を2Dのモニターつまり画面に表示させるには、三つの座標変換あると思うのですがサイトや書籍によって説明が少し違っていてその意味をまとめたいです

オブジェクト座標(ローカル座標)

とはどいう意味意味なのでしょうか?、ワールド空間はそのオブジェクトがワールドのどこに居るかですがオブジェクト空間とはなんでしょうか?

ワールド座標、ビュー座標、プロジェクション座標の意味は調べましたので大丈夫です。
参考サイト: https://yttm-work.jp/gmpg/gmpg_0002.html (ローカル座標をワールド座標に変換する等の説明がありますがローカル座標が何かについての説明はないので...)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

オブジェクト座標(ローカル座標)

いや,単なる(便宜上の)「ローカルな座標系」ってだけだと思うのですが…

例えば,オブジェクトのモデルを作ろうとかいう場合,各頂点の座標等をどんな座標系で考えるのか?
きっと個々のオブジェクト毎に個別な座標系を考えたいでしょう.
(例えば,オブジェクトの「中心」を原点とした座標系で,X,Y,Zが-1~1の中に納まるサイズでモデルデータを作る,とか)

で,そのように何らかの座標系の上で用意されたデータを,何らかのプログラムで使おうとしたときに,
そこにはあなたの言う「ワールド空間」というそのプログラム特有の3次元空間があって,そのどこかに何らかの向きや大きさでモデルを配置することになる.
それにはきっと座標変換が必要になるでしょう.

投稿2020/09/01 02:58

fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2020/09/01 03:03

何か1つ主となる座標系(? 大抵,それが「ワールド座標系」とか呼ばれると思う)があるとき,それ以外の座標系は「ローカル座標」と呼べると思う. その中で,回答に書いた例のような,オブジェクト固有のローカルな座標系のことを特にオブジェクト座標系と呼ぶ. カメラを基準にした座標系なら「カメラ座標系」と呼ぶ.これも「ワールド座標系」側から見えれば,ローカルな座標系である.
fana

2020/09/01 04:23 編集

> 三つの座標変換ある のように,何か固定的なルールがあるかのように考えない方がよいと思う. 目的は最終的な絵(2次元)を作ること(でしょう?). で,それはどんな絵なのか?→「カメラ(視点)の真正面の物は絵の中央に,カメラから右斜め前にある物は絵の中で中央よりも相応に右側に…」ってなるような絵にしたい. ↓ であれば,とりあえず カメラ座標系(3D)と絵の座標系(2D) との間の変換だけがあれば良いわけだ. (ある物が画像のどこに写るのか?というのは,その物がカメラから見てどっちの方向にあるのかによって定まるのだから.) つまり,3次元の全てのデータをカメラ座標系の上で扱えばそれで済む. なのに,それ以外の座標系をわざわざ導入して, 「それ以外の座標系←→カメラ座標系←→絵の座標系」 みたいな形を考えるのは,「それ以外の座標系」の上で物事を考えることに何らかの利便性があるから. それだけのことなので,必要に応じて 「さらに別の座標系←→それ以外の座標系←→カメラ座標系←→絵の座標系」とか,まぁ,好きにやればいいわけ. その形の1つが 「オブジェクト座標系←→ワールド座標系←→カメラ座標系←→絵の座標系」みたいな形.
退会済みユーザー

退会済みユーザー

2020/09/01 04:55

ありがとうございます。質問ですが3dの座標変換とは ローカル座標 -> ワールド座標 -> ビュー座標 ->プロジェクション座標で画面表示でいいのでしょうか?
fana

2020/09/01 05:12

なんというか,それで良いならそれで良い,としか. あなたのゴール次第. (あなたが何を把握すれば何かをするのに十分な状態になるのか,というのは私にはわからないので) 例えば,2D側の部分の変換も事細かに 投影面上の座標("正規化画像座標"がどうのとか言う場合もある) → その一部分を切出し("ビューポート"がどうのとか.この辺りで単位がpixelな世界へ) → 表示するウィンドウのクライアント領域座標とか …等々書かれているような説明もあるだろうし.
fana

2020/09/01 05:28 編集

> ローカル座標 -> ワールド座標 -> ビュー座標 ->プロジェクション座標 これは, 「"ワールド座標系"という何か基準となる座標系を1個考えて,その上でオブジェクトやカメラの位置や姿勢を考えるぜ」 という話であろう.それが良い(やりやすい,考えやすい)ならそうすればいい. 既にコメントしたように,"ワールド座標系"なんてものをわざわざ特別に考えない("カメラ座標系"を3次元世界の基準とする)方が考えやすい世界も有り得る. 自前で仕組みを構築しているならば好きにやればいいし,何らかのライブラリなりがそこらへんに決め事をしているならばそれに従えばいい.
退会済みユーザー

退会済みユーザー

2020/09/03 01:12 編集

誤字です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問