- Timestamp:
- 04/13/06 22:21:55 (7 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgprecipitation/osgprecipitation.cpp
r5087 r5088 39 39 numberOfCellsZ(1), 40 40 nearTransition(25.0), 41 farTransition(100.0) 41 farTransition(100.0), 42 fogDensity(0.1), 43 fogEnd(1000.0) 42 44 {} 43 45 … … 45 47 { 46 48 particleVelocity = osg::Vec3(0.0,0.0,-2.0) + osg::Vec3(0.0,0.0,-10.0)*intensity; 47 particleSize = 0.01 + 0.0 4*intensity;49 particleSize = 0.01 + 0.02*intensity; 48 50 numberOfParticles = intensity * 100000000; 49 51 particleColour = osg::Vec4(0.6, 0.6, 0.6, 1.0); 52 fogDensity = intensity; 53 fogEnd = 250/(0.01 + intensity); 50 54 } 51 55 … … 53 57 { 54 58 particleVelocity = osg::Vec3(0.0,0.0,-1.0) + osg::Vec3(0.0,0.0,-0.5)*intensity; 55 particleSize = 0.02 + 0.0 5*intensity;59 particleSize = 0.02 + 0.03*intensity; 56 60 numberOfParticles = intensity * 100000000; 57 61 particleColour = osg::Vec4(0.8, 0.8, 0.8, 1.0); 62 fogDensity = intensity; 63 fogEnd = 150/(0.01 + intensity); 58 64 } 59 65 … … 68 74 float nearTransition; 69 75 float farTransition; 76 float fogDensity; 77 float fogEnd; 70 78 }; 71 79 … … 575 583 } 576 584 577 #if 1 585 578 586 osgUtil::Optimizer::SpatializeGroupsVisitor sgv; 579 587 group->accept(sgv); 580 588 sgv.divide(); 581 #endif 589 582 590 583 591 osg::StateSet* stateset = group->getOrCreateStateSet(); … … 650 658 osg::Fog* fog = new osg::Fog; 651 659 fog->setMode(osg::Fog::LINEAR); 652 fog->setDensity( 0.1f);660 fog->setDensity(parameters.fogDensity); 653 661 fog->setStart(0.0f); 654 fog->setEnd( 1000.0f);662 fog->setEnd(parameters.fogEnd); 655 663 fog->setColor(osg::Vec4(0.5f,0.5f,0.5f,1.0f)); 656 664 stateset->setAttributeAndModes(fog, osg::StateAttribute::ON); … … 704 712 while (arguments.read("--rain", intensity)) parameters.rain(intensity); 705 713 706 float particleSize; 707 while (arguments.read("--particleSize", particleSize)) parameters.particleSize = particleSize; 714 while (arguments.read("--particleSize", parameters.particleSize)) {} 708 715 709 716 osg::Vec3 particleVelocity; 710 717 while (arguments.read("--particleVelocity", particleVelocity.x(), particleVelocity.y(), particleVelocity.z() )) parameters.particleVelocity = particleVelocity; 711 718 712 float transition; 713 while (arguments.read("--nearTransition", transition )) parameters.nearTransition = transition; 714 while (arguments.read("--farTransition", transition )) parameters.farTransition = transition; 715 719 while (arguments.read("--nearTransition", parameters.nearTransition )) {} 720 while (arguments.read("--farTransition", parameters.farTransition )) {} 721 722 while (arguments.read("--numberOfParticles", parameters.numberOfParticles )) {} 723 724 while (arguments.read("--numberOfCellsX", parameters.numberOfCellsX )) {} 725 while (arguments.read("--numberOfCellsY", parameters.numberOfCellsY )) {} 726 while (arguments.read("--numberOfCellsZ", parameters.numberOfCellsZ )) {} 727 728 while (arguments.read("--boundingBox", parameters.boundingBox.xMin(), 729 parameters.boundingBox.yMin(), 730 parameters.boundingBox.zMin(), 731 parameters.boundingBox.xMax(), 732 parameters.boundingBox.yMax(), 733 parameters.boundingBox.zMax())) {} 734 735 while (arguments.read("--fogDensity", parameters.fogDensity )) {} 736 while (arguments.read("--fogEnd", parameters.fogEnd )) {} 737 716 738 // if user request help write it out to cout. 717 739 if (arguments.read("-h") || arguments.read("--help"))
