Making WebGL Dance or How I Learnt to Stop Worrying and Love Linear Algebra Steven Wittens unconed http:// acko.net How to DrawWhere to DrawWhat to Draw
WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 最近 iPhone を買った勢いで iPhone プログラミングを始めました。これまでも iPod touch があったのでその気になればできたのですが、 Objective-C や Cocoa を覚えるのが面倒くさくて手を出していませんでした。しかし、 iPhone を使っているうちに面白い題材に気付いたのです。そう、 OpenGL です。 実は私は数年前までは
この記事を見ているあなたは「OpenGL ES」という単語を聞いたことがあるでしょうか? OpenGL ESは、組み込み機器で3Dを扱うためのライブラリです。ゲームやコンピュータのUIといった、主に「リアルタイムで3D空間を表示する」必要がある分野で広く利用されています*1。AndroidやiOSといったモバイル機器のほか、PlayStation3やPlayStation Vitaなどのゲーム機で採用されている、まさにマルチプラットフォームのライブラリです。 そんな「スゴイ」ライブラリのOpenGL ESですが、泣き所はそのとっつきにくさです。筆者の周りでは、「わかりやすいなコイツ!!」「取っ付きやすいぜ、ベイビー!」とか言いながらOpenGL ESを触っている人を見たことがありません。「なんだかよくわからなさそう」「難しそう」と思われるでしょうか? いえ、そんなことはありません! むしろ
こんにちは。muchoです。 前回のGLSL Gaussian Blur もどき part1に引き続き、GLSLでBlurをかけてみました。 前回、ガウス分布を求める公式がおかしいなーと思いしらべてみたところ やっぱりおかしかったんですが、ガウス分布はやっぱり正弦波のようなので 結果的には一緒だろうということで、前回と変わらず。 変えたところは、ブラーのサイズによって、計算回数が増えていくんですが、 見た目と速度の具合で、調整しました。 ブラーサイズ50pxで60fps ブラーサイズ100pxで60fps ブラーサイズ300pxだと40fpsを切ってしまった。 前回とロジックは一緒で 一度横にブラーをかけ、その後、縦のブラーをかけています。 フレームバッファオブジェクトを使ったらかなり高速になりました。 以下抜粋ソースです。なにかの参考になれば。 //-------------------
ホーム > プログラミング > モデルビューアを作る ( Android + OpenGL ES 1.0/1.1 ) ( Eclipse 3.7版 ) (開発環境として「Eclipse」を使用した、古い情報です。 開発環境として「Android Studio」を使用した、新しい情報は、 「ホーム > プログラミング > モデルビューアを作る ( Android + OpenGL ES 1.0/1.1 ) ( Android Studio 2.3.3 版 )」) Android SDK と OpenGL ES 1.0/1.1 を用いて再利用可能なOpenGLレンダラクラスを作成し、作成したOpenGLレンダラクラスを用いてモデルビューアを作成する方法を解説します。 使用開発環境は、Eclipse 3.7.2 ベースの Pleiades です。
AndroidでOpenGLアプリを作っていたところ、glTexImage2DがGL_INVALID_VALUE (1281) というエラーになって動かない。よくよく調べると、テクスチャの寸法が768x768と、2のベキじゃない値になっている。元のPNGファイルは間違いなく512x512なのに。誰かが勝手に画像を拡大している!? と、ここまで気づくのに2日間。 このテクスチャは、PNGをres/drawableに置いておき、BitmapFactory.decodeResource(Resources,int)で読み込んでいたのだが、このメソッドが勝手に拡大しているとしか思えない。 decodeResourceメソッドには、引数を3個取るバージョンがあって、第3引数にはBitmapFactory.Optionsというものを渡す。この説明をよーく読むと、Options.inScaledというパ
OpenGLを利用した3Dプログラムを作成する。 Googleのチュートリアルのソースコード 参考リンク OpenGLプログラム OpenGL入門 チュートリアル1 背景を黒で塗り潰すOpenGLプログラムを作成する。 GLTutorialOne.java package edu.union; import javax.microedition.khronos.opengles.*; import android.content.*; //チュートリアル1 public class GLTutorialOne extends GLTutorialBase { //コンストラクタ public GLTutorialOne(Context c) { super(c); } //初期化 protected void init(GL10 gl) { //
2011年02月25日20:03 カテゴリAndroidJava開発 TargetがAndroid2.1とかのとき、OpenGLで描画すると落ちる Tweet 初歩からわかるAndroid最新プログラミング 安生 真,柴田 文彦,藤枝 崇史 インプレスジャパン 売り上げランキング : 326 Amazonで詳しく見る 初歩からわかるAndroid最新プログラミング を参考に、OpenGLを使ったGLSurfaceViewで2D描画を行おうとしたものの、Build TargetがAndroid2.1とかだったりすると、記載されたコードと同じではgl.glVertexPointer()あたりから落ちてしまいます。 1.6とか1.5をTargetにしたときは問題ないです。 原因はバッファの場所 2.1とかだと、gl.glVertexPointer()などに渡すバッファ(4番目の引数の部分)はダイ
【1】「コンパチビリティ」と「ワン・バイナリ」 Androidは、OpenGL ESのバージョン1.0が標準仕様だ。Android SDKでも、これがサポートされていて、今後販売されるAndroid端末も、OpenGL ES 1.0が動作することが保証されている。 一方、G1はOpenGL ES 1.0と、OpenGL ES 1.1のいくつかの拡張機能をサポートしている。そのため、Androidの標準仕様を逸脱する形となるが、1.0になく1.1にある拡張機能を用いて、描画を高速化することが可能だ。 前述のBasic Vert Quadsは、OpenGL ES 1.0標準なので、これを用いる場合は今後出荷されるAndroid端末のどこでも動作することが期待される。一方、Draw Texture ExtensionやVBO Extensionについては、OpenGL ES 1.1の拡張のため、
ここ1週間くらいずっとAndroidゲーム開発を手探りで進めていた。そして、めでたく、ようやく、初のAndroid向け2Dアクションゲームをリリースすることができました。 Fire Rescue - Android マーケットhttps://market.android.com/details?id=name.shimobayashi.firerescue内容としては http://www.shimobayashi.name/ のBurningPanicというゲームをAndroid向けに移植した感じです。なお、ゲームのBGMはuzzuさん(http://twitter.com/uzzu)につくっていただきました、感謝。(スクリーンショットが若干おかしいですが、OpenGLを使った画面をPCでうまくキャプチャーできないようです。無念。) つきましては、またもやヘドロのごとくTipsが蓄積され
こんばんわ。フィブです。 前回OpenGLの描画に切り替えて画面表示を行ったところ一応表示はできました。 が、問題発生。 3秒に1回ほどなぜか一瞬画面が固まる。 OpenGLの実装方法ミスったのかと思ったけどそんなこともなく。 まさかOpenGLでやっても重い?! そもそも処理が重すぎたの!? と焦ったところ見つけた情報。 「GC(ガベージコレクション)が発生すると全スレッドが100ms~300ms停止します」 はい、原因はこいつでした。ガベージ。 ご存じのとおりJavaは不要になったメモリを勝手に解放してくれます。これがガベージコレクション。 メモリ領域を勝手に掃除してくれちゃうのです。そのせいで止まると・・・。 Logcatで確認。 確かにLog上でGCなんちゃらって書かれた後に画面が一時停止してる。 絶対これだ。なんて迷惑な・・・。 いろんな記事を漁っていると、ゲームのループ処理に入
OpenGL (Open Graphics Library) はもともとアメリカのシリコン・グラフィックス社が開発した 3D (3次元) グラフィックスのためのプログラミングインターフェイスです。 規格がオープンで、 UNIX/Linux、Windows、Mac OS、Java など多くの環境で広く実装されています。 Android の開発では、組み込みシステム向けの OpenGL のサブセットである OpenGL ES (OpenGL for Embedded Systems) を利用できます。 ここでは Android アプリで OpenGL をどのように使うのか説明します。 なお、私は3次元グラフィックスの専門家ではありませんので、 グラフィックスの理屈などについては、 記述の誤り不正確な箇所が多々あるかもしれませんが、その点に関してはご了承ください。 あるプログラマが、なるべくわか
しかし、初めてOpenGL ESを触る人には、結構とっつきにくいのではないでしょうか? iPhoneで面白いアイデアを思い付き、ゲームアプリを開発したいと思ったときに、プログラマであっても、OpenGL ESを独学で習得することは、多少ハードルが高いことも事実です。 そこで、連載最終回である今回は、まず新規プロジェクトのテンプレートをカスタマイズしていくことで、ピラミッドを描くプログラムを作ってみましょう。 また、デザイナやFlash開発者にとっても、OpenGL ESの習得には大幅な時間がかかることが予想されます。そんな人々にとって有用であるゲーム開発プラットフォーム「Unity」も紹介し、その説明(画面構成やメニューなど)をしながら、簡単なサンプルを作成し、実機のiPhoneにインストールして動かします。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く