bate's blog

調べたこと実装したことなどを取りとめもなく書きます。

dx11

ジオメトリシェーダーで点から四角形を作成

ジオメトリシェーダーで点から四角形を作成するシェーダーを作った。 テスト環境のフレームワークを作ったのでちょっとしたサンプルを作るのが楽。 //-------------------------------------------------------------------------------------- // Constant …

フォントとメニュー

しばらくDirectX11の勉強をサボっていたので再開してみた。 フォントとメニューを作った。 フォントの縦横のサイズが均一なので半角英数字を表示すると間の抜けた感じになる。

テクスチャ管理

テクスチャを管理するクラスを作ってみた。 キャッシュに残っていれば使う。 参照カウンターが0になったらキャッシュを消す。 #ifndef __cTextureManager_h__ #define __cTextureManager_h__ #include <d3d11.h> #include <d3dx11.h> #include <string> #include <map> class cTextureManager</map></string></d3dx11.h></d3d11.h>…

カメラ3

ピボットも追加。回転の中心を原点に移動すること。povit(ピボット):注視点の上方向を軸にカメラ位置を回転 XMVECTOR eye = m_pCamera->getPosition(); XMVECTOR up = m_pCamera->getUp(); XMVECTOR at = m_pCamera->getLookAt(); XMVECTOR pos = eye - at; …

カメラ2

カメラにトラックとクレーンを追加。 track(トラック):視線を固定して左右に移動 crane(クレーン):視線を固定して上下に移動回り込みとかのカメラ用語を調べたが出てこないが・・・前のカメラ制御クラスに追加する形。 実装部分だけ、 void cCameraControlle…

カメラ

ビルボード的なやつの確認のためにカメラクラスを作成した。 とりあえず動いているので良しとする。カメラクラス ビュー行列とプロジェクション行列の管理をする。カメラ制御クラス カメラを参照してdolly, pan, tiltを行う。 dolly(ドリー):カメラの前後移…

ビルボード的なやつ

ここでカンニングしつつ。 http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?%A5%D3%A5%EB%A5%DC%A1%BC%A5%C9#w8301370頂点バッファ作成時の頂点座標決める時に板がXY平面と平行になるようにした。 [ワールド変換行列] = [ワールドスケール行列] * [平…

プリプロセッサ

これを書けば良いみたい。 #define _XM_NO_INTRINSICS_ #include <xnamath.h></xnamath.h>

XMMATRIXを使うクラス、構造体

XMMATRIXやXMVECTORを使うクラスを作る度にハング。 XM関係はこんな状態で放置なのだろうか。

Win7x64でVC++EEのWin32ビルド

カメラクラスを作ろうとした時に嵌ったポイント。XMMATRIXやXMVECTORをメンバに持つクラスや構造体は、 絶対に16バイトアライメントじゃないと駄目らしい。 スタックでXMMATRIXを確保・使用しても大丈夫だが、 ヒープで確保・使用する場合は、Win32ビルドだ…

XMMATRIX

下記の記述でハングする。 どうして? [XMMATRIX型のクラスメンバ] = XMMatrixIdentity(); XMMATRIX, XMVECTORはクラスのメンバにしたら駄目なのか?

RenderToTextureのエラー解決

Renderの頭に最初に下記を実行する。 シェーダーリソースのスロット0にリソースが残っていた。 ID3D11ShaderResourceView *const pSRV[1] = {NULL}; m_pImmediateContext->PSSetShaderResources(0, 1, pSRV);

RenderToTexture

1:背景灰色でテクスチャを貼った三角形をテクスチャに描画 2:背景を濃い青にして、1で描画したテクスチャを貼った四角形を描画表示はできているが、エラーが出る。 ShaderResourceViewの問題らしいが解決方法が分からない。 D3D11: WARNING: ID3D11Devi…

実験用の環境

色々と整備してみようか。

tutorial05, 06

コンスタントバッファー便利だけど、オブジェクトが増えると管理が面倒になりそう。

tutorial04

コンスタントバッファの更新で、 ワールド、カメラ、射影を転置行列にして渡す意味が分からない。転置にしなくても、シェーダーのmulの引数を入れ替えれば動く。。。

tutorial03

Tutorial3: シェーダーとエフェクトシステム まとめ 前のチュートリアルで、頂点バッファの設定し、GPUに1つの三角形を渡した。 今、グラフィックスパイプラインを実際に見渡して、各ステージがどうのように働くかを見る。 シェーダーの概念とエフェクトシ…

tutorial02の改造

A.四角形を表示せよ →1.頂点配列を変更 2.D3D11_BUFFER_DESC::ByteWidthフィールドを頂点配列の要素数に合わせる 3.プリミティブ接続形態をトライアングルストリップに変更 4.ID3D11DeviceContext::Drawの頂点数を頂点配列の要素数に合わせる 1. …

tutorial02

三角形の描画サンプルでした。 誤魔化しつつ日本語にした。 Tutorial 2: Renderaing a Triangle 前のチュートリアルで単色ウィンドウの最小のDX11アプリを作った。 ここでは、画面に一つの三角形を描画するためにアプリケーションを拡張する。 三角形と関係…

スワップチェーン

バッファ管理オブジェクトで合ってるのかしら。不安。

tutorial01

英語だけど読んだよ。 誤魔化しながら日本語にしてみたよ。 Tutorial 1:Direct3D 11 Basics Direct3D 11デバイスの準備 一番最初にすることは下記のオブジェクトを作成すること ・デバイス ・イミディエイトコンテキスト(DX11からの新しいオブジェクト) ・ス…

背景色を変更

緑に変更してみた。今日はこれで終了。