上图怎样用代码来实现呢?
我看SDK中有Light对象,其下有SetBrightness和SetIntensity等方法可以试试。
这是一个抽象类,该怎样获得这个对象?
怎样设置全局光照?
尝试过如下方法,虽然亮度值改变了,但实际上没效果。
void Test光照() { LightManager& lightManager = LightManager::GetManagerR(); DgnModelP activeDgnModel = ISessionMgr::GetActiveDgnModelP(); LightSetupPtr pLightSetup = lightManager.GetActiveLightSetupPtrForModel(*activeDgnModel); pLightSetup->SetBrightnessMultiplierForView(100); mdlView_updateSingle(0); ViewFlags viewFlags; if (SUCCESS != mdlView_getFlags(&viewFlags, 0)) { return; } // 打开默认光照 viewFlags.ignoreSceneLights = 1; if (SUCCESS != mdlView_setFlags(&viewFlags, 0)) { return; } // 关闭默认光照 viewFlags.ignoreSceneLights = 0; if (SUCCESS != mdlView_setFlags(&viewFlags, 0)) { return; } mdlView_updateSingle(0); }
设置完值后调用LightManager下的SaveSetupToModel保存回去试一下。