GLES2

ASUS MemoPad7 ME572C の GLES2 周り

そろそろNexus7(2012)でもないだろうし、Intel Atom(x86)使用機種のような非ARM機が出てきたので、新たなAndroid端末として ASUS MeMO Pad7 ME572C を買ってきた。 ASUS MeMO Pad 7 (ME572C) | タブレット | ASUS 日本 今後はMIPS命令セット採用CPUなども含…

Google ANGLEの描画領域をC#のForm Application に埋め込む

開発中エンジンの描画に用いているのはOpenGL ES 2.0であり、これをWindows上で使うためにGoogle ANGLEというGLES2/3ライブラリを使っている。これは元々GoogleがWebブラウザChrome上で安定した品質のWebGL対応を行うにあたり、WindowsにおけるOpenGL実装の…

2D描画系(その3)

プライオリティ管理は、シンプルにOT(OrderingTable)でいくことにした。これは各プライオリティ値に属するオブジェクトのリストを持ち、各リストを順に処理していくという方式。プライオリティが設定された段階で、各オブジェクトはそのプライオリティのリス…

2D描画系(その4)

上記の実装で試してみたところ、PC上ではCPUの爆速に支えられて何の問題もなかったが、Android実機にもっていったところ結構重かった。描画時にマトリクスを「キューに詰める」という動作は一回につきfloat値x9個のメモリコピー動作であり、さすがにまずかっ…

2D描画系(その2)

ひとまず、もっとも需要の多い矩形スプライトの描画について考える。 以前の仕事では、もっと複雑なものも作ったことがあるが、描画に用いられるほとんどのものは矩形であるため、その描画効率を最大化するのは必須だ。この部分をおさえた上で、より複雑なも…

2D描画まわりの設計

初期のUnity3dを批判するようで恐縮だが2D描画はゲームエンジンに必須の機能である。*12Dのゲームを作る上で必要なのは自明だし、3Dのゲームでも各種ゲージやスコア表示、メニュー、タイトルロゴなどで2D表示は必要となる。 …まあ、"sumotori-dreams" のよう…

描画の効率化

モバイル環境に対応するのはもちろんだが、全般的にPCより非力な(と考えられる)モバイルデバイスのこと。計算量の大きな描画処理は可能な限り効率的であるに越したことはない。ここまでの作業は とりあえずタスクから操作できるScenegraphを用意して、 操作…

モバイルデバイス対応

現在作っているエンジンは、いくつかのテーマを見据えたうえで作っている。 C++が使える大抵のプラットフォームに乗せられること。ファイルシステムが無かったり、あっても低速なプラットフォームでも使えること。 ポーティングレイヤへの個別機能追加が容易…

上記の件解決。

先の項の問題解決。実に単純な話で、 glEnableVertexAttribArray(m_a_bone); を忘れてるだけだったというオチ。基本レンダリング部分を先に作って後からスキニングの機能を追加しはじめたので、boneの対応を始めるまでそもそも attribute として存在しておら…

転送されない attribute ?

過去20年に渡り、同僚が書いたエンジンコアを使ったり、Unityのような出来合いのエンジンを使ったり、時には自分でエンジンコアを書いたりしてゲームを作ってきたが、その辺りの知見を踏まえて自分が使うゲームエンジンを作ってみようと10月半ばぐらいからち…