Hi All,
I created I buffer Geometry from a given 3D software but I couldn’t get the vertex or face normals to compute using the two functions :
geometry.computeVertexNormals();
geometry.computeFaceNormals();
The reason I need the normals is to show the MeshLambertMaterial and to apply a lookup table (Lut) - same as the example (three.js webgl - lookup table). For now I have a “black” mesh.
Here is fiddle of the example : https://jsfiddle.net/x9mp8db0/1/
Could you please assist with this (i.e. displaying the colors according to the pressures on each vertex)
Any good Samaritan who can assist with this ?
Thanks in advance!
You are not generating the geometry for your mesh correctly in the first place. The following WebGL warning is logged in the browser console:
[.WebGL-0x7fa2c7870200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: attempt to access out of range vertices in attribute 2
That happens because you generate your geometry with empty normal and uv buffers.
Also computeFaceNormals()
has no effect when using with BufferGeometry
.
Fiddle without warnings: https://jsfiddle.net/pt638xf9/
1 Like
Thanks for your answer Michael,
The way I retrieved data from the given software, I only have the vertex positions and the faces indices. I don’t have normals or uvs.
Is there any way to calculate automatically or via a function the normals ? I believe this is what causing the black mesh.
Once I’m able to calculate the normals, I can apply LUT and get my vertex colors according to the user data (pressures array in this case)