DirectX10

OpenGL

IntelグラボとOpenGLの苦悩 その2

シェーダーを使う状況かつVertexBufferObject(VBO)を使ってということを前提条件とします。 このとき、glEnableVertexAttribArray, glVertexAttribPointer等を使って、 頂点ストリームを設定していくのが自然です。しかしながら今回、これでトラブルに見舞われました。 GL_ARB_vertex_prog...
DirectX

DirectX10でテクスチャ配列を使用する例

前回の日記で書いた、DirectX10でテクスチャ配列を使用するサンプルができました。 いろいろとはまりどころはあったのですが、ようやく出来ました。 注意点はその都度説明します。今回のサンプルではテクスチャ配列を使う例ということで、 下の図のようなイメージで実装しました。 2枚のテクスチャをテクスチャ配列として、あたかも1つのテクスチャオブジェクトとして扱い...
DirectX

DirectX10以降のテクスチャ配列について

今回気になることもあって、改めて調べてみました。 ■ はじめに 聞いていた話ではテクスチャ配列の利便性っていうものは、 複数のテクスチャを1つの変数(名)で扱えて便利だよって感じでした。 また大抵の場合、使用されるテクスチャの集合(セット)はユニークであるし、 そういった場合にはそれら集合をまとめて変更できるから良いって話でした。 * 例 あるモデルに付いて...
DirectX

D3D10_TEXTURE2D_DESCのArraySize。テクスチャ配列の罠?

DirectX10でテクスチャ配列使ってみようと思い、 ソースコードを書いて試そうとした矢先に躓きました。D3D10_TEXTURE2D_DESCのArraySize = 2; として、 テクスチャを作成するも失敗。 0x773fb727 (KernelBase.dll) で初回の例外が発生しました: Microsoft C++ の例外: _com_erro...
DirectX

シェーダーリフレクション [DirectX10]

シェーダーの中身がどのようなものが詰まっているかを取得するための方法です。 なかなか情報がなくて大変でした。 やりたいこととしては、シェーダーのバイナリファイルから どのような変数およびデータ型がどの位置に存在するのかと知る方法となります。D3DX9には存在していたID3DXConstantTableのようなものを D3D10ではどうやるかという感じになるで...
DirectX

D3D10始めました -第3回 Texture使用-

今回はテクスチャを読み込んで表示させてみます。 ■シェーダーファイル まずはシェーダーのソースを示します。 従来のシェーダーと変わったところと言えば、ピクセルシェーダー内の サンプラーおよびテクスチャのアクセス部分です。 対象とするテクスチャからのサンプルを、どのように行うか(サンプラ)、どの位置からとるか(UV)という意味のコードになっているように読み取れ...
DirectX

DirectX10 始めました -第2回-

前回は初期化およびクリア処理までだったので、 今回は最初の三角形をだす部分までをやってみます。 ■ 頂点バッファの準備 DirectX10では頂点およびインデックス格納には、バッファオブジェクトが必須です。 以前のDrawPrimitiveUPとかが消えてしまったので。 今回はインデックスを使わずに頂点バッファだけを準備します。 struct Vertex ...
DirectX

DirectX10を始めました

■はじめに 今はもうDirectX11が出て使われ始めていますが、 今更DirectX10の勉強を始めてみました。 今回初ということで、画面のクリアをするプログラムを作ってみました。 これをベースにしていろいろと機能を触ってみようかと思います。 ■DXGIのセットアップ DXGIとはスワップチェインとか管理しているレイヤーになります。 ハードウェアデバイス列...