LWJGL Forum

Please login or register.

Login with username, password and session length

Author Topic: [Solved] normals in low poly quads Terrain  (Read 65 times)

Andrew Alfazy

  • Newbie
  • *
  • Offline Offline
  • Posts: 19
[Solved] normals in low poly quads Terrain
« on: January 14, 2018, 07:31:02 »

Hello,
Need help with normals I'm Trying to make low poly quads Terrain (the normals for all 4 Vertices should be 1) so is this method good?
Code: [Select]
private static Vector3f getNormal(Vector3f v1, Vector3f v2, Vector3f v3,
Vector3f v4) {
Vector3f a = new Vector3f(), b, n1, n2, n3, n4, n;
b = a;
n = a;
// N1
v1.sub(v2, a);
v1.sub(v4, b);
n1 = a.cross(b);
// N2
v2.sub(v3, a);
v2.sub(v1, b);
n2 = a.cross(b);
// N3
v3.sub(v4, a);
v3.sub(v2, b);
n3 = a.cross(b);
// N4
v4.sub(v1, a);
v4.sub(v3, b);
n4 = a.cross(b);
// N
n1.half(n2, a);
n3.half(n4, b);
a.half(b, n);
return n;
}
NOTE: I'm using JOML
thank you and sorry for my bad English :-[
Logged

Andrew Alfazy

  • Newbie
  • *
  • Offline Offline
  • Posts: 19
Re: normals in low poly quads Terrain
« Reply #1 on: January 14, 2018, 09:33:01 »

I found the problem but I can't solve it.
the problem in the calculation how can I calculate normals for quad?
note = distance between point (x or z) and other is 10 the only y is changing.
Logged

KaiHH

  • Newbie
  • *
  • Offline Offline
  • Posts: 23
Re: normals in low poly quads Terrain
« Reply #2 on: January 14, 2018, 11:07:48 »

If it is really a quad, that is, all vertices lie on the same plane, then you just need to take any triangle of the quad and compute the normal of it with a single cross product like so:
Code: [Select]
// v2 - v1
Vector3f v12 = v2.sub(v1, new Vector3f());
// v3 - v2
Vector3f v23 = v3.sub(v2, new Vector3f());
// (v2 - v1) x (v3 - v2)
return v12.cross(v23).normalize();
While conceptually correct (all cross products on the spanning vectors of a quad's vertices should be the same), your code suffers from aliasing between the 'nX' variables, 'a', 'b' and 'n' (i.e. those are all the same object).
Logged

Andrew Alfazy

  • Newbie
  • *
  • Offline Offline
  • Posts: 19
Re: [Solved] normals in low poly quads Terrain
« Reply #3 on: January 14, 2018, 12:39:22 »

thanks no I can see how to solve it :)
Logged