bate's blog

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

2011-01-01から1年間の記事一覧

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…

スクリプトしか弄っていない

melとかmaxscript、テキスト処理のlinuxコマンドとか。

豚汁

インスタントの豚汁がおいしい。

シェーダーの管理

DCCとの関連で#ifdefとかでシェーダーが複雑になる。 何とかしたい。 どうしましょう。

接頭辞

h4tex2Dはhalf4を、x4tex2Dはfixed4を返す。

メモ

スペキュラマップだけ、光源の位置とカメラ位置の影響を受ける。 /* % Description of my shader. % Second line of description for my shader. keywords: material classic date: YYMMDD */ // My Add float4x4 WIT : WorldInverseTranspose <string UIWidget = "none";>; float4x4 WV</string>…

おやすみプンプン

読んだら切なくなった。 大学入る前とニート時代を思い出した。プンプンがダークサイドに落ちる所を見たい。

FXComposer超入門13

FXComposer超入門12をピクセルシェーダーで処理したやつ。 頂点で処理した方が味があるように見えてしまう。 /* % Description of my shader. % Second line of description for my shader. keywords: material classic date: YYMMDD */ float4x4 WIT : Wo…

FXComposer超入門12のおまけ

ちょっとだけ改良。 全部頂点で処理。 シルエットを良く見るとジワッとしていると思う。

FXComposer超入門12

今回からは色々と省略。視線と平行になるような平行光源を使ってシルエットっぽいことをしてみた。 リムライト的な感じ。通常は、ポストエフェクトで行うのが普通 頂点シェーダーで行うと汚くなるので、次はピクセルシェーダーでやってみる。 1Dテクスチャを…

実験用の環境

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

FXComposer超入門11

ディファードレンダリングとかディファードシェーディングとかいうやつをしてみる。 1.シーンに板と球とトーラスを追加する。 2.下の絵1のようになる。3.[Effects]にある[DefaultEffect]と[Materials]にある[DefaultMaterial]を削除する。 4.[Effec…

windows7起動失敗

windows7の起動失敗が多発する。 しかもプロダクトキーなどの再入力が求められる。不安定すぐる。

医龍

面白かった。

ブレードランナー

今更ながら見た。 良い雰囲気映画だった。昔やったゲームのクーロンズゲートに雰囲気が似てた。 妖精さんの元ネタっぽい人形とか出てきたし。

うどん

美味しいうどんを食べたい。

FXComposer超入門10

前回画面エフェクトをやったので、 それを利用して画面をボカします。 注意点は、読み込み中のレンダーターゲットに書き込みができないことです。 1.前回のプロジェクトを開きます。 2.前回のcgfxファイルを下のコードに変更します。 /* % Description o…

FXComposer超入門9

ポストエフェクトをやってみます。 画面全体に指定した色を加算します。 超簡単なポストエフェクトです。 これまでとの違いは、 ・レンダーターゲットの指定にScriptという要素が出てくること ・テクニックが2パスになること です。 1.前回のBlinn-Phong…

FXComposer超入門7

頂点単位のフォン鏡面反射をやります。コードだけ載せます。 凸形状ではないので色々と変なところもあります。 /* % Description of my shader. % Second line of description for my shader. keywords: material classic date: YYMMDD */ float4x4 WIT : Wo…

FXComposer超入門6

フォン鏡面反射をやります。 前回のローカル計算のランバートを使います。 基本的には、鏡面反射分を足すだけです。 1.新しいプロジェクトを作成します。 2.ジオメトリを作ります。ここではトーラスを選びます。 3.ポイントライトを作成します。 4.…

FXComposer超入門8

ブリンフォン鏡面反射ハーフベクトルを使うやつです。 ピクセルシェーダーで処理します。 ソースコードだけで済ませます。 ハイライトがでない場合はシーンにカメラをバインドしてください。 /* % Description of my shader. % Second line of description f…

FXComposer超入門5

FXComposer超入門と言いつつもCgFX入門になってしまっているけど気にしない。 超入門3,4ではワールドでライティング計算をしたが、 今回はTeapotのローカル座標でライティング計算を行う。 手順は前回、前々回を参考にすれば大丈夫なのでコードだけを示す…

FXComposer超入門3

ランバート反射をやってみます。 ライティングはピクセルシェーダーでやります。 ランバート反射の理論部分は、詳しい文献がいくらでもあるので説明しません。 1.FXComposerで新しいプロジェクトを作る。 2.バーにある[Teapot]を押します。 3.下の絵1…

頭痛

ヘッドホンしてると頭が痛くなる。

FXComposer超入門4

ライトをレンダーウィンドウで動かせるようにする。 1.ランバートのプロジェクトを開く。 2.バーから[Point]のライトを選ぶ。 3.Teapotと点ライトが重なっているので重ならないようにライトを動かす。 4.左側の[Scenes]→[DefaultScene]→[Node]→[Teap…

連休

連休前に修羅場になりそう。

FXComposer超入門2

以前のFXComposer超入門の板にテクスチャを貼ってみる。テクスチャはファイル指定できるようにする。 1.前のプロジェクトを開く。 2.左側の[Effects]→[Floor]→[Floor.cgfx]を選ぶ。 3.中央にcgfxファイルが開く。 4.下のコード1になるように変更す…