Compute tangents for core track mesh, allowing normal maps
This commit is contained in:
parent
55489bc188
commit
c2fb05cc61
@ -839,17 +839,21 @@ bool Track::loadMainTrack(const XMLNode &root)
|
|||||||
merged_mesh->addMesh(mesh);
|
merged_mesh->addMesh(mesh);
|
||||||
merged_mesh->finalize();
|
merged_mesh->finalize();
|
||||||
|
|
||||||
adjustForFog(merged_mesh, NULL);
|
scene::IMeshManipulator* manip = irr_driver->getVideoDriver()->getMeshManipulator();
|
||||||
|
// TODO: memory leak?
|
||||||
|
scene::IMesh* tangent_mesh = manip->createMeshWithTangents(merged_mesh);
|
||||||
|
|
||||||
|
adjustForFog(tangent_mesh, NULL);
|
||||||
|
|
||||||
// The merged mesh is grabbed by the octtree, so we don't need
|
// The merged mesh is grabbed by the octtree, so we don't need
|
||||||
// to keep a reference to it.
|
// to keep a reference to it.
|
||||||
scene::ISceneNode *scene_node = irr_driver->addMesh(merged_mesh);
|
scene::ISceneNode *scene_node = irr_driver->addMesh(tangent_mesh);
|
||||||
//scene::IMeshSceneNode *scene_node = irr_driver->addOctTree(merged_mesh);
|
//scene::IMeshSceneNode *scene_node = irr_driver->addOctTree(merged_mesh);
|
||||||
// We should drop the merged mesh (since it's now referred to in the
|
// We should drop the merged mesh (since it's now referred to in the
|
||||||
// scene node), but then we need to grab it since it's in the
|
// scene node), but then we need to grab it since it's in the
|
||||||
// m_all_cached_meshes.
|
// m_all_cached_meshes.
|
||||||
m_all_cached_meshes.push_back(merged_mesh);
|
m_all_cached_meshes.push_back(tangent_mesh);
|
||||||
irr_driver->grabAllTextures(merged_mesh);
|
irr_driver->grabAllTextures(tangent_mesh);
|
||||||
|
|
||||||
// The reference count of the mesh is 1, since it is in irrlicht's
|
// The reference count of the mesh is 1, since it is in irrlicht's
|
||||||
// cache. So we only have to remove it from the cache.
|
// cache. So we only have to remove it from the cache.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user