我有一个复杂的代码,该代码已完全加载了对ISceneNode对象的引用。我想为这些阴影。但是,使我们启用阴影的功能是addShadowVolumeSceneNode(),该功能仅可用于IMeshSceneNode类。
我的问题是,如何将ISceneNode转换为IMeshSceneNode以便对其施加阴影?
ps:我知道不可能将阴影应用于ISceneNode:http://irrlicht.sourceforge.net/forum/viewtopic.php?t=42174
最佳答案
如果ISceneNode
指针实际上指向IMeshSceneNode对象,则可以将其转换为IMeshSceneNode
指针:
void AddShadowToSceneNodeIfPossible(ISceneNode* node)
{
IMeshSceneNode* meshNode = dynamic_cast<IMeshSceneNode*>(node);
if (meshNode)
{
meshNode->addShadowVolumeSceneNode(...);
}
}
但是更好的解决方案是从头开始将
IMeshSceneNode
指针存储为IMeshSceneNode
指针。关于c++ - 问题:如何将ISceneNode转换为IMeshSceneNode?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52111665/