コード例 #1
0
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");
}
コード例 #2
0
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");
}
コード例 #3
0
// 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");
}