Fixed Billboard Matrix

This commit is contained in:
Nils Gaitzsch 2020-05-30 15:40:07 +02:00
parent 6aa679ab9a
commit aff227e84a
2 changed files with 7 additions and 5 deletions

View file

@ -35,11 +35,12 @@ vector<RendererVideoAdapter>* Renderer11::GetAdapters()
void Renderer11::createBillboardMatrix(Matrix* out, Vector3* particlePos, Vector3* cameraPos, float rotation) void Renderer11::createBillboardMatrix(Matrix* out, Vector3* particlePos, Vector3* cameraPos, float rotation)
{ {
/*
Vector3 look = *particlePos; Vector3 look = *particlePos;
look = look - *cameraPos; look = look - *cameraPos;
look.Normalize(); look.Normalize();
Vector3 cameraUp = Vector3(0.0f, -1.0f, 0.0f); *out = Matrix::CreateBillboard(*particlePos, *cameraPos, cameraUp);
Vector3 right; Vector3 right;
right = cameraUp.Cross(look); right = cameraUp.Cross(look);
@ -70,6 +71,7 @@ void Renderer11::createBillboardMatrix(Matrix* out, Vector3* particlePos, Vector
out->_41 = particlePos->x; out->_41 = particlePos->x;
out->_42 = particlePos->y; out->_42 = particlePos->y;
out->_43 = particlePos->z; out->_43 = particlePos->z;
*/
} }
void Renderer11::updateAnimatedTextures() void Renderer11::updateAnimatedTextures()

View file

@ -838,9 +838,9 @@ bool Renderer11::drawSprites()
{ {
float halfWidth = spr->Width / 2.0f * spr->Scale; float halfWidth = spr->Width / 2.0f * spr->Scale;
float halfHeight = spr->Height / 2.0f * spr->Scale; float halfHeight = spr->Height / 2.0f * spr->Scale;
//Extract Camera Up Vector and create Billboard matrix.
Matrix billboardMatrix; Vector3 cameraUp = Vector3(View._12, View._22, View._32);
createBillboardMatrix(&billboardMatrix, &spr->pos, &Vector3(Camera.pos.x, Camera.pos.y, Camera.pos.z), spr->Rotation); Matrix billboardMatrix = Matrix::CreateBillboard(spr->pos, Vector3(Camera.pos.x, Camera.pos.y, Camera.pos.z), cameraUp);
Vector3 p0 = Vector3(-halfWidth, -halfHeight, 0); Vector3 p0 = Vector3(-halfWidth, -halfHeight, 0);
Vector3 p1 = Vector3(halfWidth, -halfHeight, 0); Vector3 p1 = Vector3(halfWidth, -halfHeight, 0);