Change loop in barycentric coordinates calculation function
This commit is contained in:
parent
e905fed7a5
commit
0e6235da9a
@ -195,7 +195,7 @@ internal TriangleBBox get_triangle_bbox(const Image *img,
|
|||||||
internal V3f get_barycentric_coords(V3f a, V3f b, V3f c, V3f p) {
|
internal V3f get_barycentric_coords(V3f a, V3f b, V3f c, V3f p) {
|
||||||
V3f s[2];
|
V3f s[2];
|
||||||
|
|
||||||
for (int i = 2; i--;) {
|
for (u64 i = 0; i < 2; ++i) {
|
||||||
s[i].x = c.elements[i] - a.elements[i];
|
s[i].x = c.elements[i] - a.elements[i];
|
||||||
s[i].y = b.elements[i] - a.elements[i];
|
s[i].y = b.elements[i] - a.elements[i];
|
||||||
s[i].z = a.elements[i] - p.elements[i];
|
s[i].z = a.elements[i] - p.elements[i];
|
||||||
@ -206,7 +206,7 @@ internal V3f get_barycentric_coords(V3f a, V3f b, V3f c, V3f p) {
|
|||||||
return (V3f){-1.0f, 1.0f, 1.0f};
|
return (V3f){-1.0f, 1.0f, 1.0f};
|
||||||
}
|
}
|
||||||
|
|
||||||
return (V3f){1.f - (u.x + u.y) / u.z, u.y / u.z, u.x / u.z};
|
return (V3f){1.0f - (u.x + u.y) / u.z, u.y / u.z, u.x / u.z};
|
||||||
}
|
}
|
||||||
|
|
||||||
internal V3f get_viewport_vertex(const V3f *vertex, const Image *img) {
|
internal V3f get_viewport_vertex(const V3f *vertex, const Image *img) {
|
||||||
|
Loading…
Reference in New Issue
Block a user