タグ

OpenGLに関するAlexAndRiteのブックマーク (64)

  • geometry shaderで草原を作る | 測度ゼロの抹茶チョコ

    はじめに geometry shaderで草原を作ったのでメモします。 Unityのバージョン:2018.3.0b8 ソースコード ソースコードは次のリポジトリに置いてあります。 MatchaChoco010/UnityGeometryShaderGrass 動画 次の動画は作成した草原の動画です。 草を生やす geometry shaderでメッシュの頂点を受け取って、 その頂点の位置に草のメッシュを生成しています。 生成する草のメッシュは次のような平面を十字に交差させた形です。 このメッシュに次の草のテクスチャを貼っています。 頂点IDをSV_VertexIDセマンティクスで受け取って、 その値をもとにランダムで4種類の草を切り替えています。 ランダムの関数には次のものを使いました。 ランダムな値を返す関数 on GLSL - Qiita 2次元の値を渡す必要があるようなので.xxとし

    geometry shaderで草原を作る | 測度ゼロの抹茶チョコ
  • 日本語文字列を描画するには

    解説 OpenGLで、日語文字列を描画する関数は、今のところ標準では用意されていないので、自作します。 OpenGLで、日語文字列を描画するための一つの方法は、 ① WindowsAPIを用いて、日フォントオブジェクトを作成する。 ② ①で作成した日フォントオブジェクトと、WindowsAPIを用いて、日語文字列のOpenGL用の白黒ビットマップを作成する。 ③ ②で作成した日語文字列のOpenGL用の白黒ビットマップと、Openglの関数を用いて、日語文字列を描画する。 です。 再描画のたびに、毎回①②③を処理するのは効率的ではありません。 (フォントが変わらないのであれば、2回目以降の描画時には、①の処理は1回目の処理の結果を再利用する方が効率的です。 フォントも文字列も変わらないのであれば、2回目以降の描画時には、①②③の処理は1回目の処理の結果を再利用する方が効率

  • 低レイヤーグラフィックAPI Vulkanを始めよう

    次世代グラフィックAPI Vulkanがどんなヤツであるかを、実際のコードを交えて解説します。 これは2017年7月22日に行われた 第13回 カーネル/VM探検隊 の発表資料です。

    低レイヤーグラフィックAPI Vulkanを始めよう
  • Vulkanで困るところ :: ☆PROJECT ASURA☆

    こんばんわPocolです。 Vulkanについてある程度知見が増えてきたので,ここでちょっとまとめておこうと思います。 Vulkanに適しているもの・適していないもの <Vulkan移植を避けるべきもの> ・OpenGL → Vulkanへの移植案件。 ・Direct3D 11 → Vulkanへの移植案件。 ・ゲームエンジンやライブラリなどマルチプラットフォーム対応されているプログラムのVulkan対応 <Vulkan移植してもいいかなという条件> ・非マルチプラットフォーム(対応APIがVulkanのみ) ・ブレンドステートやラスタライザ―ステート,シェーダなどの組み合わせが事前にすべて分かるアプリケーション。 ・CPUがボトルネック。 ・コピーコマンドをほとんど使わない(動画テクスチャみたいなものを使用しない) ・D3D12で動くプログラム まず,恐らくゲーム業界で

    Vulkanで困るところ :: ☆PROJECT ASURA☆
    AlexAndRite
    AlexAndRite 2016/11/02
    まじかよ。反MS涙目
  • No Man’s Sky – Procedural Content | 3dgamedevblog

    No Man’s Sky is a space exploration game which uses procedural generation technology in order to create game environment and assets (textures, models, terrains etc). I was very excited since this game was announced back in 2013, not only for the game itself, but mostly for a chance to start researching the game files and find out how the game works. The game turned out as one of the most controver

  • Transitioning from OpenGL to Vulkan

    When to transition from OpenGL to Vulkan With the availability of Vulkan there are now two open graphics APIs that target similar platforms. This brings up the questions which API to choose for new applications, or what to do with existing applications. Just because Vulkan is newer, it doesn’t mean it is always better, nor that OpenGL became an inferior choice over night. Will the application bene

    Transitioning from OpenGL to Vulkan
  • Vulkanの話 第1回 - もんしょの巣穴

    簡単に言えば、OpenGLのDX12です。つまり、Khronos Groupが策定している次世代のLow Level Graphics APIです。 DirectXが11から12へバージョンが上がった際にAPIを大きく変更し、いわゆるコンソールゲーム機のようなLow LevelなAPIになりました。

  • Vulkanを試してみた - 株式会社カブク

    はじめに カブクの甘いもの担当、高橋憲一です。 エンジニアとしての担当領域はサーバーサイドで動作する3Dモデルデータの解析/レンダリングエンジンの開発です。 rinkakやMMSではユーザーの皆さんにアップロードして頂いた3Dモデルデータをプレビュー表示する機能があるのですが、その画像のレンダリングは mesa という OpenGL 互換のライブラリを使って開発したエンジンでサーバーサイドでオフスクリーンレンダリングをしています。で、今回は OpenGL ではなく、新しいグラフィクスAPIである Vulkan を Android N で試しみた話をしたいと思います。 Vulkanとは AppleのMetalや、AMDのMantle、MicrosoftのDirect X12など、最近のモダンな3D グラフィクスAPIの潮流はドライバ層を薄くしてオーバーヘッドを減らすというものです。前述のOp

    Vulkanを試してみた - 株式会社カブク
  • Vulkan SDK付属のGLSLコンパイラー - syghの新フラグメント置き場

    2016年2月にVulkanの正式仕様とSDKがリリースされ、その後NVIDIAやAMDなど大手GPUベンダー各社からもPC向け正式ドライバーがリリースされ始めているので、そろそろ試してみることにしました。まずはシェーダーのコンパイラーまわりから入ります。ちなみにVulkan仕様とSDKは、最初の正式リリース以降かなり頻繁にリビジョンアップが続けられています。 LunarXchange - The source for Vulkan development tools (sponsored by Valve) Vulkan用GLSLコンパイラー Vulkan SDKにはGLSLをコンパイルしてSPIR-Vを出力することのできるオフラインコンパイラー「glslangValidator」が付属します。 32bit版 (x86) は下記にインストールされます(Windows環境)。 %VK_SD

    Vulkan SDK付属のGLSLコンパイラー - syghの新フラグメント置き場
  • 宇宙を僕の手の上に ~gltest開発blog~ Windows+OpenGLで日本語を表示する方法

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 今まで特に不便を感じていなかったのでトライしていなかったが、 OpenGL を扱う上で大きなハードルになっている多バイト文字の描画について、今回は実験の結果をまとめる。 (尚、 DirectX の言語対応についてはよく知らないが、世の中には右手系の座標空間で日語を使いたい人もいるはずだ!) 長いので全文は「続きを読む」で。 そもそも、 OpenGL はフォントの描画に関しては何の仕組みも持っていない。フォントは線分やポリゴンと同じようなプリミティブとして描画する必要がある。 ここで最初の選択肢となるのが、ビットマップやテクスチャといった、ラスタ画像で文字を描画するのか、それとも輪郭をなぞるようにプリミティブを描画する のか、ということである。前者は既存のフォントを使用する上では

    宇宙を僕の手の上に ~gltest開発blog~ Windows+OpenGLで日本語を表示する方法
  • Khronos Template 2015

  • OpenGL 4.x でのテセレーション

    描画方法についてはキューブを回すところまでできて一段落したので、しばらくは追加された機能について試していきたいと思います。今回は OpenGL 4.x で追加されたハードウェアのテセレーションについてです。DirectX 11 でいうところの、ハルシェーダーだったりドメインシェーダーだったりに相当します。OpenGL ではこれらを、テセレーションコントロールシェーダーとテセレーションエバリュエーションシェーダーと呼びます。なかなかOpenGLでテセレーションの簡単なサンプルを見かけなかったので、ちょっと大変でしたが何となく最小限のものができたので今回はこれを説明&公開します。 テセレーションとは テセレーションとは、ポリゴン面をさらに分割してよりなめらかな曲面を作り出すのに使用されます。近年のOpenGLやDirectXでは、テセレーションを行うハードウェアが搭載されており、これらをテセレ

    OpenGL 4.x でのテセレーション
  • Introduction - Vulkan Tutorial

    This site is not affiliated with or endorsed by the Khronos Group. Vulkan® and the Vulkan logo are trademarks of the Khronos Group Inc. About E-book Tutorial structure About This tutorial will teach you the basics of using the Vulkan graphics and compute API. Vulkan is a new API by the Khronos group (known for OpenGL) that provides a much better abstraction of modern graphics cards. This new inter

  • OpenGL 4世代での描画手順 その2

  • GLSLが使いにくい件について - syghの新フラグメント置き場

    (これは2011-09-20に書いた故OCNブログの記事を加筆修正したものです) 個人的にグラフィックス プログラミングが好きで、仕事でも趣味でもDirectXやOpenGLを使っているんですが、OpenGL/OpenGL ESの不甲斐なさにそろそろ愛想が尽きてきました。 具体的にDirectX (Direct3D) と比べてOpenGLのどこがダメなのか、今回はそれぞれのシェーダー言語(シェーディング言語)であるHLSLとGLSLを比較しながら、OpenGLおよびGLSLの使いづらさを列挙していきましょう。 エフェクト 普通はHLSLもGLSLもシェーダーステージごとにプログラムのソースファイル(またはソースコード文字列)を分けてコンパイルしますが、HLSLというかDirect3Dでは「エフェクト」と呼ばれるフレームワークライブラリを使うと、頂点シェーダーもジオメトリ シェーダーもピクセ

    GLSLが使いにくい件について - syghの新フラグメント置き場
    AlexAndRite
    AlexAndRite 2015/01/03
    ほんとクソ
  • テクスチャー・バッファー・オブジェクト(TBO)とは何か - tuedaの日記

    OpenGLにわりと新しく入った機能でテクスチャー・バッファー・オブジェクト(TBO)というものがある。 これが非常にわかりにくい機能で過不足なく明快に説明した文章を見たことがない。 まずTBOはテクスチャーバッファーという名前のオブジェクトではなく、 2Dテクスチャーやキューブテクスチャーなどのテクスチャーの1種である。 つまりTBOオブジェクトではなくTBOテクスチャーである。 通常の2Dテクスチャーが2次元の画像データから値を拾ってくるのに対して、 TBOは汎用のバッファーオブジェクトから値を拾ってくるテクスチャーである。 Texture・2Dの連想でTexture・BufferObjectと名前を付けたのだろうが、激しく誤解を受けそうなネーミングである。 素直にBufferObject・Textureにしておけばいいのに。。。。 GLSLの中では通常の2Dテクスチャーはsample

    テクスチャー・バッファー・オブジェクト(TBO)とは何か - tuedaの日記
  • OpenGLでムカつくこと

    Rich Geldreich's Blog: Things that drive me nuts about OpenGL Valve社員のRich Geldreichが、OpenGLの設計が古臭すぎることについて不満を爆発させている。 OpenGLについてムカつくことを脳内ダンプしてみる(これは個人的な件秋であって、Valveや同僚の見解ではない。あと、ここ数年、OpenGLと格闘してきたので、今日は機嫌が悪い)。これを投稿する理由はこうだ。GL APIには再設計が必要だ。というのも、思うに、MantleやD3D12がどうせ昼飯前にOpenGL APIを駆逐してしまうだろうから、この問題については、今考える必要があるのだ。 ここに見れば些細な問題もある。単にAPIのトレースの問題というのもある。しかし、それらの問題が積み重なって、他の開発者にGL APIという環境に飛び込むよう誘うのを躊

  • OpenGLでGPUスキニング【頂点テクスチャ編】 - とあるSEの研究記録Ⅲ(レコーダー)

    OpenGLでGPUスキニング【行列パレット編】からの続き。 前回はボーン行列をMatrix配列でGLSLへ渡してスキニングをしていましたが、レジスタ数の上限により一定数を超えるボーンは渡せない欠点がありました。 今回ではその問題を解決すべく、頂点テクスチャを使ってスキニングをします。 Vertex Texture Fetch(バーテックス テクスチャ フェッチ) 日語名:頂点テクスチャ 頂点シェーダ内からテクスチャの読み込みが出来る機能のこと。 色データ(0~255)以外の情報を格納することができ、定数レジスタより大量のデータを扱うことが可能。ピクセルシェーダでのテクスチャ読み込みと同様、自由にテクスチャ座標を指定でき、複数回読み込むことが出来ます。 CPUで時間の掛かる演算処理をGPUで処理させる時のデータ受け渡しに使われたりします (アプリケーション←→GPU間でのデータのやり取り

  • OpenGLでオフスクリーンレンダリング: framebuffer object

    ※OpenGLに関連する項目は 別ページ に整理しました。ここにあるものは内容が古い場合があります。 (サンプルは一番最後にあります) 目標 OpenGLにはこれまで、プラットフォームに依存しないテクスチャへ直接レンダリングを行う手法は 存在していませんでしたが、framebuffer object が規定され、ウィンドウ以外への オフスクリーンレンダリングが可能になったことで、テクスチャへのレンダリングも プラットフォームに依存せず行えるようになりました。 ここでは framebuffer object の概要について記述します。 framebuffer object とは framebuffer object は、OpenGLでプラットフォームに依存せず オフスクリーンレンダリングを実現する機構です。 OpenGL 2.0 の正式仕様には取り込まれていません。 OpenGL拡張 EXT

  • 『iPhoneアプリ開発、その(100) ようやく終息OpenGL ESセットアップ』

    ドキュメントにOESはサフィックスだとかなんとか書いてるんで思いついたのが、glBindFramebufferOESじゃなくBind Framebufferとか、いくつかに分けての検索方法。 ヒットしました。 glBindFramebuffer って、 OpenGL ES 2.0 Reference Pages に載ってるんじゃ~ん。 これによると glGenFramebuffers フレームバッファの固有名を作成 glBindFramebuffer 与えられた固有名をもつフレームバッファを作成 となるみたいです。 実際のソースでは glGenFramebuffersOES(1, &viewFramebuffer); glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); と書かれてます。ここで、glGenFramebuffer

    『iPhoneアプリ開発、その(100) ようやく終息OpenGL ESセットアップ』