Direct3D

x86ビルドでヒープにXMMATRIXを確保するとうまく動作しない。

てか落ちる。x64ビルドだと大丈夫。 Direct3D11+XNA Mathやってて超ハマってた。Getting Started - Windows applications | Microsoft Docs 型の使用方法のガイドラインただし、ヒープからの割り当てはさらに複雑です。この場合、ヒープから割り当てられるク…

二つのベクトルを徐々に重ねる。

あるベクトルPを、あるベクトルQに重なるように、徐々に変化させる計算方法。 補完とかとはちょっと違う感じ。媒介変数とかは使いません。 変化のさせ方は、ベクトルPとベクトルQのなす平面に垂直な軸に対して、 回転させてPとQの成す角を近付けていく感じ。…

オンラインゲームで良く見かける頭上名前表示をやっちゃおうというハナシ。

一般的な名称は知らないので、この記事ではネームプレートと勝手に呼ぶ事にします。 とりあえずこのネームプレートの条件としては、1. 常にカメラに対する向きを向く四角形の板ポリゴン(ビルボード)。 2. 奥に居るキャラのネームプレートでも同じサイズで…

Direct3Dの射影変換行列。

多くのDirect3Dプログラマは、射影変換には↓の関数を使っているんじゃなかろうか。 D3DXMatrixPerspectiveFovLH( D3DXMATRIX* pOut, float fovY, // Y方向の視野角 float aspect, // 画面のアスペクト比 float zn, // ビューボリュームの近平面までの距離 fl…

Direct3D10でライティングやってみた。

これまたDirect3D9なら、カンターンに出来た事なんだけど・・・ Direct3D10からは、ライティングやマテリアル周りの構造体は廃止されて、 全部シェーダにゆだねられるようになっちまいました。 という事でライトを当てるだけでも一苦労・・・。 //// MyShader.fx..…

Direct3D10で深度/ステンシルバッファを作ってみた。

前回の記事では、ライティングが全くされていなかったので目立たなかったけど、 (DXUTCreateTeapotで頂点カラーが設定されていたので) 頂点カラーをちゃんと出すようにしたら、ポリゴンの前後関係が めちゃくちゃになって見えた(当たり前)ので、 深度/ス…

Direct3D10でティーポットを出してみた。

まず初めに…Direct3D10は… うへあ('A`) って感じ。 まあ自分にシェーダの知識がないってのもだいぶうへあになる原因なんだけど…。 ティーポットを出すだけですっごい苦労した。 前の記事のMyApp.h,MyApp.cppにコードを付け加える形で、 色々コードをメモって…

Direct3D10をちょっとやってみた。

会社で。遊びじゃないですよ。研究研究。 だって会社のマシンだけだもんVistaは・・・。/** @file MyApp.h Direct3D10アプリケーションのスケルトンプログラム @author Dila */#pragma once// この辺は自作ライブラリなので気にしない。 #include "Windows/Main…

線分を描く

DirectGraphicsのリファレンスページが見れなくなったぞゴラー! という事で調べようとしていた線分を描く関数がわからなかったので o-plus氏に聞きました。ネ申! struct MYVERTEX { FLOAT x, y, z; DWORD color; };#define D3DFVF_MYVERTEX(D3DFVF_XYZ|D3DFV…

射影変換行列

最近は新しい会社での為に3Dを勉強し直していて、 自作のベクトルクラスや行列クラスを作ったりしている。 色々やっていて一番謎だった行列が、射影変換行列。 DirectGraphicsでは、D3DXMatrixPerspectiveFovLHとして 用意されていて、以下の様な行列とな…