How to make pointed 3d model

I want desired output to be like this

Facing issue while making pointed 3d model?

Please help me with this

Please correct if name (pointed model) is not correct

Thanks

Do you try transforming the geometry using points (here’s how it might look then) ?

Or is the problem with just the density of points (like on your screenshots - there are only points in location of vertices, not the entire surface) ?

1 Like

I think it is just density of point at vertices(where two edge intersect)

can I remove edges in wired geometry or decrease intensity of edges in wired geometry using three js?

@shubham_soni
Could you provide a picture with the desired result?

already shared @prisoner849

First, you say about points, then you say about wireframe.
What is what? And what’s the issue? Which picture has the desired result?

To increase the density You can either:

  1. Subdivide the model in Blender (this will add more vertices and make points / wireframe making it more detailed, while also significantly increasing the temperature of your users’ GPU, hence making them much warmer during the coming winder days for which they’ll be surely thankful.)
  2. Since you’re transforming model geometry to points geometry anyway - when you’re initiating the points geometry, for each face calculate an average of all vertices and add as an additional point. This will add new points in the centre of each face and should increase the smoothness of the points geometry quite a lot. If it’s not smooth enough, calculate averages between the added points and their neighbours until it is. :abacus:

What. :’)

2 Likes

To be honest, I thought about the using of MeshSurfaceSampler.
https://threejs.org/examples/?q=instan#webgl_instancing_scatter
But I’m not sure that I got correctly what the desired result is :slight_smile:

I want this as my desired output

mean… can I modify wired 3dmodel
I.e

to get desired output

I’m so confused about what you’re actually doing. Are you creating points using a wireframe ? Can you share some code / example with us, cause magic seems to be happening?

That’s possible, but probably very hard. It’s far easier to convert geometry to points (linked in my first reply.)

Yes I was trying to make points using wireframe.

But now I will not … otherwise really magic will happen :stuck_out_tongue:

I will try to make points using geometry.
Thank u @mjurczyk @prisoner849 for your attention

Better to try to make points, using THREE.Points() with the same geometry/geometries.

2 Likes

THREE.Points takes argument as geometry and I have 3d-model of Group type.

how will i convert Group this into a single geometry/ buffergeometry?

You can traverse the group and create a BufferGeometry (mind the note below the geometry parameter description) with points from all submeshes together (just push all vertices to the newly created buffer geometry.)

Or you can merge all vertices the easy way, courtesy @gkjohnson & @prisoner849, and merge geometries using BufferGeometryUtils.mergeBufferGeometries. You’ll then end up with a single buffer geometry with all the vertices as well.

2 Likes

Thank youuuuuuuu… It’s working
This code made my day
Thank you @mjurczyk @prisoner849 @gkjohnson

How do I go for the second option? Is there any example?

Each point / vertex is a Vector3, you can calculate an average by simply adding them:

const vertexA = Vector3(...);
const vertexB = Vector3(...);
const vertexC = Vector3(...);

const averageVertex = new Vector3(0.0, 0.0, 0.0).add(vertexA).add(vertexB).add(vertexC).divideScalar(3);

If you picture 3 vertices as a triangle, the average vertex should lie somewhere around the centre of that triangle.

1 Like