0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

After Effects の 3D レイヤーと OpenGL

Last updated at Posted at 2018-01-09

#パースペクティブ、射影変換のはなし

なぜか GLU が使えなかったので glFrustum 関数を使うことに。

AE のデフォルトカメラでは幅 1920 の場合、画角が 39.5980 度らしい。
これを踏まえると、カメラからスクリーンまでは2666ぐらいらしい。
※単位は不明だが気にしないことにする。

glFrustum 関数 は以下の引数がある

void glFrustum(
	GLdouble left , GLdouble right ,
	GLdouble bottom , GLdouble top ,
	GLdouble znear , GLdouble zfar     
);

zfar は何でもいいけど、大きすぎると荒くなりそうなので 10000 ぐらいにした。

left, right, bottom, top は znear における指定らしいので、
znear を自分で決めた上で計算する必要がある。0 はだめ。なにも出ない。

AE のデフォルトカメラは中心にあるので 幅、高さの半分で
left と bottom がマイナスにした値、right と top はそのままの値になる。

先出の条件の場合、幅 1920 で、2666 ぐらいらしいので znear を26 としたらそれぞれ 100 で
割ればそれっぽい表示になる。たぶん
タンジェントとアスペクト比を計算した方が正確なのかな。それをしてくれるのが GLU のgluPerspective 関数だと思う。

#おまけ
回転は Xをマイナスにして、XYZ の順でした。見た目あわせなので根拠はありません。環境によると思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?