예제 #1
0
파일: size.go 프로젝트: dskinner/material
func NormToView(x, y, z float32, proj f32.Mat4) (float32, float32) {
	nv := f32.Vec3{x, y, z}
	unproj := Mtoa(proj)
	unproj.Inverse(&unproj)
	nv[0], nv[1] = nv.Dot(&unproj[0]), nv.Dot(&unproj[1])
	return nv[0], nv[1]
}
예제 #2
0
파일: size.go 프로젝트: dskinner/material
func NormToWorld(x, y, z float32, view, proj f32.Mat4) (float32, float32) {
	nv := f32.Vec3{x, y, z}

	unproj := Mtoa(proj)
	unproj.Inverse(&unproj)
	unview := Mtoa(view)
	unview.Inverse(&unview)

	nv[0], nv[1] = nv.Dot(&unproj[0]), nv.Dot(&unproj[1])
	nv[0], nv[1] = nv.Dot(&unview[0]), nv.Dot(&unview[1])

	return nv[0], nv[1]
}