コード例 #1
0
bool ThreeDGraphicsClass::Initialize()
{
	bool result;

	mAllModels = new vector<ModelClass*>;
	if(!mAllModels)
	{
#ifdef _WIN32
		MessageBoxA( NULL, "Model Vector Obj Creation Failure", "Error", MB_OK );
#endif
		return false;
	}

	mShaderProgram = new ShaderProgram();
	if(!mShaderProgram)
	{
#ifdef _WIN32
		MessageBoxA( NULL, "Shader Program Obj Creation Failure", "Error", MB_OK );
#endif
		return false;
	}

	result = mShaderProgram->Initialize("./shaders/VertexShader.glsl", "./shaders/FragmentShader.glsl");
	if(!result)
	{
#ifdef _WIN32
		MessageBoxA( NULL, "Shader Program Init Failure", "Error", MB_OK );
#endif
		return false;
	}

	mLightSource = new LightClass();
	if(!mLightSource)
		return false;

	mLightSource->SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f);
	mLightSource->SetAmbientLight(0.15f, 0.15f, 0.15f, 1.0f);
	mLightSource->SetSpecularColor(1.0f, 1.0f, 1.0f, 1.0f);
	mLightSource->SetSpecularPower(32.0f);
	mLightSource->SetDirection(0.0f, -1.0f, 0.0f);
	mLightSource->SetPosition(0.0f, 5.0f, 0.0f);

	//Add the floor
	addNewModel("data/smallsquare.obj", "data/red.tga", "data/stone.tga");
	ModelClass* floor = (*mAllModels)[0];
	floor->setScaleFactor(Vector3(10.0f, 1.0f, 1.0f));
	floor->translate(Vector3(0.0f, -0.9f, 0.0f));
	floor->rotate(Vector3(1.0f, 0.0f, 0.0f));
	floor->setColor(Vector3(0.8039215686f, 0.78823529f, 0.78823529f));

	//Add the sphere1
	addNewModel("data/sphere.obj", "data/red.tga", "data/stone.tga");
	ModelClass* sphere1 = (*mAllModels)[1];
	sphere1->setScaleFactor(Vector3(0.5f, 0.5f, 0.5f));
	sphere1->translate(Vector3(-1.0f, 0.0f, 0.0f));

	//Add the sphere2
	addNewModel("data/sphere.obj", "data/red.tga", "data/stone.tga");
	ModelClass* sphere2 = (*mAllModels)[2];
	sphere2->setScaleFactor(Vector3(0.5f, 0.5f, 0.5f));
	sphere2->translate(Vector3(1.0f, 0.0f, 0.0f));
	sphere2->setColor(Vector3(0.0f, 0.0f, 1.0f));
	return true;
}