Exemplo n.º 1
0
	DiMat4 DiFocusedShadowPolicy::buildViewMatrix(const DiVec3& pos, const DiVec3& dir, 
		const DiVec3& up) const
	{
		DiVec3 xN = dir.crossProduct(up);
		xN.normalise();
		DiVec3 upN = xN.crossProduct(dir);
		upN.normalise();

		DiMat4 m(xN.x,		xN.y,		xN.z,		-xN.dotProduct(pos),
			upN.x,		upN.y,		upN.z,		-upN.dotProduct(pos),
			-dir.x,		-dir.y,	-dir.z,	dir.dotProduct(pos),
			0.0,			0.0,		0.0,		1.0
			);

		return m;
	}