Skip to content

Matrix4_Projection_orig

Kion edited this page Sep 16, 2017 · 1 revision
  • mat4_look_at
  • mat4_perspective
void mat4_look_at(vec3 eye, vec3 center, vec3 up, mat4 m) {
	
	mat4 a;
	vec3 f, s, t;
	
	vec3_subtract(center, eye, f);
	vec3_normalize(f, f);

	vec3_cross_multiply(f, up, s);
	vec3_normalize(s, s);

	vec3_cross_multiply(s, f, t);

	m[M_00] = s[0];
	m[M_10] = t[0];
	m[M_20] =-f[0];
	m[M_30] = 0.0f;

	m[M_01] = s[1];
	m[M_11] = t[1];
	m[M_21] =-f[1];
	m[M_31] = 0.0f;

	m[M_02] = s[2];
	m[M_12] = t[2];
	m[M_22] = -f[2];
	m[M_32] = 0.0f;

	m[M_03] = 0.0f;
	m[M_13] = 0.0f;
	m[M_23] = 0.0f;
	m[M_33] = 1.0f;

	eye[0] = -eye[0];
	eye[1] = -eye[1];
	eye[2] = -eye[2];

	mat4_translate(eye, a);
	mat4_multiply(m, a, m);

}
void mat4_perspective(float y_fov, float aspect, float n, float f, mat4 m) {

	float const a = 1.f / (float) tan(y_fov / 2.f);

	m[M_00] = a / aspect;
	m[M_10] = 0.0f;
	m[M_20] = 0.0f;
	m[M_30] = 0.0f;

	m[M_01] = 0.0f;
	m[M_11] = a;
	m[M_21] = 0.0f;
	m[M_31] = 0.0f;

	m[M_02] = 0.0f;
	m[M_12] = 0.0f;
	m[M_22] = -((f + n) / (f - n));
	m[M_32] = -1.0f;

	m[M_03] = 0.0f;
	m[M_13] = 0.0f;
	m[M_23] = -((2.0f * f * n) / (f - n));
	m[M_33] = 0.0f;

}

DashGL

  • Home
  • Shaders
  • Vector2
  • Vector3
  • Vector4
  • Matrix4x4

Vector 3


Matrix 4x4

Clone this wiki locally