Esempio n. 1
0
	bool CD3D11Driver::setupGBuffer()
	{
		if (mGBuffers[0])
			return false;

		ITextureManager* textureManager = ITextureManager::getInstance();

		std::string textureNames[] = { "gbuffer0", "gbuffer1", "gbuffer2", "gbuffer3" };
		

		E_GI_FORMAT formats[] = { EGF_R32G32B32A32_FLOAT, EGF_R8G8B8A8_UNORM, EGF_R8G8B8A8_UNORM, EGF_R8G8B8A8_UNORM };

		for (u32 i = 0; i < EGT_GBUFFER_COUNT; i++)
		{
			IRenderTarget* pTarget = textureManager->createRenderTarget(textureNames[i], 0, 0, formats[i]);
			assert("set up gbuffer failed!");
			mGBuffers[i] = pTarget;
		}
		return true;
	}