タグ

openglに関するurza358のブックマーク (25)

  • OpenGL

    This page contains fundamental OpenGL tutorials and notes. All example programs are written by C++ with Code::Blocks IDE for Windows, as well as the makefiles for Linux and macOS. Each example project uses GLUT/FreeGLUT or GLFW framework, and it includes the required header and library files in it. To compile the source codes for Linux and macOS, use the following "make" command in the console;

  • チュートリアル17:回転

    序文:回転と方向 オイラー角 クォータニオン クォータニオンを読みこみ 基的な操作 どのようにC++でクォータニオンを作るか? GLSLでのクォータニオンの作りかた クォータニオンの行列への変換方法 どちらを選ぶべきか? 他の資料 チートシート 頂点への回転の適用方法 二つのクォータニオンの補間方法 二つの回転の計算方法 二つのベクトル間の回転の見つけ方 gluLookAtと同じように、オブジェクトをある点の方向へ向けさせたい。 特定の回転スピードに制限したLookAtの使い方 他の方法は… このチュートリアルではすこしOpenGLの領域を外れたことを説明します。しかしとても一般的な問題です。どうやって回転を表現するか?です。 チュートリアル3行列では特定の軸周りで点を回転させる行列を学びました。行列は頂点を変換するには良い方法ですが、行列を扱うのは難しいです。例えば、最終的な行列から回

    チュートリアル17:回転
  • Matrix and Quaternion FAQ

  • OpenGL - Transformations

    Matrices Since this is a guide on graphics programming, this chapter will not cover a lot of the extensive theory behind matrices. Only the theory that applies to their use in computer graphics will be considered here and they will be explained from a programmer's perspective. If you want to learn more about the topic, these Khan Academy videos are a really good general introduction to the subject

  • チュートリアル3:行列

    同次座標 変換行列 行列入門 平行移動行列 単位行列 拡大縮小行列 回転行列 変換の組み合わせ モデル行列、ビュー行列、射影行列 モデル行列 ビュー行列 射影行列 行列の組み合わせ:モデルビュー射影行列 すべてを合わせる 演習 エンジンは船を動かさない。船はそこにあり、エンジンは船の周りで世界を動かす。 フューチュラマ これが全体のたったひとつの最も重要なチュートリアルです。少なくとも8回は読んでください。 同次座標 これまで、3D頂点を(x,y,z)の3つ組としてのみ考えていました。ここでwを導入しましょう。すると(x,y,z,w)というベクトルを得ます。 こうする理由がもうすぐ分かるでしょう。ただしこれだけは覚えておいてください。 w == 1 ならばベクトル(x,y,z,1)は空間での位置を表します。 w == 0 ならばベクトル(x,y,z,0)は方向を表します。 (もっと言えば、

    チュートリアル3:行列
  • OpenGLプログラミング/モダンOpenGL チュートリアル 04 - Wikibooks

    このチュートリアルでは、変換行列の世界に飛び込んでいき、それで三角形を移動したり、拡大縮小したり、回転させることができるようになります。 行列のセットアップ[編集] ここにあるのが行列を扱うときに覚えておくべきひとかじりです: 変換は逆の順序で4x4の行列を乗算することにより適用されます。 M = M_translation * M_rotation なら、回転が最初でその後平行移動を意味します。 単位行列は、何もしない行列です - 何も変換しません。 頂点を変換するには、行列によって乗算します: v' = M * v 4x4行列は4x1ベクトルにだけ適用することができ、頂点の第4次元の1を用いて取得します: (x, y, z, 1)。 これらの乗算を行うためには、数学ライブラリが必要になります。 シェーダには内蔵の簡単な行列演算用のサポートが付属しますが、通常はCコードから行列を操作する

  • OpenGLプログラミングメモ

    ここは、OpenGLについて学習し、その過程を記録するページです。 プログラミングメモとしてご利用下さい。 glutCreateWindowの位置を直す編集をした際に「<」以降が消えるという@wikiの仕様に気づかず、 正常に動作しないプログラムを長期に渡り掲載しておりました。 現在、修復作業中です。 直接、コードを記載すると今後、似たような仕様変更で同じ不具合に遭遇するかもしれないので プログラムコードはテキストデータとしてダウンロードする形に今後変更するかもしれません。

    OpenGLプログラミングメモ
  • OpenGL が世界を描画する仕組み · けんごのお屋敷

    OpenGL 基礎シリーズの第 1 回です。 ビューイングパイプライン OpenGL が世界を描画するっていうタイトルだけでワクワクするなら、あなたはもう OpenGL の、いや、このブログの虜です。というのはおいといて、OpenGL で描画すると一言で言ってもその描画フローの中には大量の計算処理が含まれおり、そのフローをひと通り全て通り超えてこそ初めて画面に何か描画される。いわゆるパイプラインと呼ばれる処理の流れがあり、それはおおまかには以下のようになっている。細かくは他にもやってることはあるし厳密には実際と異なる部分もあるけど、これくらい抑えておけば基はわかると思う。 ちなみに赤い部分は自分でプログラミングする必要がある。青い部分は設定値さえこちらから与えてやれば後は OpenGL が内部でよろしくやってくれる。 ふー、ただ単に 1 枚の画像を描画するだけでもこれだけのフローがあって

    OpenGL が世界を描画する仕組み · けんごのお屋敷
  • Performance - OpenGL Wiki

  • wgld.org | WebGL: シェーダの記述と基礎 |

    GLSL について知る WebGL では固定機能パイプラインが利用できません。これについては以前のテキスト(レンダリングのための下準備)でも少し触れましたね。 その代わりに、いわゆるプログラマブルシェーダの一種であるシェーダ言語が実装されています。それが GLSL ( OpenGL Shading Language )です。 GLSL は OpenGL との親和性を持つシェーダ記述言語で、C 言語ライクな独自の文法によって記述します。WebGL の難点の一つがこの GLSL であり、GLSL を理解しなければそもそもレンダリング自体を行なうことができません。WebGL の基プログラムの知識に加えて、GLSL の知識も必要になるのでちょっと大変ですね。 ただし、基的なことをやるだけであればそれほど難しくはありません。それに、慣れてしまうとシェーダを自分で記述できることの利点のほうが大きく

  • OpenGL(GLSL)のvarying,attribute,in,outについて - げぇむぷろぐらみんぐ

    OpenGLのストレージ修飾子(inとかoutとか)についてです。 これもあんまりまとまった記事がなさそうだったので自分用メモ 前の記事同様OpenGL学び初めたばかりで、しかもネットの情報のみという浅い知識しか持ち合わせていないので、間違いがあったら教えてもらえるとうれしいです。 OpenGL2.x系では、頂点属性の定義はattributeを付けて行っていました。 また、バーテックスシェーダからフラグメントシェーダに内容を渡したいときはvaryingをつけて宣言を行っていました。 ↓多分こんな感じ(バーテックスシェーダの例) attribute vec3 position; uniform vec4 color; varying vec4 vColor; void main() { vColor = color; gl_Position = position; } しかし、OpenGL3

    OpenGL(GLSL)のvarying,attribute,in,outについて - げぇむぷろぐらみんぐ
  • Shaderific - GLSL Qualifiers

  • 【OpenGLでゲームを作る】シェーダって何?GLSLへの第一歩 - おもちゃラボ

    前回はダブルバッファリングとFPSについて説明しました。 nn-hokuson.hatenablog.com そろそろ画面に図形の1つでも表示したいところですが、OpenGLのプログラムだけでは画面に絵を出すことはできません。絵を出すにはシェーダを書く必要があります。そこで、今回はOpenGLで使うシェーダ言語、GLSLについて説明します。 今回の記事の内容は次のとおりです。 シェーダとは バーテックスシェーダとは フラグメントシェーダとは シェーダをOpenGLのプログラムに登録する シェーダとは シェーダ(Shader)とは名前からも分かるとおり影をつける計算をするためのものです。下の記事でも紹介しているとおり影を適切につけることで平面のものを立体に見せることが出来ます。 nn-hokuson.hatenablog.com OpenGLとGLSLを使ってプログラミングをする流れは次のよ

    【OpenGLでゲームを作る】シェーダって何?GLSLへの第一歩 - おもちゃラボ
  • 3D CAD用のVRシステムは「事前変換方式」と「変換不要方式」どちらが良いのか?

    3D CAD用のVRシステムは「事前変換方式」と「変換不要方式」どちらが良いのか?:産業用VRカレイドスコープ(2)(1/2 ページ) 連載では産業全体のVRの動向や将来展望について深堀りして解説していきます。今回は、3D CAD用のVRシステムにおける、「事前変換方式」と「変換不要方式」について説明します。併せて、前回記事公開後の、産業VR関連の動向についても紹介します。 製造業VRエバンジェリスト、プロノハーツの早稲田です。前回はこれまでの産業VR歴史や今後予想される動きについて説明しました。今回は、3D CAD用のVRシステムにおける、「事前変換方式」と「変換不要方式」について説明します。併せて、前回の記事を公開した後の、産業VR関連のニュースについても紹介します。 「事前変換方式」と「変換不要方式」について 「事前変換方式」のシステムは、STEPやParasolidなどの3D

    3D CAD用のVRシステムは「事前変換方式」と「変換不要方式」どちらが良いのか?
  • Emscripten C++/OpenGL ES 2.0 のアプリケーションをブラウザで動かす (1) | ホイール欲しい ハンドル欲しい

    C++ で開発していた OpenGL/OpenGL ES の Project を Emscripten でビルドしてみました。 Native Code 向けのプログラムがそのままブラウザ内で動いています。 ・Windows Firefox (29.0.1) ・Android Firefox (29.0.1) Chrome では 7 fps 程度なので asm.js (Firefox) の効果は絶大でした。 Android でも十分な速度で動いています。 追記 2014/05/24: その後 Chrome でも 60fps 以上出るようになりました。詳しくはこちら Windows 8.1 Firefox 29 60fps 以上 (Core i7-3615QM) FireOS 3.0 Firefox 29 60fps 以上 (Kindle Fire HDX7 MSM8974) Android

  • Amazon.co.jp: Open GL ES 2.0 プログラミングガイド: Aaftab Munshi (著), Dan Ginsburg (著), Dave Shreiner (著), アフタブ・ムンシ (著), ダン・ギンズバーグ (著), デーブ・シュライナー (著), 松田晃一 (翻訳): 本

    Amazon.co.jp: Open GL ES 2.0 プログラミングガイド: Aaftab Munshi (著), Dan Ginsburg (著), Dave Shreiner (著), アフタブ・ムンシ (著), ダン・ギンズバーグ (著), デーブ・シュライナー (著), 松田晃一 (翻訳): 本
  • NeHe Android Ports - INsanityDesign

    As Android supports OpenGL ES, I wanted to provide the basic and probably most read OpenGL tutorials available for the Android platform. The NeHe OpenGL tutorials are what every OpenGL starter is beginning with or pointed at. The set of nearly 50 tutorials give an overview about OpenGL functions and principles and are easy to understand and to be converted to the own needs. They are already availa

  • かぜきょうの部屋の隅のあたり。 Eclipse+CDT+Linux+OpenGL+GLUT

    大変だったのでメモ。 今日Eclipseを使い始めた新参なんですが、色々躓いたのでメモっときます。 一部まともなやり方がありそうな部分があるんですが、やり方が分からないので放置しています。 ・目標 OSはUbuntu8.04(正確には、Ubuntu 8.04 LTS VirtualBox用仮想マシンで実行しました)、開発環境がEclipseで、床井先生のページにある最初のサンプルがコンパイルできるようにします。 1. Eclipse CDT まず、Eclipseはjavaで動くので、javaをSynapticなどでインストールしましょう。sun-java6-jdkを入れるといいと思います(javaはsun製以外を入れるとどっかでトラブルに見舞われる…)。 ダウンロードページからEclipse IDE for C/C++ DevelopersとかいうやつのLinux版を落としてきます。 落と

  • 頂点の座標変換行列から法線の座標変換行列を求める - HaU-room

    ぼちぼち勉強を始めました。 備忘としてまたこのブログに書いておきます。 でも解りにくい事書くのはやっぱりつまらないので、なるたけ控えよう。 今回はOpenGLやたぶんDirectXでもあるのかな?座標変換の話です。 3Dプログラミングは座標系が立て込んでいて ローカル座標 -> ワールド座標 -> ビュー(カメラ)座標 -> スクリーン座標 みたいに次々行列を掛けて変換していきます。 で、モデルビュー変換行列とか呼ばれる 拡大縮小、回転、移動を施してビュー座標系に ポリゴンを配置してくれる行列を左から掛けることで、 ポリゴンの頂点をローカル座標からビュー座標まで変換していく事ができます。 そこまでは良いのですが、問題はここからで、 頂点の向いてる方向を示す法線ベクトルは、なぜか このモデルビュー変換行列の逆転置行列を掛け合わせる事で ローカル座標からビュー座標まで変換できるらしいです。 な

  • ピッキング処理 - プログラミング日記

    OpenGLでピッキング(ポリゴン選択)処理をするには以下の方法で出来る。ソースコードはPython。 viewport = glGetIntegerv(GL_VIEWPORT) glSelectBuffer(BUFMAX) glRenderMode(GL_SELECT) … hits = glRenderMode(GL_RENDER) この方法でうまく選択出来ないで悩んでいたが、ModelView行列に移動と回転の効果を入れるのを忘れていたためだった。 ポリゴン選択はこの方法で出来たが、これだとMSC.Patranの任意領域のポリゴン(要素)選択が出来ない。しかし、gluProject()で要素の節点座標をオブジェクト座標からウィンドウ座標に変換すれば、2D上で点が任意領域(複数の点で囲まれる領域)の中に入るかどうかという問題になるので、実装できそう。 しかし、1点だけ分からないのは、M

    ピッキング処理 - プログラミング日記