約 2,353,474 件
https://w.atwiki.jp/physlab2014calc/pages/7.html
OpenGL講習会へようこそ(2月20日) ・開催 午前の部:①2月20日(木)10 30〜 理学部一号館3階317号室(計算機室) 午後の部:② 同 13 00〜 理学部一号館3階317号室(計算機室) ・プログラム 午前:インストール作業(インストールが済んでいない人向け) 午後:OpenGLとは何か、OpenGLの使い方、勉強の仕方など ・参加するにあたって 以下(このページの一番下)のmag.cとmeeting0220.pdfをダウンロードしてください。参加者には、紙資料としても配布します。 ※当日参加しなかった人は、meeting0220.pdfを見ながらmag.cを使って勉強することも可能です。ダウンロードして使ってください。 (参考)「GLUTによる手抜きOpenGL入門」/http //www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html/http //www.ie.u-ryukyu.ac.jp/~e085739/c.opengl.kumamoto.html
https://w.atwiki.jp/sevenlives/pages/2257.html
iPhone OpenGL Unity
https://w.atwiki.jp/gametips/pages/15.html
更新日時 2013-06-15 23 56 56 (Sat)アクセス数 - OpenGL API リファレンス 概要 OpenGL APIの日本語リファレンスを掲載しています。 索引 B glBindAttribLocation glBindBuffer glBindFragDataLocation glBindVertexArray glBufferData D glDeleteBuffers glDeleteVertexArrays glDisableVertexAttribArray glDrowArrays glDrowElements E glEnableVertexAttribArray G glGenBuffers glGenVertexArrays V glVertexAttribPointer 参考文献 OpenGLに関連するオススメの本や WEB サイトを紹介します. ページ右の画像をクリックすると Amazon で参考文献を購入できます. OpenGL策定委員会, 「OpenGLプログラミングガイド 原著第5版」, ピアソンエデュケーション OpenGLの赤本(Red Book)と呼ばれる定番の参考書の日本語版です。 少し値は張りますがOpenGLの基本的な使い方が丁寧にまとめられています。 初心者の方には敷居が高いかもしれませんがOpenGLを極めるつもりなら必須の教本だと思います。 Mark Segal, Kurt Akeley, Jon Leech, 「OpenGL4.0グラフィックスシステム」, カットシステム OpenGLの仕様書の日本語訳です。個人的には翻訳に違和感を覚えることはありませんでした。 英語が苦手な方は本書をAPIリファレンスの代わりに利用できます。 チュートリアルのような内容は含まれていませんので他の書籍との併用をオススメします。 床井 浩平, 「GLUTによるOpenGL入門」, 工学社 これから OpenGL を初めようとしている方にはこの本がオススメです。 おそらく OpenGL に関する文献の中では最も敷居が低く 3DCG に関する知識が全くなくても理解しやすいです。 少し内容は古いかもしれませんが導入という目的では最高の文献で、私もこの本から OpenGL に入門しました。 床井 浩平, 「GLUTによるOpenGL入門2 テクスチャマッピング」, 工学社 上の「GLUT によるOpenGL入門」の続編です。 前作の内容では物足りなかった方は本書を読むことで 3DCG の表現力が大幅に広がります。 引き続き平易な内容となっており、前作を読破した方であれば難なく理解できると思います。 David Wolff , 「OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング-」, ボーンデジタル 最近のゲームに見られるようなリアルな映像をつくりだすにはプログラマブル・シェーダという機能が欠かせません。 床井 浩平さんの「GLUTによるOpenGL入門2 テクスチャマッピング」でもシェーダに関しては少しだけ触れられていますが、書籍の後半で軽く紹介されているだけでいささか物足りない内容ではありますので、本格的に学ぶためにこの本の購入をオススメします。 質問・コメント欄 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/bambooflow/pages/86.html
Qtメモ Qtの使いかたをめも。 Qt3とQt4の開発スタイルはかなり変わってきます。 個人的にはQt4の方がやりやすいです。 項目 Qt3/ファイル読み込み Qt4 Qt4/Creator Qt4/Creator/OpenGLのはじめ Qt4/Creator/OpenGLのはじめ(v4.7対応) Qt4/Creator/バージョン管理ツールGitを使う Qt4/Creator/設定 Qt4/Designerを使う Qt4/OpenGL Qt4/OpenGL/OpenGLをQtで使うメリット Qt4/OpenGL/クラス QT4/OpenGL/タイマーを使ったアニメーション Qt4/OpenGL/テクスチャマッピング Qt4/OpenGL/バージョンの確認 Qt4/OpenGL/空のウィジェット Qt4/スレッドQthread Qt4/ファイル読み込み Qt4/外部コマンド実行 Qt4インストール 最初の一歩HelloWorld 参考 http //qt.linux-life.net/4/doc/ja/index.html 以上
https://w.atwiki.jp/nico_nonono/pages/17.html
OpenGLメモ 画面への描画方法(投影方法) Xファイルの読み込み Xファイル内容
https://w.atwiki.jp/nkym_memo/pages/61.html
GLUT 基本的にはGLUTによる「手抜き」OpenGL入門 を参照 OpenGL入門 (OpenGL 1.1準拠) http //wisdom.sakura.ne.jp/system/opengl/ glutMainLoop()から抜ける OpenGLの導入 Ubuntu 9.04〜10.10での導入 #apt-get install freeglut3 freeglut3-dev Ubuntu 11.10〜 12.04でリンカが異常(undefined reference to ……)が生じるので、binutils-goldをインストール #apt-get install freeglut3 freeglut3-dev binutils-gold http //singhgurjot.wordpress.com/2012/05/17/how-to-install-openglglut-libraries-in-ubuntu-12-04/ OpenSUSE 11.2 YaST2→パッケージ検索(webpin)→「freeglut」で検索 以下をチェック freeglut free-devel ひたすら「次へ」でインストール ※信頼できないとか出るけど、「取り込む」で コンパイル ヘッダファイル #include GL/glut.h コンパイル gcc -lglut -lGLU ファイル fedora 13 以下をインストール freeglut freeglut-devel #yum install freeglut freeglut-devel コンパイル gcc -lglut -lGLU -lGL ファイル http //homepage2.nifty.com/takaaki024/tips/programs/c/opengl.html
https://w.atwiki.jp/frontiergt/pages/34.html
注意事項 Windowsでコンパイルしたい場合は管理人に直接聞いてください。 Linuxでコンパイルする場合、Ubuntuを使って下さい。 おそらくFedoraとかだと動かないと思います。 Linuxでコンパイルする場合は、synapticで以下をインストールしてください。 ・build-essential ・freeglut3-dev ・libjpeg-dev ・libpng-dev ・ftgl-dev コンパイル方法は、「sh mk.sh」を実行するだけです。 OpenGLテンプレート ver_02.c2 (管理人) OpenGLテンプレート ver_02.c2 こちらにおいておきます →→ ソースファイル ※変更点※ 表示関係のバグ修正 アニメーション関係のバグ修正 マウス操作性改善 キーボードの反応性の改善(←比にならないくらい改善しました) 旧ubuntuでシャットダウンするバグ修正 OpenGLテンプレート ver_01.n2 (管理人) OpenGLテンプレート ver_01.n2 こちらにおいておきます →→ ソースファイル OpenGLテンプレート ver_01.a (管理人) OpenGLテンプレート ver_01.a こちらにおいておきます →→ ソースファイル コメント 名前 コメント
https://w.atwiki.jp/bambooflow/pages/278.html
GLEW The OpenGL Extension Wrangler Library GLEW The OpenGL Extension Wrangler Libraryダウンロード&インストール GLEWのはじめ GLEWでOpenGLのバージョンサポートを確認する ダウンロード&インストール http //glew.sourceforge.net/ 上記のパスからダウンロードできる。 あらかじめglut(freeglut)はインストールしておく。 % tar xzf glew-1.x.x.tgz % cd glew-1.x.x % make % sudo make install ちなみに、インストール先は、Makefileの43行目あたりGLEW_DESTで設定を変更できる。 GLEWのはじめ glew_hello.cpp #include GL/glew.h #include GL/glut.h #include stdio.h #include stdlib.h int main(int argc, char* argv[]) { glutInit( argc, argv); glutCreateWindow("Window"); // これがないとエラーとなる GLenum err; err = glewInit(); if (err != GLEW_OK) { printf( "GLEW error %s\n", glewGetErrorString(err) ); exit(1); } printf( "GLEW Version %s\n", glewGetString(GLEW_VERSION) ); return 0; } % g++ -o run.x glew_hwllo.cpp -lglut -lglew apt-getとかの場合は、-lGLEWとなるかもしれない。 GLEWでOpenGLのバージョンサポートを確認する OpenGL3.3をサポートしているかの問い合わせ if (!glewIsSupported("GL_VERSION_3_3")) { std cerr "OpenGL 3.3 not supported.\n"; std exit(1); }
https://w.atwiki.jp/cappu/pages/37.html
OpenGL ESの勉強を始める ApiDemosのGLSurfaceViewを1クラスにまとめてみた。別スレッドからの更新やリサイズの再描画はなし。 public class Sample extends Activity { public static class MyView extends SurfaceView implements SurfaceHolder.Callback { public MyView(Context context) { super(context); SurfaceHolder mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_GPU); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { EGL10 mEgl = (EGL10) EGLContext.getEGL(); EGLDisplay mEglDisplay = mEgl .eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); int[] version = new int[2]; mEgl.eglInitialize(mEglDisplay, version); EGLConfig[] configs = new EGLConfig[1]; int[] num_config = new int[1]; int[] configSpec = { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE }; mEgl.eglChooseConfig(mEglDisplay, configSpec, configs, 1, num_config); EGLConfig mEglConfig = configs[0]; /* * Create an OpenGL ES context. This must be done only once, an * OpenGL context is a somewhat heavy object. */ EGLContext mEglContext = mEgl.eglCreateContext(mEglDisplay, mEglConfig, EGL10.EGL_NO_CONTEXT, null); EGLSurface /* * Create an EGL surface we can render into. */ mEglSurface = mEgl.eglCreateWindowSurface(mEglDisplay, mEglConfig, holder, null); /* * Before we can issue GL commands, we need to make sure the context * is current and bound to a surface. */ mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext); GL10 gl = (GL10) mEglContext.getGL(); gl.glViewport(0, 0, getWidth(), getHeight()); /* * Set our projection matrix. This doesn t have to be done each time * we draw, but usually a new projection needs to be set when the * viewport is resized. */ float ratio = (float) getWidth() / getHeight(); gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); /* * Usually, the first thing one might want to do is to clear the * screen. The most efficient way of doing this is to use glClear(). */ gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); /* * Now we re ready to draw some 3D objects */ gl.glMatrixMode(GL10.GL_MODELVIEW); gl.glLoadIdentity(); gl.glTranslatef(0, 0, -3.0f); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glEnableClientState(GL10.GL_COLOR_ARRAY); // --------- int one = 0x10000; int vertices[] = { -one, -one, -one, one, -one, -one, one, one, -one, -one, one, -one, -one, -one, one, one, -one, one, one, one, one, -one, one, one, }; int colors[] = { 0, 0, 0, one, one, 0, 0, one, one, one, 0, one, 0, one, 0, one, 0, 0, one, one, one, 0, one, one, one, one, one, one, 0, one, one, one, }; byte indices[] = { 0, 4, 5, 0, 5, 1, 1, 5, 6, 1, 6, 2, 2, 6, 7, 2, 7, 3, 3, 7, 4, 3, 4, 0, 4, 7, 6, 4, 6, 5, 3, 0, 1, 3, 1, 2 }; IntBuffer mVertexBuffer; IntBuffer mColorBuffer; ByteBuffer mIndexBuffer; // Buffers to be passed to gl*Pointer() functions // must be direct, i.e., they must be placed on the // native heap where the garbage collector cannot // move them. // // Buffers with multi-byte datatypes (e.g., short, int, float) // must have their byte order set to native order ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4); vbb.order(ByteOrder.nativeOrder()); mVertexBuffer = vbb.asIntBuffer(); mVertexBuffer.put(vertices); mVertexBuffer.position(0); ByteBuffer cbb = ByteBuffer.allocateDirect(colors.length * 4); cbb.order(ByteOrder.nativeOrder()); mColorBuffer = cbb.asIntBuffer(); mColorBuffer.put(colors); mColorBuffer.position(0); mIndexBuffer = ByteBuffer.allocateDirect(indices.length); mIndexBuffer.put(indices); mIndexBuffer.position(0); gl.glFrontFace(gl.GL_CW); gl.glVertexPointer(3, gl.GL_FIXED, 0, mVertexBuffer); gl.glColorPointer(4, gl.GL_FIXED, 0, mColorBuffer); gl.glDrawElements(gl.GL_TRIANGLES, 36, gl.GL_UNSIGNED_BYTE, mIndexBuffer); mEgl.eglSwapBuffers(mEglDisplay, mEglSurface); if (mEglSurface != null) { mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); mEglSurface = null; } if (mEglContext != null) { mEgl.eglDestroyContext(mEglDisplay, mEglContext); mEglContext = null; } if (mEglDisplay != null) { mEgl.eglTerminate(mEglDisplay); mEglDisplay = null; } } @Override public void surfaceDestroyed(SurfaceHolder holder) { } } private MyView mGLSurfaceView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mGLSurfaceView = new MyView(this); setContentView(mGLSurfaceView); } @Override protected void onPause() { super.onPause(); } @Override protected void onResume() { super.onResume(); } }
https://w.atwiki.jp/bambooflow/pages/158.html
Qt4 Creator Creator/OpenGLのはじめ Creator/OpenGLのはじめ(v4.7対応) Creator/バージョン管理ツールGitを使う Creator/設定 Designerを使う OpenGL OpenGL/OpenGLをQtで使うメリット OpenGL/クラス OpenGL/タイマーを使ったアニメーション OpenGL/テクスチャマッピング OpenGL/バージョンの確認 OpenGL/空のウィジェット スレッドQthread ファイル読み込み 外部コマンド実行 リンク Qt4.6Document