vega prime天气切换

来源:互联网 发布:vscode直接调试ts代码 编辑:程序博客网 时间:2024/05/20 06:24
// 天气类型  :1,晴天;2,阴天 ;3,雾天 ;4,雨天 ;5,雪天void  PublicMember::setWeather(int  WeatherType){          char str[256], *cp = getenv("MPI_LOCATE_VEGA_PRIME");vpEnv*           m_env= * vpEnv::begin();    vpEnvSun*     m_sun=* vpEnvSun::begin();    vpEnvSkyDome* m_skyDome=* vpEnvSkyDome::begin();    vpEnvCloudLayer* m_cloudLayer=* vpEnvCloudLayer::begin();    vpEnvWind*     m_wind=* vpEnvWind::begin();    vpEnvSnow*     m_snow=* vpEnvSnow::begin();    vpEnvRain*     m_rain=* vpEnvRain::begin();        switch (WeatherType){      case 1: // 默认值,晴天        m_env->setVisibilityColor(1.0f, 1.0f, 1.0f, 1.0f);        m_env->setVisibilityRangeOpaque(60000.0f);        m_sun->setHorizonColor(1.0f, 0.545f, 0.239f, 1.0f);        m_skyDome->setGroundColor(0.2117f, 0.286f, 0.15f, 1.0f);        sprintf(str, "%s/config/vegaprime/vpenv/cloud_scattered.inta", cp);        m_cloudLayer->setTextureFile(str);        m_cloudLayer->setTextureTiling(3.0f, 3.0f);        m_cloudLayer->setColor(0.96f, 0.98f, 0.98f, 1.0f);              m_cloudLayer->setElevation(3000.0f, 5000.0f);        m_cloudLayer->setTransitionRange(500.0f, 500.0f);        m_wind->setSpeed(100.0f);        m_snow->setEnable(false);        m_rain->setEnable(false);        break;        case 2: //阴天        m_env->setVisibilityColor(1.0f, 1.0f, 1.0f, 1.0f);        m_env->setVisibilityRangeOpaque(100000.0f);        m_sun->setHorizonColor(1.0f, 0.6f, 0.29f, 1.0f);        m_skyDome->setGroundColor(0.33f, 0.29f, 0.15f, 1.0f);             sprintf(str, "%s/config/vegaprime/vpenv/cloud_few.inta", cp);        m_cloudLayer->setTextureFile(str);        m_cloudLayer->setTextureTiling(5.0f, 5.0f);        m_cloudLayer->setColor(0.96f, 0.98f, 0.98f, 1.0f);              m_cloudLayer->setElevation(3000.0f, 5000.0f);        m_cloudLayer->setTransitionRange(500.0f, 500.0f);        m_wind->setSpeed(15.0f);        m_snow->setEnable(false);        m_rain->setEnable(false);        break;            case 3: //雾天        m_env->setVisibilityColor(0.75f, 0.75f, 0.75f, 1.0f);        m_env->setVisibilityRangeOpaque(5000.0f);        m_sun->setHorizonColor(1.0f, 0.6f, 0.29f, 1.0f);        m_skyDome->setGroundColor(0.8f, 0.82f, 0.83f, 1.0f);                sprintf(str, "%s/config/vegaprime/vpenv/cloud_overcast.inta", cp);        m_cloudLayer->setTextureFile(str);        m_cloudLayer->setTextureTiling(3.0f, 3.0f);        m_cloudLayer->setColor(0.69f, 0.75f, 0.77f, 1.0f);               m_cloudLayer->setElevation(500.0f, 3000.0f);        m_cloudLayer->setTransitionRange(500.0f, 500.0f);        m_wind->setSpeed(0.0f);        m_snow->setEnable(false);        m_rain->setEnable(false);        break;    case 4: //雨天        m_env->setVisibilityColor(0.40f, 0.43f, 0.45f, 1.0f);        m_env->setVisibilityRangeOpaque(50000.0f);        m_sun->setHorizonColor(0.65f, 0.45f, 0.25f, 1.0f);        m_skyDome->setGroundColor(0.33f, 0.29f, 0.15f, 1.0f);             sprintf(str, "%s/config/vegaprime/vpenv/cloud_storm.inta", cp);        m_cloudLayer->setTextureFile(str);        m_cloudLayer->setTextureTiling(3.0f, 3.0f);        m_cloudLayer->setColor(0.52f, 0.56f, 0.61f, 1.0f);              m_cloudLayer->setElevation(1000.0f, 4000.0f);        m_cloudLayer->setTransitionRange(500.0f, 500.0f);        m_wind->setSpeed(5.0f);        m_snow->setEnable(false);        m_rain->setEnable(true);m_rain->setNumParticles( 500000 );        break;        case 5: // 雪天        m_env->setVisibilityColor(0.40f, 0.43f, 0.45f, 1.0f);        m_env->setVisibilityRangeOpaque(50000.0f);        m_sun->setHorizonColor(0.65f, 0.45f, 0.25f, 1.0f);        m_skyDome->setGroundColor(0.33f, 0.29f, 0.15f, 1.0f);        sprintf(str, "%s/config/vegaprime/vpenv/cloud_storm.inta", cp);        m_cloudLayer->setTextureFile(str);        m_cloudLayer->setTextureTiling(3.0f, 3.0f);        m_cloudLayer->setColor(0.52f, 0.56f, 0.61f, 1.0f);               m_cloudLayer->setElevation(1000.0f, 4000.0f);        m_cloudLayer->setTransitionRange(500.0f, 500.0f);        m_wind->setSpeed(5.0f);        m_snow->setEnable(true);m_snow->setNumParticles( 500000);        m_rain->setEnable(false);        break;      default:        break;    }}          
  //注意事项,雨雪的颗粒数可以控制效果,默认值的数目太小,效果不明显。
    vpEnvSnow* pEnvSnow_myEnvSnow = new vpEnvSnow();    pEnvSnow_myEnvSnow->setName( "myEnvSnow" );    pEnvSnow_myEnvSnow->setEnable( false );    pEnvSnow_myEnvSnow->setColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );    pEnvSnow_myEnvSnow->setTextureBlendColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );    pEnvSnow_myEnvSnow->setTextureBlendMode( vpEnvFx::TEXTURE_BLEND_MODE_MODULATE );    pEnvSnow_myEnvSnow->setTextureFile( "" );    pEnvSnow_myEnvSnow->setNumParticles( 50000);  //颗粒数需要设置较多,效果才明显    pEnvSnow_myEnvSnow->setEmitterBoxSize( 10 );    pEnvSnow_myEnvSnow->setInternalClipBoxEnable( false );    pEnvSnow_myEnvSnow->setInternalClipBoxSize( 2 );    PublicMember::CTS_s_pInstancesToUnref->push_back( pEnvSnow_myEnvSnow );    vpEnvRain* pEnvRain_myEnvRain = new vpEnvRain();    pEnvRain_myEnvRain->setName( "myEnvRain" );    pEnvRain_myEnvRain->setEnable( false );    pEnvRain_myEnvRain->setColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );    pEnvRain_myEnvRain->setTextureBlendColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );    pEnvRain_myEnvRain->setTextureBlendMode( vpEnvFx::TEXTURE_BLEND_MODE_MODULATE );    pEnvRain_myEnvRain->setTextureFile( "" );    pEnvRain_myEnvRain->setNumParticles( 50000 ); //颗粒数需要设置较多,效果才明显    pEnvRain_myEnvRain->setEmitterBoxSize( 10 );    pEnvRain_myEnvRain->setInternalClipBoxEnable( false );    pEnvRain_myEnvRain->setInternalClipBoxSize( 2 );    PublicMember::CTS_s_pInstancesToUnref->push_back( pEnvRain_myEnvRain );


//函数体



0 0