我嘗試從MD5ANIM和MD5Mesh文件(Doom中的3D動畫和模型格式)加載動畫到我的DX 11延遲渲染器。
除了必須使用XNA Math更新模型頂點位置和動畫法線之外,一切正常。 以下代碼計算旋轉法線的結果總是-1。#QNAN00和模型顯示爲全黑。 除此之外,位置的計算工作正常,您可以看到正常運行的動畫完全沒有法線。MD5在DirectX X中的3D模型和動畫11.正常旋轉以更新模型結果爲1.#QNAN00
// Add to vertices normal and ake weight bias into account
tempVert.normal.x -= rotatedPoint.x * tempWeight.bias;
tempVert.normal.y -= rotatedPoint.y * tempWeight.bias;
tempVert.normal.z -= rotatedPoint.z * tempWeight.bias;
//End
在計算beginng的值是:
浮子tempWeight.bias = 1.0000000
XMFLOAT3 rotatedPoint X = -0.022973990 Y = -0.053293169 Z = -0.10924719
XMFLOAT3 tempVert .normal = x = 0.00000000 y = 0.00000000 z = 0.00000000
我不得不提到我計算for循環中的值。 循環後,我存儲的值是這樣的:
MD5Model.subsets[k].positions[i] = tempVert.pos; // Store the vertices position in the position vector instead of straight into the vertex vector
MD5Model.subsets[k].vertices[i].normal = tempVert.normal; // Store the vertices normal
XMStoreFloat3(&MD5Model.subsets[k].vertices[i].normal,XMVector3Normalize(XMLoadFloat3(&MD5Model.subsets[k].vertices[i].normal)));
乾杯最大