@Ensiouel

Как работает lookAt?

Пытаюсь реализовать камеру в 3d игре, делаю не с помощью OpenGL, но пытаюсь реализовать функцию lookAt в другом языке программирования, точнее в Lua

И вот что получилось, но что делать с этой матрицей дальше - не особо понимаю
function vec:lookAt(eye, target, upDir)
	local forward = (eye - target):normalize()
	local left = vec:cross(upDir, forward):normalize()

	local up = vec:cross(forward, left)

	matrix = { 
		left[1], up[1], forward[1], 0,
		left[2], up[2], forward[2], 0,
		left[3], up[3], forward[3], 0,
		-left[1] * eye[1] - left[2] * eye[2] - left[3] * eye[3], -up[1] * eye[1] - up[2] * eye[2] - up[3] * eye[3], -forward[1] * eye[1] - forward[2] * eye[2] - forward[3] * eye[3], 0
	}
	return matrix
end
  • Вопрос задан
  • 286 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы