From 61a8cf53e2f39e01588d926574ad0254fecd0daa Mon Sep 17 00:00:00 2001 From: turanszkij Date: Mon, 27 Jun 2016 21:02:32 +0200 Subject: [PATCH] skinned model picking added --- WickedEngine/wiRenderer.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 72499c27a..d515b2104 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -3521,9 +3521,19 @@ void wiRenderer::RayIntersectMeshes(const RAY& ray, const CulledList& culledObje for (unsigned int i = 0; iindices.size(); i += 3){ int i0 = mesh->indices[i], i1 = mesh->indices[i + 1], i2 = mesh->indices[i + 2]; - Vertex& v0 = mesh->vertices_Complete[i0]; - Vertex& v1 = mesh->vertices_Complete[i1]; - Vertex& v2 = mesh->vertices_Complete[i2]; + Vertex v0, v1, v2; + if (mesh->hasArmature()) + { + v0 = TransformVertex(mesh, mesh->vertices[i0]); + v1 = TransformVertex(mesh, mesh->vertices[i1]); + v2 = TransformVertex(mesh, mesh->vertices[i2]); + } + else + { + v0 = mesh->vertices_Complete[i0]; + v1 = mesh->vertices_Complete[i1]; + v2 = mesh->vertices_Complete[i2]; + } XMVECTOR& V0 = XMLoadFloat4(&v0.pos); XMVECTOR& V1 = XMLoadFloat4(&v1.pos); XMVECTOR& V2 = XMLoadFloat4(&v2.pos);