【Android】OpenGL ES入門。スクリーン座標をワールド座標に変換してタッチ位置にキューブ弾2

前回の続き 最初に前回の記事で使ったサンプルを再度貼っておきます。 https://github.com/rashu404/purobana 前回はカメラの注意点からカメラの位置のベクトルを引き算すれば、固定ではあれど画面の奥へ行くベクトルを作れるということをやりました。 今回はその続きです。 ... (Read More)

【Android】OpenGL ES入門。スクリーン座標をワールド座標に変換してタッチ位置にキューブ弾

はじめに 前回の記事でFOVのことを書いたのは、今回のためです。 3DプログラマーのためのFOV(Field Of View)入門@OpenGL ES FOVを駆使し、ベクトルの足し算引き算・正規化、アスペクト比・・・と、少しいつもより難しいことをこれから書きます。 というのも、Androidの... (Read More)

3DプログラマーのためのFOV(Field Of View)入門@OpenGL ES

  はじめに FOV、VBO、TMP、なんちゃら。と、3文字の略称横文字ばかり言われると、どうも拒絶反応を示してしまうのは私たち日本人の特性です。諦めてください。 しかしながらプログラミングをやっている人は、多少なりとも耐性がついているはず。 今回は、3D・CGを覚えていく上で必ず必要... (Read More)

AndroidとJBulletで3D物理演算入門。反発係数を加えて木箱を跳ねさせてみよう

はじめに カービィのエアライドというゲームが昔ありました。 丸っこくて、敵を吸い込むと能力が得られる奇妙な生物が主題のゲームです。なんだそれ。 街の中をプレイヤーの能力を上げるために戦うシティトライアルというモードで、破壊するとアイテムが出てくる大きなボックスが、軽くなって跳ねてしまう時がありま... (Read More)

【AndroidとOpenGL ES入門】3Dで座標系がたくさんあるワケ

  はじめに 座標系って知っていますか? 知っているならどこまで知っているのでしょう? 右手座標系から始まり、ローカル座標系、カメラ座標系、なんちゃらエトセトラ・・・。 と、Android、OpenGL ES等で名前だけは覚えている人は少なからずいるはずです。 種類がたくさんあって、座... (Read More)

OpenGL ESとJBullet入門。衝突しているのにすり抜ける、CollisionShapeとVisibleShapeの違い

はじめに 以前にnullieさんプロジェクトをいじっていて、OpenGL ESの並行移動関数であるglTranslatef()を使って立方体の移動をしようとしました。 ついでにスケーリングとかしちゃったのですが、どうもうまくいかない。 衝突形状(CollisionShape)はしっかり設定してあ... (Read More)

AndroidでJBullet入門。ステップシミュレーション(stepSimulation)とは?

はじめに AndroidとJBulletで行う物理演算入門もかなり記事がたまってきましたが、今回の「ステップシミュレーション」とか、「ステップ計算」なんて言われるものはものすごく重要です。 どのくらい重要かって、それはもうJBulletがスネてなかなか物理演算してくれないくらいです。あと、And... (Read More)

OpenGL ES入門。カメラを平行移動して電車風景っぽく【Android】

はじめに 3D空間でやりたくなってくるのは、やはりカメラ移動です。 カメラを移動していれば、とりあえずカッコいいからですね(笑) OpenGL ESでそれを実現するには?ということを今回は電車の風景っぽく、横に平行移動してみます。 どうせカメラのポジションに加算代入するんでしょ? カメラの位置... (Read More)

OpenGL ESの3Dワールドに昼と夜の時間を加えてみた【Android】

はじめに よくありますよね。ゲーム内で昼になったり夜になったり。 ちょっと前に人気になった3Dゲームのマインクラフトでも、そのシステムはうまく使われています。 昼になれば太陽が昇り、夜になればゾンビたちが村に襲いに来ます。あのドンドン扉を叩くのをやめてほしいですね。数が増えると怖いです。 今回は... (Read More)

【JBullet物理演算入門】ソルバ(solver)とは?

はじめに 物理演算を勉強する上で、ソルバ(solver)というものが出てきます。 そこで何だろとググったが最後、英和辞典を憎むことになるでしょう。 下手に調べれば調べるほどわからなくなっていくのが、このソルバ。 これを今回は解説していきます。 あまり出番はありませんが、以前に作った3DのPhys... (Read More)

【OpenGL ES入門】glEnable()とglEnableClientState()の違いとは?

はじめに OpenGL ESのコードを書いていると、やたら似たような関数に出会います。 パラーメーターxとパラメーターfとか、トランスレートx、fエトセトラ・・・。 その中でも特に有効化の関数であるglEnable()とglEnableClientState()は使う機会が多く、双方の違いを知っ... (Read More)