本文整理汇总了C++中cinderfx::Fluid2D::enableVorticityConfinement方法的典型用法代码示例。如果您正苦于以下问题:C++ Fluid2D::enableVorticityConfinement方法的具体用法?C++ Fluid2D::enableVorticityConfinement怎么用?C++ Fluid2D::enableVorticityConfinement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cinderfx::Fluid2D
的用法示例。
在下文中一共展示了Fluid2D::enableVorticityConfinement方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: glEnable
void Fluid2DParticlesApp::setup()
{
glEnable( GL_TEXTURE_2D );
gl::enableAlphaBlending();
gl::enableAdditiveBlending();
mRgbScale = 50;
mDenScale = 50;
mFluid2D.set( 192, 192 );
mFluid2D.setDensityDissipation( 0.99f );
mFluid2D.setRgbDissipation( 0.99f );
mVelScale = 3.0f*std::max( mFluid2D.resX(), mFluid2D.resY() );
mParams = params::InterfaceGl( "Params", ivec2( 300, 400 ) );
mParams.addParam( "Stam Step", mFluid2D.stamStepAddr() );
mParams.addSeparator();
mParams.addParam( "Velocity Input Scale", &mVelScale, "min=0 max=10000 step=1" );
mParams.addParam( "Density Input Scale", &mDenScale, "min=0 max=1000 step=1" );
mParams.addParam( "Rgb Input Scale", &mRgbScale, "min=0 max=1000 step=1" );
mParams.addSeparator();
mParams.addParam( "Velocity Dissipation", mFluid2D.velocityDissipationAddr(), "min=0.0001 max=1 step=0.0001" );
mParams.addParam( "Density Dissipation", mFluid2D.densityDissipationAddr(), "min=0.0001 max=1 step=0.0001" );
mParams.addParam( "Rgb Dissipation", mFluid2D.rgbDissipationAddr(), "min=0.0001 max=1 step=0.0001" );
mParams.addSeparator();
mParams.addParam( "Velocity Viscosity", mFluid2D.velocityViscosityAddr(), "min=0.000001 max=10 step=0.000001" );
mParams.addParam( "Density Viscosity", mFluid2D.densityViscosityAddr(), "min=0.000001 max=10 step=0.000001" );
mParams.addParam( "Rgb Viscosity", mFluid2D.rgbViscosityAddr(), "min=0.000001 max=10 step=0.000001" );
mParams.addSeparator();
mParams.addSeparator();
mParams.addParam( "Vorticity Confinement", mFluid2D.enableVorticityConfinementAddr() );
mParams.addSeparator();
std::vector<std::string> boundaries;
boundaries.push_back( "None" );
boundaries.push_back( "Wall" );
boundaries.push_back( "Wrap" );
mParams.addParam( "Boundary Type", boundaries, mFluid2D.boundaryTypeAddr() );
mParams.addSeparator();
mParams.addParam( "Enable Buoyancy", mFluid2D.enableBuoyancyAddr() );
mParams.addParam( "Buoyancy Scale", mFluid2D.buoyancyScaleAddr(), "min=0 max=100 step=0.001" );
mParams.addParam( "Vorticity Scale", mFluid2D.vorticityScaleAddr(), "min=0 max=1 step=0.001" );
mFluid2D.setDt( 0.1f );
mFluid2D.enableDensity();
mFluid2D.enableRgb();
mFluid2D.enableVorticityConfinement();
mParticles.setup( getWindowBounds(), &mFluid2D );
}
示例2: Colorf
void Fluid2DParticleSoupApp::setup()
{
glEnable( GL_TEXTURE_2D );
mDenScale = 50;
mRgbScale = 40;
mFluid2D.set( 192, 192 );
mFluid2D.setDensityDissipation( 0.99f );
mFluid2D.setRgbDissipation( 0.99f );
mVelScale = 3.0f*std::max( mFluid2D.resX(), mFluid2D.resY() );
mParams = params::InterfaceGl( "Params", Vec2i( 300, 400 ) );
mParams.addParam( "Stam Step", mFluid2D.stamStepAddr() );
mParams.addSeparator();
mParams.addParam( "Velocity Input Scale", &mVelScale, "min=0 max=10000 step=1" );
mParams.addParam( "Density Input Scale", &mDenScale, "min=0 max=1000 step=1" );
mParams.addParam( "Rgb Input Scale", &mRgbScale, "min=0 max=1000 step=1" );
mParams.addSeparator();
mParams.addParam( "Velocity Dissipation", mFluid2D.velocityDissipationAddr(), "min=0.0001 max=1 step=0.0001" );
mParams.addParam( "Density Dissipation", mFluid2D.densityDissipationAddr(), "min=0.0001 max=1 step=0.0001" );
mParams.addParam( "Rgb Dissipation", mFluid2D.rgbDissipationAddr(), "min=0.0001 max=1 step=0.0001" );
mParams.addSeparator();
mParams.addParam( "Velocity Viscosity", mFluid2D.velocityViscosityAddr(), "min=0.000001 max=10 step=0.000001" );
mParams.addParam( "Density Viscosity", mFluid2D.densityViscosityAddr(), "min=0.000001 max=10 step=0.000001" );
mParams.addParam( "Rgb Viscosity", mFluid2D.rgbViscosityAddr(), "min=0.000001 max=10 step=0.000001" );
mParams.addSeparator();
mParams.addParam( "Vorticity Confinement", mFluid2D.enableVorticityConfinementAddr() );
mParams.addSeparator();
std::vector<std::string> boundaries;
boundaries.push_back( "None" ); boundaries.push_back( "Wall" ); boundaries.push_back( "Wrap" );
mParams.addParam( "Boundary Type", boundaries, mFluid2D.boundaryTypeAddr() );
mParams.addSeparator();
mParams.addParam( "Enable Buoyancy", mFluid2D.enableBuoyancyAddr() );
mParams.addParam( "Buoyancy Scale", mFluid2D.buoyancyScaleAddr(), "min=0 max=100 step=0.001" );
mParams.addParam( "Vorticity Scale", mFluid2D.vorticityScaleAddr(), "min=0 max=1 step=0.001" );
mFluid2D.setRgbDissipation( 0.9930f );
mFluid2D.enableDensity();
mFluid2D.enableRgb();
mFluid2D.enableVorticityConfinement();
mFluid2D.initSimData();
mParticleSoup.setup( &mFluid2D );
mColor = Colorf( 0.98f, 0.7f, 0.4f );
}
示例3: defined
void Fluid2DCamAppApp::setup()
{
glEnable( GL_TEXTURE_2D );
mVelThreshold = 0.75f;
mNumActiveFlowVectors = 0;
#if defined( CINDER_MSW )
mVelScale = 0.5f;
mDenScale = 0.0025f;
#elif defined( CINDER_MAC )
mVelScale = 2.0f;
mDenScale = 0.007f;
#endif
mFluid2D.set( mFluid2DResX, mFluid2DResY );
mFluid2D.enableDensity();
mFluid2D.enableVorticityConfinement();
mFluid2D.setNumPressureIters( 24 );
mFluid2D.initSimData();
// Create these so we can create the textures ahead of time
mSurfVel0 = Surface32f( mFluid2DResX, mFluid2DResY, false, SurfaceChannelOrder::RGB );
mSurfVel1 = Surface32f( mFluid2DResX, mFluid2DResY, false, SurfaceChannelOrder::RGB );
mChanDen0 = Channel32f( mFluid2DResX, mFluid2DResY );
mChanDen1 = Channel32f( mFluid2DResX, mFluid2DResY );
mChanDiv = Channel32f( mFluid2DResX, mFluid2DResY );
mChanPrs = Channel32f( mFluid2DResX, mFluid2DResY );
mChanCurl = Channel32f( mFluid2DResX, mFluid2DResY );
mChanCurlLen = Channel32f( mFluid2DResX, mFluid2DResY );
mTexVel0 = gl::Texture( mSurfVel0 );
mTexVel1 = gl::Texture( mSurfVel1 );
mTexDen0 = gl::Texture( mChanDen0 );
mTexDen1 = gl::Texture( mChanDen1 );
mTexDiv = gl::Texture( mChanDiv );
mTexPrs = gl::Texture( mChanPrs );
mTexCurl = gl::Texture( mChanCurl );
mTexCurlLen = gl::Texture( mChanCurlLen );
mParams = params::InterfaceGl( "Params", Vec2i( 300, 400 ) );
mParams.addParam( "Stam Step", mFluid2D.stamStepAddr() );
mParams.addSeparator();
mParams.addParam( "Velocity Threshold", &mVelThreshold, "min=0 max=2 step=0.001" );
mParams.addSeparator();
mParams.addParam( "Velocity Input Scale", &mVelScale, "min=0 max=10 step=0.001" );
mParams.addParam( "Density Input Scale", &mDenScale, "min=0 max=1 step=0.0001" );
mParams.addSeparator();
mParams.addParam( "Velocity Dissipation", mFluid2D.velocityDissipationAddr(), "min=0 max=1 step=0.0001" );
mParams.addParam( "Density Dissipation", mFluid2D.densityDissipationAddr(), "min=0 max=1 step=0.0001" );
mParams.addSeparator();
mParams.addParam( "Velocity Viscosity", mFluid2D.velocityViscosityAddr(), "min=0 max=10 step=0.000001" );
mParams.addParam( "Density Viscosity", mFluid2D.densityViscosityAddr(), "min=0 max=10 step=0.000001" );
mParams.addSeparator();
mParams.addParam( "Vorticity Confinement", mFluid2D.enableVorticityConfinementAddr() );
mParams.addSeparator();
std::vector<std::string> boundaries;
boundaries.push_back( "None" ); boundaries.push_back( "Wall" ); boundaries.push_back( "Wrap" );
mParams.addParam( "Boundary Type", boundaries, mFluid2D.boundaryTypeAddr() );
mParams.addSeparator();
mParams.addParam( "Enable Buoyancy", mFluid2D.enableBuoyancyAddr() );
mParams.addParam( "Buoyancy Scale", mFluid2D.buoyancyScaleAddr(), "min=0 max=100 step=0.001" );
mParams.addParam( "Vorticity Scale", mFluid2D.vorticityScaleAddr(), "min=0 max=1 step=0.001" );
// Camera
try {
mCapture = Capture( 640, 480 );
mCapture.start();
}
catch( ... ) {
console() << "Failed to initialize capture" << std::endl;
}
}