2016/04/01(金) [n年前の日記]
#1 [proce55ing][processing] Processingの画角がよく分からなくてハマっていたり
Processingの画角が、よく分からない。
やりたいことは…。ProcessingのP3Dモード(3DCG描画モード)で、ウインドウサイズとピッタリ同じ大きさになるポリゴンを配置したい。そのポリゴンにテクスチャを貼って、2D的な背景描画をしたいわけで。
画角が分かれば、どのぐらいの大きさのポリゴンをどこに配置すればウインドウを覆い隠せるか、求められるはず。
Processingの場合、 _perspective() という命令を使えば、画角、画面比率、近い面までの距離、遠い面までの距離が指定できるらしい。
デフォルトでは、画角は π/3 ラジアン。πラジアン=360度だから、π/3 ラジアンなら、60度のはず。
画角は、 _水平、垂直、対角線 の画角があり得るけど、Processingの場合は垂直方向の画角となってるらしい。
それらを踏まえてポリゴンの大きさを計算して表示してみたのだけど、これがウインドウサイズと一致してくれない…。何が計算間違いをしてるらしい。
やりたいことは…。ProcessingのP3Dモード(3DCG描画モード)で、ウインドウサイズとピッタリ同じ大きさになるポリゴンを配置したい。そのポリゴンにテクスチャを貼って、2D的な背景描画をしたいわけで。
画角が分かれば、どのぐらいの大きさのポリゴンをどこに配置すればウインドウを覆い隠せるか、求められるはず。
Processingの場合、 _perspective() という命令を使えば、画角、画面比率、近い面までの距離、遠い面までの距離が指定できるらしい。
デフォルトでは、画角は π/3 ラジアン。πラジアン=360度だから、π/3 ラジアンなら、60度のはず。
画角は、 _水平、垂直、対角線 の画角があり得るけど、Processingの場合は垂直方向の画角となってるらしい。
それらを踏まえてポリゴンの大きさを計算して表示してみたのだけど、これがウインドウサイズと一致してくれない…。何が計算間違いをしてるらしい。
◎ ちょっと分かってきた。 :
ポリゴンの縦幅の半分を求める際、距離 * sin(fov / 2.0) で計算してたけど、コレが間違ってた。距離 * tan(fov / 2.0) じゃないとおかしい。何故に自分は、そんな間違った計算を…。
また、前述の perspective() の解説ページは、Processing 1.x時代の内容のせいか、スクリーンまでの距離がとんでもなく大きい値になってた。手元で使ってる processing 3.0.2 とは違ってるらしい。 _perspective() \ Language (API) \ Processing 2+ には、視点からスクリーンまでの距離は、float cameraZ = (height/2.0) / tan(fov/2.0); と書いてあるけど、こちらのほうが正しい。
後は、テクスチャのUV座標を求めてスクロールさせれば…。しかし、360度ループするような式ってどう書けば…。水平画角が60度ならループできたけど、本来は 60度 * (width / height) で1画面分スクロール、になるはずだよな…。
また、前述の perspective() の解説ページは、Processing 1.x時代の内容のせいか、スクリーンまでの距離がとんでもなく大きい値になってた。手元で使ってる processing 3.0.2 とは違ってるらしい。 _perspective() \ Language (API) \ Processing 2+ には、視点からスクリーンまでの距離は、float cameraZ = (height/2.0) / tan(fov/2.0); と書いてあるけど、こちらのほうが正しい。
後は、テクスチャのUV座標を求めてスクロールさせれば…。しかし、360度ループするような式ってどう書けば…。水平画角が60度ならループできたけど、本来は 60度 * (width / height) で1画面分スクロール、になるはずだよな…。
[ ツッコむ ]
#2 [anime][neta] 家族全員がウルトラマンだったら
「お父さん! 食事中のウルトラダイナマイトはやめてちょうだい!」
どうにもコントしか思い浮かばない…。
娘が彼氏を家に連れてきて思わずウルトラダイナマイトしちゃうお父さん。
タンスの角に小指をぶつけてウルトラダイナマイトしちゃうお父さん。
寿司を食べたらワサビが強すぎてウルトラダイナマイトしちゃうお父さん。
自分が思いつくソレは全部爆発オチじゃないか…。ダメだこりゃ。
まあ、比較的真面目に作るとセブンとゼロのようなソレになると思うので、既に設定としては公式で色々あるというか。そもそも、ウルトラの父、母が居るわけで。
結婚という社会制度があるのか、一夫一婦制なのか、一夫多妻・一妻多夫制なのか、そのあたり妄想していくと眠れなくなってきますけど。ウルトラマンキングあたりは、お妾ウルトラレディーが何人居てもおかしくなさそうだし。「私はウルトラ○○! ウルトラマンキングの第八夫人よ!」と名乗りを上げて悪性宇宙人と戦ったりしそう。ウルトラマンキング子息軍団とかあったりして。聖闘士星矢っぽい。
どうにもコントしか思い浮かばない…。
娘が彼氏を家に連れてきて思わずウルトラダイナマイトしちゃうお父さん。
タンスの角に小指をぶつけてウルトラダイナマイトしちゃうお父さん。
寿司を食べたらワサビが強すぎてウルトラダイナマイトしちゃうお父さん。
自分が思いつくソレは全部爆発オチじゃないか…。ダメだこりゃ。
まあ、比較的真面目に作るとセブンとゼロのようなソレになると思うので、既に設定としては公式で色々あるというか。そもそも、ウルトラの父、母が居るわけで。
結婚という社会制度があるのか、一夫一婦制なのか、一夫多妻・一妻多夫制なのか、そのあたり妄想していくと眠れなくなってきますけど。ウルトラマンキングあたりは、お妾ウルトラレディーが何人居てもおかしくなさそうだし。「私はウルトラ○○! ウルトラマンキングの第八夫人よ!」と名乗りを上げて悪性宇宙人と戦ったりしそう。ウルトラマンキング子息軍団とかあったりして。聖闘士星矢っぽい。
◎ ウルトラマンと言えば。 :
個人的には、「ウルトラマンはテラフォーミング用人工生命体の成れの果て」とか、「ウルトラマンの肉体はナノマシンの集合体」とか、そういう設定が好みなのですが。使い道が無いよな…。
[ ツッコむ ]
以上、1 日分です。