タグ

OpenGLに関するtyosuke2011のブックマーク (62)

  • OpenGL - The Industry Standard for High Performance Graphics

    The Industry's Foundation for High Performance Graphics from games to virtual reality, mobile phones to supercomputers The Vulkan website has a new home and look! It has been a while in the making but we are very excited to launch the new Vulkan website to the community. Don’t worry, Vulkan is still maintained and owned by The Khronos Group; we just felt that it had outgrown its old website now th

  • しっかり学ぶシェーダプログラミング【シェーダをさわる前に編】 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに こんにちは、@yoship1639と申します。最近ゲーム開発に勤しんでいます。 皆様、突然ですがシェーダをご存知でしょうか。 この記事を開くということは少なくともシェーダという言葉の意味を知っているはずです。 簡単に言うと「3Dプログラム上でのオブジェクトに対する色付け(陰影処理)」ですね。 最近はゲームエンジンのUnityとかUE4とかが普及して耳にする機会が多くなったのではないでしょうか。 次の質問です。 0からシェーダ書けますか? 正しく理解できていますか? 多分ほとんどの方が0からは書けないのではないかと踏んでいます。

    しっかり学ぶシェーダプログラミング【シェーダをさわる前に編】 - Qiita
  • vorpX – VR 3D-Driver for Meta Quest, Valve Index and more PCVR headsets – Play PC Games on your Meta Quest, SteamVR or Windows Mixed Reality headset.

    Game SupportvorpX supports more than 250 DirectX 9-12 games (and some OpenGL titles) in Stereo-3D, many more work without S3D. Read more DirectVRDirectVR is a collection of several techniques that provide VR compatibility for ‘normal’ games with as little need for user interaction as possible. Read more Beyond GamesWatch videos with VLC and MPC-HC (incl. 360° video) or browse the web with the vorp

    vorpX – VR 3D-Driver for Meta Quest, Valve Index and more PCVR headsets – Play PC Games on your Meta Quest, SteamVR or Windows Mixed Reality headset.
  • PyOpenGL -- The Python OpenGL Binding

    About PyOpenGL PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs. The binding is created using the standard ctypes library, and is provided under an extremely liberal BSD-style Open-Source license. PyOpenGL Supports OpenGL v1.1 to 4.4 GLES 1 to 3.1 (Experimental) GLU EGL, WGL, GLX GLUT, FreeGLUT GLE 3 (GL Extrusion Library) hundreds of extensions to GL, GLES, EGL

  • OpenGLに入門する前に知っておきたかったこと - かみのメモ

    はじめに 最近、とある事情でOpenGL+GLSLの勉強をしていました。 目標はシェーダーを自分で書いて簡単な光路追跡法(レイトレーシング)っぽい処理を実装することだったので、とりあえずネットの情報と↓のを使って勉強してみました。 OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング- 作者:David Wolff発売日: 2012/11/01メディア: 大型 が、OpenGL難しい!! 自分の環境に入っているOpenGLのバージョンを調べるとこから始めて、目標の処理を実装するまで2週間以上かかってしまいました。。。 ということで、この記事では自分がOpenGLに取り組んでみて「勉強前に知っていたら捗ったのになあ」と思ったことについてまとめたいと思います。 新しくOpenGLを勉強するときの取っ掛かりになれば幸いです。 ※ 2018/09/13:項目1のタイト

    OpenGLに入門する前に知っておきたかったこと - かみのメモ
  • Stroll on a VULKAN-o - 火山に散歩

    Introduction - はじめに R&D部に所属しつつ、社内のPlaygroundエンジンを開発しているピコアです。 今回のテーマは最新描画APIのVulkanです。 Vulkanはグラフィックス処理APIトレンドの最先端にあるもので、ゲーム開発者が従来よりもGPUのパワーをきめ細かく制御できます。 そのかわりに開発者がさまざまな責任を負うことにもなります。 Vulkanの使い方や細かなAPIの説明などはネット上のあちこちで見つけられるので、今回はあまり触れません。 この記事の目的は、ゲームエンジンの開発者が実際にVulkanを利用した感想、学習中に得られた経験・苦労、そしてVulkanの良いところについての知見の共有です。 History of 3D Graphic APIs - 描画API歴史 まず、グラフィックスAPI歴史と変遷をおさらいします。 内容は設計思想の流れと時代

    Stroll on a VULKAN-o - 火山に散歩
  • OpenGLによるARアプリ 〜いつでも札幌駅の方向を優しく教えてくれる、めそ子さんを作ってみた〜 | DevelopersIO

    1 はじめに お酒を飲んでお店を出た時、どっちに向かって歩けばいいのか全く分からない、超方向音痴な私は、いつも聞いてしまいます。「札幌駅はどっち?」 そんな私のために、札幌駅の方向を優しく教えてくれる、めそ子さん作りました。 札幌駅の方向さえ分かれば、だいたい何とかなる「札幌あるある」案件です。 最近、Wikitudeを使用させて頂いて、ARなアプリを幾つか作成していたのですが、「座標に基づくAR表示ぐらいなら、自前でも簡単に作れるよ」とのアドバイスを頂きましたので、今回は、OpenGLで書いてみましたので、その覚書です。 なお、誤解を生じないように、記載しておきますが、Wikitudeは、「座標に基づくAR表示」だけでなく、画像認識、3Dモデル、動画の表示など、多数の機能を持ったライブラリであり、記事は、決してこれを置き換えるようなものではありません。 2 AR画面の仕組み 最初に、A

    OpenGLによるARアプリ 〜いつでも札幌駅の方向を優しく教えてくれる、めそ子さんを作ってみた〜 | DevelopersIO
  • アルファブレンディング - ゲームプログラミングWiki

    DESTの青(RGBA(0,0,255,128))と、SRCの緑(RGBA(0,128,0,128))を合成してみましょう。 アルファ値は16進数ですので0.0〜1.0の範囲に直さなければなりません。 ということで256で割ります。 緑と青の合成 = (0,128,0) * 128 / 256 + (0,0,255) * ( 1 - 128 / 256) = (0,128,0) * 1 / 2 + (0,0,255) * 1 / 2 = (0,64,0) + (0,0,128) = (0,64,128) となります。これを全てのピクセルに対してしますと以下のような画像になります。 DirectX使用法 さて先ほどの半透明を求める公式がありましたよね。 あのアルファ値の係数を実際のDirectXでは以下のように置き換えられています。 合成結果 =SRC * SRCのブレンディング係数 + D

  • 「OpenGLで作るiPhone SDKゲームプログラミング」の補完のような - mTsurutaのiPhoneゲーム造りや思う事など

    昨日、iAdを組込みで、以前から使っていたXcodeのOpenGL ES Applicationのテンプレート部分を Xcode 3.2.4のものに変えました。 3.2.4とそれ以前ではどうもテンプレートが変わっているようで、 以前ご紹介した「OpenGLで作るiPhone SDKゲームプログラミング」の解説は、 3.2.4より前のものに対応したものになります。 移植と言うほどでもありませんが、もし、Xcode 3.2.4のものに書き換えました。 それで、新たにOpenGLを使い始めた方の参考までに、 「OpenGLで作るiPhone SDKゲームプログラミング」の読み替えメモを書いてみます。 書籍記載の ES1Renderer.m - (id)init というメソッドは、 ↓ (あなたがつけたプロジェクト名)+ViewController.m - (���void)awakeFromNi

    「OpenGLで作るiPhone SDKゲームプログラミング」の補完のような - mTsurutaのiPhoneゲーム造りや思う事など
  • ESPORT เกมยิงซอมบี้ เกม ทํา อาหาร GTASan hayday pc เกมงูกินหาง

    รวมเกมฮิต ESPORT ทดลองเล่นสล็อต Lucky Neko ฟรี ไม่มีค่าใช้จ่าย แตกง่าย home sweet home เกม เศรษฐี ออนไลน์ richman online เกมมาใหม่ pg ทดลองเล่น เกมมาใหม่ pg ทดลองเล่น กมตกปลาออนไลน์ subway surfers poki สล็อต ยูฟ่า garena free fire

  • しずくくんのAndroidでゲームプログラミングしてみたいなblog : TargetがAndroid2.1とかのとき、OpenGLで描画すると落ちる

    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番目の引数の部分)はダイ

  • OpenGL ES シェーダープログラミング - Qiita

    概要 家KHRONOSのサイト 家KHRONOSの日語サイト 日語サイトは情報が古く、2.Xまでのものしかなく、リンク切れも多いです。 バージョン 1.X OpenGLES1.0は、OpenGL1.3ベース OpenGLES1.1は、OpenGL1.5ベース 固定機能パイプライン 2.X OpenGLES2.0は、OpenGL2.0ベース プログラマブルパイプライン 頂点シェーダーとフラグメントシェーダー 3.X OpenGLES3.0 DirectX10相当の機能の追加 ジオメトリーシェーダーなし OpenGLES3.1 DirectX11相当の機能の追加 コンピュートシェーダーの導入 ジオメトリーシェーダー、テッセレーションなし GLのデータ型 GL型 最小ビット幅 説明

    OpenGL ES シェーダープログラミング - Qiita
  • OpenGL技術編

    ホーム < ゲームつくろー! OpenGL技術編 OpenGLはプラットフォーム依存性の低い3D描画ライブラリです。DirectXとはまた方向性の異なるライブラリスタイルですが、ゲームはもちろん科学研究でも沢山使用されています。マルペケはDirectXが主軸ですが、ど~してもOpenGLをやらなければならない時期に(私が(^-^;)なってきました。OpenGLについては私はド素人で御座いますが、DirectXと考え方の互換性が高いライブラリでるため、比較しながら学んで行けそうに思います。…なので、質問はしばらく無しの方向で(^-^;

  • バーテックスシェーダによる座標系変換 · けんごのお屋敷

    OpenGL 基礎シリーズの第 3 回です。 座標変換 プリミティブの描画には頂点座標が必要なのはわかった。だって、座標情報がないとそもそもどこに描画していいのかがわからないんだから。でもよく考えてみて欲しい、この座標情報って どの座標系における座標 なんだろう?それって最初に出てきた右手座標系とかいう座標系じゃないの?うーん、そうなんだけどここで話したいのはそういうことじゃない。それじゃディスプレイ上の座標に配置してるに決まってるよ!いやいやそんなことはない。私達は今、OpenGL 上で 3D 空間を扱っている。でも現実のディスプレイは 2D の平面。はい、これらはそもそも次元が違う。 最初にバーテックスシェーダの概要を書いた時に座標系の変換過程を図に示したのを思い出してみると、3D 空間を扱うためには少なくとも 4 つの座標系があった。最初に頂点座標を配置した座標系から最終的にはクリッ

    バーテックスシェーダによる座標系変換 · けんごのお屋敷
  • OpenGL が世界を描画する仕組み · けんごのお屋敷

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

    OpenGL が世界を描画する仕組み · けんごのお屋敷
  • GLUT のイベント

    入力イベントの処理 実用的な3次元グラフィックソフトウェアは、必然的に動的にならざるを得ません また、ユーザーの要求を受け、適切に処理できなければならないでしょう これを実現するためには、イベント処理を行う必要があります OpenGL はプラットフォーム固有の処理には関与しません そのため、イベントを処理するためにはシステム固有の API を呼び出す必要があります しかし、この場合は何らかのシステムに依存したコードになってしまうため この場では GLUT を駆使して、GLUT に準拠したコードを記述することにしましょう まず、基的なポインティング デバイスの入力を処理するプログラムを実現します イベント処理は、ディスプレイ コールバック同様に、専用の関数にコールバック関数を登録します マウスイベントには glutMouseFunc() 関数が対応しています void glutMouseF

  • 頂点配列

    頂点配列を有効化するには、GL_VERTEX_ARRAY を glEnableClientState() に指定します なぜ、この定数が glEnable() 関数で有効化することができないかというと このような配列情報はサーバーではなく、クライアントに保存されるためです 次に、配列データを作成して保存する必要があります ここで言う「配列」はプログラミング言語の配列ではなく OpenGL における配列です 頂点配列を定義するには glVertexPointer() 関数を使います void glVertexPointer( GLint size , GLenum type , GLsizei stride , GLsizei count, const GLvoid *pointer ); size には、頂点データのサイズを指定します ここで言うサイズは、頂点データが保有する座標情報の数で

  • 状態変数の管理

    オブジェクトの状態 OpenGL は描画に関する様々な情報を状態変数として内部に保持しています つまり、OpenGL は様々なプロパティを持ち、これを変更する手段を提供しているのです 状態変数は、特定の関数を使って制御できるため、スマートに制御することができます OpenGL は驚くほど多くの状態変数を持っています 残念ながら、そのすべてをここで紹介し、意味を説明することは不可能です しかし、それらを制御する方法については、比較的簡単に説明することができるでしょう OpenGL では、状態変数を表す定数が定義されています 私たちは、この定数と値を組み合わせて状態変数を制御することができるのです 状態変数を得るには、次の関数のいずれかを使います void glGetBooleanv(GLenum pname , GLboolean * params); void glGetDoublev(G

  • The Mesa 3D Graphics Library

    Hardware AMD R300 The R300 driver supports AMD's Radeon R300 GPU series. AMD R600 The R600 driver supports AMD's Radeon HD 2000 GPU series. It's officially supported by AMD, and is one of two Linux drivers for the hardware. More information… AMD RadeonSI The RadeonSI OpenGL and OpenCL driver supports AMD's Southern Island GPUs and later. It's officially supported by AMD, and is one of two Linux dr

  • ポリゴンの表示

    glVertex() 関数を使って頂点を設定する場合 必ず glBegin() 関数の後、glEnd() 関数の前に glVertex() 関数を呼び出さなければなりません それ以外の位置で glVertex() 関数を呼び出しても、動作は保障されません 座標は、画面中央を (0 , 0) とするワールド座標系となっています これは、カメラのレンズから見える世界を想像するとわかりやすいでしょう また、何らかの頂点を原点にする座標系を、ワールド座標に対してモデル座標と呼びます 視点や座標変換については、これから少しずつ解説していきます デフォルトでは、カメラは原点に配置され、負の z 軸方向を指しています 2次元グラフィックスと異なり、どんなに大きなオブジェクトを描画しても カメラを引いて遠くから見れば小さくなることを忘れないで下さい 逆に、どんなに小さなものでも近くで見れば大きく見えます