void SceneTerrain::Init() { ResourceManager& res = ResourceManager::getInstance(); VarManager& var = VarManager::getInstance(); m_vSunAngle = vec2(0.0f, RADIANS(45.0f)); m_pSkybox = (TextureCubemap*)res.LoadResource(ResourceManager::TEXTURECUBEMAP, "sand_up.jpg sand_dn.jpg sand_tp.jpg sand_bm.jpg sand_lt.jpg sand_rt.jpg"); m_pShaderLighting = (Shader*)res.LoadResource(ResourceManager::SHADER, "lighting"); m_pShaderTerrain = (Shader*)res.LoadResource(ResourceManager::SHADER, "terrain_ground"); m_pShaderWater = (Shader*)res.LoadResource(ResourceManager::SHADER, "terrain_water"); m_pShaderGrass = (Shader*)res.LoadResource(ResourceManager::SHADER, "terrain_grass"); m_pShaderTree = (Shader*)res.LoadResource(ResourceManager::SHADER, "terrain_tree"); res.LoadResource(ResourceManager::MESH, "terrain_house.obj"); res.LoadResource(ResourceManager::TEXTURE2D, "wall_diffuse.jpg"); res.LoadResource(ResourceManager::TEXTURE2D, "wall_NM_height.tga"); m_tTextures.push_back( (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "terrain_detail_NM.tga") ); m_tTextures.push_back( (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "sandfloor009a.jpg") ); m_tTextures.push_back( (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "terrain_rocky_map_1024.png") ); m_tTextures.push_back( (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "terrain_grass_map_1024.png") ); m_tTextures.push_back( (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "terrain_water_caustics.jpg") ); res.LoadResource(ResourceManager::TEXTURE2D, "grass_billboards.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "palm_texture.tga"); m_pTexWaterNoiseNM = (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "terrain_water_NM.jpg"); m_pTerrainDiffuseMap = (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "test_heightmap512_2_diffusemap.jpg"); var.set("water_height", 4.2f); m_pTerrain = new Terrain(); assert(m_pTerrain != NULL); //BoundingBox bbox( vec3(-300.0f, 0.0f, -300.0f), vec3(300.0f, 50.0f, 300.0f) ); BoundingBox bbox( vec3(-300.0f, 0.0f, -300.0f), vec3(300.0f, 40.0f, 300.0f) ); // m_pTerrain->Load("test_heightmap1024_2.jpg", bbox, 32); m_pTerrain->Load("test_heightmap512_2.jpg", bbox, 16); ImageTools::ImageData img; ImageTools::OpenImage("test_heightmap512_2_diffusemap.jpg", img); m_pTerrain->GenerateGrass(img, 200000); m_pTerrain->GenerateVegetation(img, 100); m_pTerrain->ComputeBoundingBox(); img.Destroy(); Reload(); // set shader constants m_fboWaterReflection.Create(FrameBufferObject::FBO_2D_COLOR, 512, 512); m_fboDepthMapFromLight[0].Create(FrameBufferObject::FBO_2D_DEPTH, 2048, 2048); m_fboDepthMapFromLight[1].Create(FrameBufferObject::FBO_2D_DEPTH, 2048, 2048); LoadCameraTrajFromFile("terrain.txt"); }
void SceneTestShadowMapping::Init() { ResourceManager& res = ResourceManager::getInstance(); m_vLightPos = vec4(0.0f, 4.0f, 1.0f, 1.0f); m_vLightLookAt = vec3(0.0f, 0.0f, 0.0f); m_pSkybox = (TextureCubemap*)res.LoadResource(ResourceManager::TEXTURECUBEMAP, "arch_posx.jpg arch_negx.jpg arch_posy.jpg arch_negy.jpg arch_posz.jpg arch_negz.jpg"); res.LoadResource(ResourceManager::MESH, "scene_shadow.obj"); res.LoadResource(ResourceManager::MESH, "bunny_1500_smooth.obj"); res.LoadResource(ResourceManager::MESH, "teapot.obj"); m_pShader = (Shader*)res.LoadResource(ResourceManager::SHADER, "lighting"); res.LoadResource(ResourceManager::TEXTURE2D, "rocks_diffuse.jpg"); res.LoadResource(ResourceManager::TEXTURE2D, "wall_diffuse.jpg"); res.LoadResource(ResourceManager::TEXTURE2D, "four_diffuse.jpg"); res.LoadResource(ResourceManager::TEXTURE2D, "brick_diffuse.jpg"); res.LoadResource(ResourceManager::TEXTURE2D, "sand_up.jpg"); res.LoadResource(ResourceManager::TEXTURE2D, "woodfloor005a_diffuse.jpg"); Texture2D::EnableGenerateMipmaps(false); res.LoadResource(ResourceManager::TEXTURE2D, "rocks_NM_height.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "wall_NM_height.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "four_NM_height.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "brick_NM_height.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "grate01.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "grate02.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "grate03.tga"); res.LoadResource(ResourceManager::TEXTURE2D, "woodfloor005a_NM.jpg"); Texture2D::EnableGenerateMipmaps(true); m_fboDepthMapFromLight.Create(FrameBufferObject::FBO_2D_DEPTH, 1024, 1024); m_fboTextureProjected.Create(FrameBufferObject::FBO_2D_COLOR, 512, 512); m_pSubScene = SceneManager::getInstance().getScenePointer("terrain"); assert(m_pSubScene); m_pSplineLightPosition = new SplineGL(); m_pSplineLightPosition->AddPoint( vec3( 5.0, 5.0, 5.0) ); m_pSplineLightPosition->AddPoint( vec3(-5.0, 2.0, 5.0) ); m_pSplineLightPosition->AddPoint( vec3(-5.0, 0.5,-5.0) ); m_pSplineLightPosition->AddPoint( vec3( 5.0, 2.0,-5.0) ); m_pSplineLightPosition->BuildSplines(true); m_pSplineLightPosition->setSpeed(0.06f); m_pSplineLightLookAt = new SplineGL(); m_pSplineLightLookAt->AddPoint( vec3( 3.0, 1.5, 3.0) ); m_pSplineLightLookAt->AddPoint( vec3(-4.0, 3.0, 3.0) ); m_pSplineLightLookAt->AddPoint( vec3(-3.0, 0.5,-3.0) ); m_pSplineLightLookAt->AddPoint( vec3( 3.0, 1.6,-3.0) ); m_pSplineLightLookAt->BuildSplines(true); m_pSplineLightLookAt->setSpeed(0.06f); m_fObjectRotation = 0.0f; LoadCameraTrajFromFile("shadow_mapping.txt"); }
// Initialisation des données propres à la scène void SceneToon::Init() { // On accède au Resource Manager pour charger des ressources : ResourceManager& res = ResourceManager::getInstance(); // Ici on charge une texture, et on récupère un pointeur sur la donnée pour y accéder plus facilement m_pMyTexGround = (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "dirtground008.jpg"); m_pMyTexWall = (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "brickwall004.jpg"); m_pMyTexTop = (Texture2D*)res.LoadResource(ResourceManager::TEXTURE2D, "floor_tile_006a_reflect.jpg"); m_pScene = (Mesh*)res.LoadResource(ResourceManager::MESH, "scene_fur.obj"); m_objHomer = (Mesh*)res.LoadResource(ResourceManager::MESH, "bunny_1500_smooth.obj"); m_teapot = (Mesh*)res.LoadResource(ResourceManager::MESH, "teapot.obj"); m_shadeToon = (Shader*)res.LoadResource(ResourceManager::SHADER, "toon"); m_fAngle = 0.0f; m_vLightPos = vec4(0.0f, 5.0f, 0.0f, 1.0f); LoadCameraTrajFromFile("toon.txt"); }