>160
 いや、別にむかついた訳じゃないんだけど・・・
話題がちゃんとでていたのだから、>156でもうちょっと
分からないことを絞って欲しかっただけだよ。気分を
害したのなら申し訳ない。マターリと行こう。

 と言うわけで折角だからソース公開。汚いけど気合いで
読んでもらえると幸い。

D3DMATRIX vmat,wmat //vmat:ビュー変換行列 wmat:モデル変換行列
D3DVECTOR v,half; //v:単位化した頂点座標 half:ハーフベクトル
WORD a = *pTIndices; //頂点のインデックスを取得

wmat = *pMatrixStack->GetTop(); //モデル変換行列を取得
pd3dDevice->GetTransform( D3DTRANSFORMSTATE_VIEW,&vmat); //ビュー変換行列を取得
v = *((D3DVECTOR*)&pVertices[a]); //モデルの座標を取得
D3DMath_VectorMatrixMultiply(v,v,wmat * vmat); //ビュー座標への座標変換
v = Normalize(v); //vの単位ベクトル化
half = v;
half.z -= 1.0f; // vに視点ベクトルを足してハーフベクトルを算出
half = Normalize(half); //ハーフベクトルの単位化
m_pTLVertices[NumVertices].sx = half.x * 0.5f + 0.5f;
m_pTLVertices[NumVertices].sy =-half.y * 0.5f + 0.5f;
m_pTLVertices[NumVertices].sx *= viewport.dwWidth;
m_pTLVertices[NumVertices].sy *= viewport.dwHeight; //テクスチャのUVテクスチャ座標に変換

こんな感じ。