我有一个复杂的代码,该代码已完全加载了对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/

10-10 20:31