Git Product home page Git Product logo

Comments (7)

jacopocolo avatar jacopocolo commented on June 7, 2024 3

Take a look at the various curves in three (like https://threejs.org/docs/#api/en/extras/curves/CatmullRomCurve3) you can pass your points to the curve and then get back however many points you need with curve.getPoints( number ). Playing around with the various settings may work!

from three.meshline.

jacopocolo avatar jacopocolo commented on June 7, 2024 1

I'm not one of the devs and they may help more BUT it looks like a bug. Meshline really struggles with too much variation on the z-axis. If you add wireframe: true to your material you may see that the mesh itself is not evenly wide.

I did a quick test here and it confirms the issue:

Reducing the Math.random() in the z of points visibly solves the problem and the mesh stops bending. So maybe adding more points in your geometry could solve the problem.

from three.meshline.

jacopocolo avatar jacopocolo commented on June 7, 2024

Hard to say without seeing the code.

  • What points/vertices are you passing to Meshline?
  • Are you using setPoints after?
  • Are you maybe passing some strange arguments to the setPoints second parameter that sets the width?

from three.meshline.

pumanitro avatar pumanitro commented on June 7, 2024

@jacopocolo

  1. Any points that are not straight-line looks like above
  2. I am using setPoints
  3. my second parameter looks like this:
    line.setPoints(new Float32Array(points), p => 1);
    So it does nothing special. I just tested it.

Additionally, my material looks like this:

const color = new THREE.Color(getColor(propertiesColor, 'hex'));

const material = new MeshLineMaterial({
    map: null,
    useMap: false,
    color,
    dashArray: false,
    resolution: new THREE.Vector2( window.innerWidth, window.innerHeight ),
    sizeAttenuation: true,
    lineWidth: 1200
  });

from three.meshline.

pumanitro avatar pumanitro commented on June 7, 2024

adding more points in your geometry could solve the problem

I thought about this too, but I am not sure about the performance + I would need to calculate points in between 2 points (shouldn't be hard). Still, I was really surprised how hard it is to create such a line path in three.js in XXI century 😄

from three.meshline.

chimeiaiwangliang avatar chimeiaiwangliang commented on June 7, 2024

Has the problem been solved?

from three.meshline.

jon-mcclung-fortyau avatar jon-mcclung-fortyau commented on June 7, 2024

Ran into the same issue today, it appears that duplicating each point besides the first and last works pretty well. You get a thick, consistent line between each point.
Instead of this:

points = [
      new THREE.Vector3(-5, 0, 0),
      new THREE.Vector3(5, 0, 0),
      new THREE.Vector3(5, 10, 0),
      new THREE.Vector3(-5, 0, 0),
]

You want this:

points = [
      new THREE.Vector3(-5, 0, 0),
      new THREE.Vector3(5, 0, 0),
      new THREE.Vector3(5, 0, 0),
      new THREE.Vector3(5, 10, 0),
      new THREE.Vector3(5, 10, 0),
      new THREE.Vector3(-5, 0, 0),
]

from three.meshline.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.