2014-01

vmware

ESXi 5.5について

Realtek の NIC を有効にしたまま ESXi 5.5 を試してみようとがんばってみました。先人の情報があるのでこの部分については楽にできました。 ESXi 5.0 を USBメモリに展開してインストール まず ESXi 5.0や 5.1 をインストールします。光学ドライブを非搭載だったので USB メモリからインストールしました。 その後、sshで...
OpenGL

テクスチャ配列の活用について (OpenGL)

テクスチャ配列の活用について考えてみました。昔はマテリアルに付随する各マップ(ディフューズ、スペキュラ、ノーマル)などを1つにまとめて使うのかなと思っていましたが、また別の使い道もあることがわかってきました。 その活用法というのが、テクスチャアトラスとして使うというものです。テクスチャアトラスとは複数の小さいテクスチャをまとめあげて大きなテクスチャを作成して...
OpenGL

OpenGL でテクスチャ配列を使う

OpenGLでもテクスチャ配列が使用可能になっています。以前DirectX10のテクスチャ配列を使うには、という項目で記事を書いたのですが、あれっきりOpenGLではどうやるのかを放置してしまいました。今回は OpenGL でテクスチャ配列を使うコードを説明したいと思います。 結果 4つの2Dテクスチャをテクスチャ配列としてセットして、UV値によって参照先を...
OpenGL

新しめのTransform feedbackの使い方

OpenGL transform feedbackの使い方で最近は少し変わって便利に使えるようになったようです。前回、書き込んだプリミティブ数をCPUで取得していましたが、これが不要となるようです。いわゆるDirectX の DrawAuto っぽいものがOpenGLでも実現できるようになりました。 使い方は、以下のような感じです。ポイントは GL_TRAN...
OpenGL

Transform Feedback で GPU Particle っぽいもの

OpenGLの transform feedback を使って GPU パーティクルっぽいものにチャレンジしてみました。以前、transform feedback を試していたときは、ストリームアウトばかり気にしていて、せっかくのGPUで演算が完了できるという点を見落としていました。 今回は VBOを2つ用意してこれをピンポンすることで頂点および情報の更新を...
OpenGL

ジオメトリシェーダーでポイントスプライト(OpenGL)

OpenGLでテセレーションとかインスタンシングとか試している割に、基本的なジオメトリシェーダーでポイントスプライトを実装してみるということをやっていなかったので、改めて試してみます。 方針 とりあえず四角形の4頂点をポイントスプライトとして描画することを考える。DirectXであれ最近のOpenGLであれ、頂点そのものを描画する機能はシェーダーを使って描画...
OpenGL

最近でのワイヤフレーム描画 (OpenGL 4)

前回のテセレーションの試作において、OpenGLの関数にてワイヤフレームを描画していたのですが、動画公開時によくよく見てみると、あるタイミングでワイヤフレームとテセレーション結果が一致していないという妙な症状が出ていることがわかりました。  そこでワイヤフレームの描画について見直しをしてみようと思いました。OpenGL 4.0 Shading Languag...
OpenGL

定数バッファ(Uniform Block)について

DirectXのサンプルを見ているとC++側とHLSL側とで同じ並びの構造体を作ってデータを送っているように見えます。データのレイアウト規則は同じになるのが保証されるのか少々疑問です。一応 D3Dの関数でシェーダーリフレクションが使えるので、調査することはできますが、そこまでやってC++側の定数バッファを作成している例を見かけたことがありません。  一方、O...
OpenGL

OpenGL でテセレーションのシェーダー(TCS,TES)を使う

OpenGLの4.x世代でテセレーションのシェーダーが使えるようになり、DirectX11相当になりました。前回は簡単な三角形や四角形の再分割は作ってみたので、今回はモデル形状について適用してみたいと思います。  そして割とテセレーションのサンプルでは定番の PN Triangles の方法で OpenGLのシェーダー Tessellation Contro...
OpenGL

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

描画方法についてはキューブを回すところまでできて一段落したので、しばらくは追加された機能について試していきたいと思います。今回は OpenGL 4.x で追加されたハードウェアのテセレーションについてです。DirectX 11 でいうところの、ハルシェーダーだったりドメインシェーダーだったりに相当します。OpenGL ではこれらを、テセレーションコントロール...