本文整理汇总了C++中Viewport::getBackgroundColour方法的典型用法代码示例。如果您正苦于以下问题:C++ Viewport::getBackgroundColour方法的具体用法?C++ Viewport::getBackgroundColour怎么用?C++ Viewport::getBackgroundColour使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Viewport
的用法示例。
在下文中一共展示了Viewport::getBackgroundColour方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load
//[NOTE] In addition to some Ogre setup, this function configures PagedGeometry in the scene.
void World::load()
{
//-------------------------------------- LOAD TERRAIN --------------------------------------
//Setup the fog up to 500 units away
sceneMgr->setFog(FOG_LINEAR, viewport->getBackgroundColour(), 0, 100, 700);
//Load the terrain
sceneMgr->setWorldGeometry("terrain.cfg");
//Start off with the camera at the center of the terrain
camera->setPosition(700, 100, 700);
//-------------------------------------- LOAD TREES --------------------------------------
//Create and configure a new PagedGeometry instance
trees = new PagedGeometry();
trees->setCamera(camera); //Set the camera so PagedGeometry knows how to calculate LODs
trees->setPageSize(80); //Set the size of each page of geometry
trees->setInfinite(); //Use infinite paging mode
trees->addDetailLevel<BatchPage>(150, 50); //Use batches up to 150 units away, and fade for 30 more units
trees->addDetailLevel<ImpostorPage>(500, 50); //Use impostors up to 400 units, and for for 50 more units
//Create a new TreeLoader2D object
TreeLoader2D *treeLoader = new TreeLoader2D(trees, TBounds(0, 0, 1500, 1500));
trees->setPageLoader(treeLoader); //Assign the "treeLoader" to be used to load geometry for the PagedGeometry instance
//Supply a height function to TreeLoader2D so it can calculate tree Y values
HeightFunction::initialize(sceneMgr);
treeLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//Load a tree entity
Entity *myEntity = sceneMgr->createEntity("Tree", "tree2.mesh");
//Randomly place 20,000 copies of the tree on the terrain
Vector3 position = Vector3::ZERO;
Radian yaw;
Real scale;
for (int i = 0; i < 20000; i++){
yaw = Degree(Math::RangeRandom(0, 360));
position.x = Math::RangeRandom(0, 1500);
position.z = Math::RangeRandom(0, 1500);
scale = Math::RangeRandom(0.5f, 0.6f);
//[NOTE] Unlike TreeLoader3D, TreeLoader2D's addTree() function accepts a Vector2D position (x/z)
//The Y value is calculated during runtime (to save memory) from the height function supplied (above)
treeLoader->addTree(myEntity, position, yaw, scale);
}
}
示例2: load
//[NOTE] In addition to some Ogre setup, this function configures PagedGeometry in the scene.
void World::load()
{
//-------------------------------------- LOAD TERRAIN --------------------------------------
//Setup the fog up to 500 units away
sceneMgr->setFog(FOG_LINEAR, viewport->getBackgroundColour(), 0, 100, 700);
//Load the terrain
sceneMgr->setWorldGeometry("terrain.cfg");
//Start off with the camera at the center of the terrain
camera->setPosition(700, 100, 700);
//-------------------------------------- LOAD GRASS --------------------------------------
//Create and configure a new PagedGeometry instance for grass
grass = new PagedGeometry(camera, 50);
grass->addDetailLevel<GrassPage>(150);
//Create a GrassLoader object
grassLoader = new GrassLoader(grass);
grass->setPageLoader(grassLoader); //Assign the "treeLoader" to be used to load geometry for the PagedGeometry instance
//Supply a height function to GrassLoader so it can calculate grass Y values
HeightFunction::initialize(sceneMgr);
grassLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//Add some grass to the scene with GrassLoader::addLayer()
GrassLayer *l = grassLoader->addLayer("grass");
//Configure the grass layer properties (size, density, animation properties, fade settings, etc.)
l->setMinimumSize(2.0f, 2.0f);
l->setMaximumSize(2.5f, 2.5f);
l->setAnimationEnabled(true); //Enable animations
l->setSwayDistribution(10.0f); //Sway fairly unsynchronized
l->setSwayLength(0.5f); //Sway back and forth 0.5 units in length
l->setSwaySpeed(0.5f); //Sway 1/2 a cycle every second
l->setDensity(1.5f); //Relatively dense grass
l->setFadeTechnique(FADETECH_GROW); //Distant grass should slowly raise out of the ground when coming in range
l->setRenderTechnique(GRASSTECH_QUAD); //Draw grass as scattered quads
//This sets a color map to be used when determining the color of each grass quad. setMapBounds()
//is used to set the area which is affected by the color map. Here, "terrain_texture.jpg" is used
//to color the grass to match the terrain under it.
l->setColorMap("terrain_texture.jpg");
l->setMapBounds(TBounds(0, 0, 1500, 1500)); //(0,0)-(1500,1500) is the full boundaries of the terrain
}
示例3: load
//[NOTE] In addition to some Ogre setup, this function configures PagedGeometry in the scene.
void World::load()
{
//-------------------------------------- LOAD TERRAIN --------------------------------------
//Setup the fog up to 1500 units away
sceneMgr->setFog(FOG_LINEAR, viewport->getBackgroundColour(), 0, 100, 900);
//Load the terrain
sceneMgr->setWorldGeometry("terrain2.cfg");
//Start off with the camera at the center of the terrain
camera->setPosition(700, 100, 700);
//Setup a skybox
sceneMgr->setSkyBox(true, "3D-Diggers/SkyBox", 2000);
//-------------------------------------- LOAD GRASS --------------------------------------
//Create and configure a new PagedGeometry instance for grass
grass = new PagedGeometry(camera, 30);
grass->addDetailLevel<GrassPage>(60);
//Create a GrassLoader object
grassLoader = new GrassLoader(grass);
grass->setPageLoader(grassLoader); //Assign the "treeLoader" to be used to load geometry for the PagedGeometry instance
//Supply a height function to GrassLoader so it can calculate grass Y values
HeightFunction::initialize(sceneMgr);
grassLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//Add some grass to the scene with GrassLoader::addLayer()
GrassLayer *l = grassLoader->addLayer("3D-Diggers/plant1sprite");
//Configure the grass layer properties (size, density, animation properties, fade settings, etc.)
l->setMinimumSize(0.7f, 0.7f);
l->setMaximumSize(0.9f, 0.9f);
l->setAnimationEnabled(true); //Enable animations
l->setSwayDistribution(7.0f); //Sway fairly unsynchronized
l->setSwayLength(0.1f); //Sway back and forth 0.5 units in length
l->setSwaySpeed(0.4f); //Sway 1/2 a cycle every second
l->setDensity(3.0f); //Relatively dense grass
l->setRenderTechnique(GRASSTECH_SPRITE);
l->setFadeTechnique(FADETECH_GROW); //Distant grass should slowly raise out of the ground when coming in range
//[NOTE] This sets the color map, or lightmap to be used for grass. All grass will be colored according
//to this texture. In this case, the colors of the terrain is used so grass will be shadowed/colored
//just as the terrain is (this usually makes the grass fit in very well).
l->setColorMap("terrain_texture2.jpg");
//This sets the density map that will be used to determine the density levels of grass all over the
//terrain. This can be used to make grass grow anywhere you want to; in this case it's used to make
//grass grow only on fairly level ground (see densitymap.png to see how this works).
l->setDensityMap("densitymap.png");
//setMapBounds() must be called for the density and color maps to work (otherwise GrassLoader wouldn't
//have any knowledge of where you want the maps to be applied). In this case, the maps are applied
//to the same boundaries as the terrain.
l->setMapBounds(TBounds(0, 0, 1500, 1500)); //(0,0)-(1500,1500) is the full boundaries of the terrain
//-------------------------------------- LOAD TREES --------------------------------------
//Create and configure a new PagedGeometry instance
trees = new PagedGeometry();
trees->setCamera(camera); //Set the camera so PagedGeometry knows how to calculate LODs
trees->setPageSize(50); //Set the size of each page of geometry
trees->setInfinite(); //Use infinite paging mode
#ifdef WIND
//WindBatchPage is a variation of BatchPage which includes a wind animation shader
trees->addDetailLevel<WindBatchPage>(90, 30); //Use batches up to 150 units away, and fade for 30 more units
#else
trees->addDetailLevel<BatchPage>(90, 30); //Use batches up to 150 units away, and fade for 30 more units
#endif
trees->addDetailLevel<ImpostorPage>(700, 50); //Use impostors up to 400 units, and for for 50 more units
//Create a new TreeLoader2D object
TreeLoader2D *treeLoader = new TreeLoader2D(trees, TBounds(0, 0, 1500, 1500));
trees->setPageLoader(treeLoader); //Assign the "treeLoader" to be used to load geometry for the PagedGeometry instance
//Supply a height function to TreeLoader2D so it can calculate tree Y values
HeightFunction::initialize(sceneMgr);
treeLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//[NOTE] This sets the color map, or lightmap to be used for trees. All trees will be colored according
//to this texture. In this case, the shading of the terrain is used so trees will be shadowed
//just as the terrain is (this should appear like the terrain is casting shadows on the trees).
//You may notice that TreeLoader2D / TreeLoader3D doesn't have a setMapBounds() function as GrassLoader
//does. This is because the bounds you specify in the TreeLoader2D constructor are used to apply
//the color map.
treeLoader->setColorMap("terrain_lightmap.jpg");
//Load a tree entity
Entity *tree1 = sceneMgr->createEntity("Tree1", "fir05_30.mesh");
Entity *tree2 = sceneMgr->createEntity("Tree2", "fir14_25.mesh");
#ifdef WIND
trees->setCustomParam(tree1->getName(), "windFactorX", 15);
trees->setCustomParam(tree1->getName(), "windFactorY", 0.01);
trees->setCustomParam(tree2->getName(), "windFactorX", 22);
trees->setCustomParam(tree2->getName(), "windFactorY", 0.013);
#endif
//.........这里部分代码省略.........
示例4: load
//[NOTE] In addition to some Ogre setup, this function configures PagedGeometry in the scene.
void World::load()
{
//-------------------------------------- LOAD TERRAIN --------------------------------------
//Setup the fog up to 500 units away
sceneMgr->setFog(FOG_LINEAR, viewport->getBackgroundColour(), 0, 100, 700);
//Load the terrain
sceneMgr->setWorldGeometry("terrain.cfg");
//Start off with the camera at the center of the terrain
camera->setPosition(700, 100, 700);
//-------------------------------------- LOAD TREES --------------------------------------
//Create and configure a new PagedGeometry instance for trees
trees = new PagedGeometry(camera, 80);
trees->addDetailLevel<BatchPage>(150, 50);
trees->addDetailLevel<ImpostorPage>(500, 50);
//Create a new TreeLoader2D object
TreeLoader2D *treeLoader = new TreeLoader2D(trees, TBounds(0, 0, 1500, 1500));
trees->setPageLoader(treeLoader);
//Supply the height function to TreeLoader2D so it can calculate tree Y values
HeightFunction::initialize(sceneMgr);
treeLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//Load a tree entity
Entity *myTree = sceneMgr->createEntity("Tree", "tree2.mesh");
//Randomly place 10,000 copies of the tree on the terrain
Vector3 position = Vector3::ZERO;
Radian yaw;
Real scale;
for (int i = 0; i < 10000; i++){
yaw = Degree(Math::RangeRandom(0, 360));
position.x = Math::RangeRandom(0, 1500);
position.z = Math::RangeRandom(0, 1500);
scale = Math::RangeRandom(0.5f, 0.6f);
treeLoader->addTree(myTree, position, yaw, scale);
}
//-------------------------------------- LOAD BUSHES --------------------------------------
//Create and configure a new PagedGeometry instance for bushes
bushes = new PagedGeometry(camera, 50);
bushes->addDetailLevel<BatchPage>(80, 50);
//Create a new TreeLoader2D object for the bushes
TreeLoader2D *bushLoader = new TreeLoader2D(bushes, TBounds(0, 0, 1500, 1500));
bushes->setPageLoader(bushLoader);
//Supply the height function to TreeLoader2D so it can calculate tree Y values
HeightFunction::initialize(sceneMgr);
bushLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//Load a bush entity
Entity *myBush = sceneMgr->createEntity("Bush", "Bush.mesh");
//Randomly place 30,000 copies of the bush on the terrain
for (int i = 0; i < 30000; i++){
yaw = Degree(Math::RangeRandom(0, 360));
position.x = Math::RangeRandom(0, 1500);
position.z = Math::RangeRandom(0, 1500);
scale = Math::RangeRandom(0.7f, 0.8f);
bushLoader->addTree(myBush, position, yaw, scale);
}
}
示例5: load
//[NOTE] In addition to some Ogre setup, this function configures PagedGeometry in the scene.
void World::load()
{
//-------------------------------------- LOAD TERRAIN --------------------------------------
//Setup the fog up to 500 units away
sceneMgr->setFog(FOG_LINEAR, viewport->getBackgroundColour(), 0, 100, 700);
//Load the terrain
auto terrain = loadLegacyTerrain("terrain2.cfg", sceneMgr);
//Start off with the camera at the center of the terrain
cameraNode->setPosition(700, 100, 700);
//-------------------------------------- LOAD GRASS --------------------------------------
//Create and configure a new PagedGeometry instance for grass
grass = new PagedGeometry(camera, 50);
grass->addDetailLevel<GrassPage>(100);
//Create a GrassLoader object
grassLoader = new GrassLoader(grass);
grass->setPageLoader(grassLoader); //Assign the "treeLoader" to be used to load geometry for the PagedGeometry instance
//Supply a height function to GrassLoader so it can calculate grass Y values
HeightFunction::initialize(terrain);
grassLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//Add some grass to the scene with GrassLoader::addLayer()
GrassLayer *l = grassLoader->addLayer("grass");
//Configure the grass layer properties (size, density, animation properties, fade settings, etc.)
l->setMinimumSize(2.0f, 1.5f);
l->setMaximumSize(2.5f, 1.9f);
l->setAnimationEnabled(true); //Enable animations
l->setSwayDistribution(10.0f); //Sway fairly unsynchronized
l->setSwayLength(0.5f); //Sway back and forth 0.5 units in length
l->setSwaySpeed(0.5f); //Sway 1/2 a cycle every second
l->setDensity(2.0f); //Relatively dense grass
l->setFadeTechnique(FADETECH_GROW); //Distant grass should slowly raise out of the ground when coming in range
//[NOTE] This sets the color map, or lightmap to be used for grass. All grass will be colored according
//to this texture. In this case, the colors of the terrain is used so grass will be shadowed/colored
//just as the terrain is (this usually makes the grass fit in very well).
l->setColorMap("terrain_texture2.jpg");
//This sets the density map that will be used to determine the density levels of grass all over the
//terrain. This can be used to make grass grow anywhere you want to; in this case it's used to make
//grass grow only on fairly level ground (see densitymap.png to see how this works).
l->setDensityMap("densitymap.png");
//setMapBounds() must be called for the density and color maps to work (otherwise GrassLoader wouldn't
//have any knowledge of where you want the maps to be applied). In this case, the maps are applied
//to the same boundaries as the terrain.
l->setMapBounds(TBounds(0, 0, 1500, 1500)); //(0,0)-(1500,1500) is the full boundaries of the terrain
//-------------------------------------- LOAD TREES --------------------------------------
//Create and configure a new PagedGeometry instance
trees = new PagedGeometry();
trees->setCamera(camera); //Set the camera so PagedGeometry knows how to calculate LODs
trees->setPageSize(80); //Set the size of each page of geometry
trees->setInfinite(); //Use infinite paging mode
trees->addDetailLevel<BatchPage>(150, 50); //Use batches up to 150 units away, and fade for 30 more units
trees->addDetailLevel<ImpostorPage>(500, 50); //Use impostors up to 400 units, and for for 50 more units
//Create a new TreeLoader2D object
TreeLoader2D *treeLoader = new TreeLoader2D(trees, TBounds(0, 0, 1500, 1500));
trees->setPageLoader(treeLoader); //Assign the "treeLoader" to be used to load geometry for the PagedGeometry instance
//Supply a height function to TreeLoader2D so it can calculate tree Y values
treeLoader->setHeightFunction(&HeightFunction::getTerrainHeight);
//[NOTE] This sets the color map, or lightmap to be used for trees. All trees will be colored according
//to this texture. In this case, the shading of the terrain is used so trees will be shadowed
//just as the terrain is (this should appear like the terrain is casting shadows on the trees).
//You may notice that TreeLoader2D / TreeLoader3D doesn't have a setMapBounds() function as GrassLoader
//does. This is because the bounds you specify in the TreeLoader2D constructor are used to apply
//the color map.
treeLoader->setColorMap("terrain_lightmap.jpg");
//Load a tree entity
Entity *myEntity = sceneMgr->createEntity("Tree", "tree2.mesh");
//Randomly place 20,000 copies of the tree on the terrain
Ogre::Vector3 position = Ogre::Vector3::ZERO;
Radian yaw;
Real scale;
for (int i = 0; i < 20000; i++){
yaw = Degree(Math::RangeRandom(0, 360));
position.x = Math::RangeRandom(0, 1500);
position.z = Math::RangeRandom(0, 1500);
scale = Math::RangeRandom(0.9f, 1.1f);
//[NOTE] Unlike TreeLoader3D, TreeLoader2D's addTree() function accepts a Vector2D position (x/z)
//The Y value is calculated during runtime (to save memory) from the height function supplied (above)
treeLoader->addTree(myEntity, position, yaw, scale);
}
}