【Android】OpenGL ES高速化テクニック集

はじめに 2014/03/05:3項目追加しました。 OpenGL ESは、OpenGLから機能を削減してかなり軽くなった描画APIです。 当然、AndroidはPCのCPUやメモリには現時点では歯がたちませんので、クロノスグループの人たちがいろいろがんばってくれたわけですが、それでも動作がモッ... (Read More)

【AndroidでOpenGL ES】3D空間の距離を測る

はじめに 2Dでも3Dでも、世の中に出ているゲームの大半は物理法則を人工的に埋め込んでいます。 敵と衝突したら一定量、逆のベクトルへ飛び、壁があればその先へ進むことができません。 プログラムでは、密着しているかどうかを判定することになりますが、同じように、木箱と一人称カメラの距離はどのくらいなの... (Read More)

【AndroidでOpenGL ES】3Dワールドを自由に歩けるようにしてみた

はじめに お久しぶりの更新です。 3Dワールドを更新に更新を重ね、気付いたらFPSになっていました。銃じゃないです。キューブ弾です。 今回はFPS化してしまった3D物理演算プロジェクトの注目すべき部分をピックアップして解説していきます。 同じくGitさんにコミットしておきました。 https:/... (Read More)

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

はじめに ついに今回で座標変換とベクトルの話がラストです。 今まで1~3までの記事は以下を参照してください。 【Android】OpenGL ES入門。スクリーン座標をワールド座標に変換してタッチ位置にキューブ弾 【Android】OpenGL ES入門。スクリーン座標をワールド座標に変換してタ... (Read More)

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

はじめに 今回もスクリーン座標系からワールド座標系への変換についてです。 過去記事とプロジェクトは以下URLを参照してください。 【Android】OpenGL ES入門。スクリーン座標をワールド座標に変換してタッチ位置にキューブ弾 【Android】OpenGL ES入門。スクリーン座標をワー... (Read More)

【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とOpenGL ES入門】3Dで座標系がたくさんあるワケ

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

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

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

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

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

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

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

【3DAndroid入門】OpenGL ESで立方体にテクスチャを貼って木箱にする

はじめに 今回はnullieさんのHelloGameを使ってCubeにテクスチャを貼ってみましょう。 ちなみに元の立方体はこんな感じです。 使用するプロジェクトURLは以下です。 https://github.com/nullie/HelloGame そもそもテクスチャってなんだろう? Gi... (Read More)

【Android】OpenGL ES入門インデックスバッファを使用して四角錐を描画する方法

はじめに OpenGL ESの入門記事がついに公開です。 今回は四角錐をインデックスバッファ(index buffer)を使って描画していきます。 JBulletの方でkinematic剛体を作って天高く上昇していますが、基本的にOpenGL ESだけに絞ります。 また、頂点配列を手書きする際の... (Read More)