I see, thanks. I think cameraFacing maybe is confusing with billboardMode. They mean completely different things, but the words have similar meaning. It sounds like cameraFacing is on the material and billboardMode is on the mesh. Maybe that’s fine?
It will be added to GreasedLineMaterialOptions so we can agree on the name cameraFacing.
EDIT:
My bad.. Sorry! It will be added to GreasedLineMeshBuilderOptions but billboardMode is already a mesh parameter so I’m still convinced cameraFacing will be ok.
If anyone come up with a better name it takes no time to refactor it ![]()
I think the mesh builder option is far enough away from a mesh property that it should be fine. Just make the doc comment clear on what it’s doing. ![]()
@roland did you attempt the PR before heading out. I did not see it in the build logs but may have missed it. Completely understandable if you did not have time before you had to go.
Either way, thanks!
Hi!
Sorry, I didn’t manage to commit the sources because I found a rendering error:
It should render along the red line.
It looks ‘better’ rotated:
But I am back and started to work on it already.
![]()
Take your time, I am in no rush. I don’t want your hopefully fun, spare-time hobby to start to feel like work or a chore you have to do. Nothing burns community members out faster. I do appreciate you taking the time to do this, but when it works for you. Thank you again.
Hello!
Check this out:
@Calsa hi!
A new snapshot has been created for the non camera facing GRL:
the link is not working it looks like ![]()
I must be missing something. The snapshot looks like a completely stock PG.
I did not see the pull request merged yet into master, only a small bugfix for a material clone issue. But, your PG examples look great. Any idea when changes will go into master, specifically into the NPM packages?
The snapshot PG makes it possible to test the non merged PRs. I am working on the PR just right now. Frankly, I underestimated the complexity of the PR. Keeping every option compatilbe with the camera facing GRL is quite complex but I’m getting there steadily. There will be new commits today.
I did not even know that was possible to preview non-merged. Still learning new things about how robust the PG is ![]()
Not just the PG. It builds a complete Babylon.js environment for you. Have a look at here:
FInally…
Congratulations and thanks a lot !!!
Absolutely phenomenal!
Before:
Greased:
Though they look similar, what “before” could not do that “greased” can is animate along the lines own path and handle certain complex materials. It also fixes a few kinks that form in the original extrudeShape ribbon method… Now to have some fun ![]()
Thanks!
When you get a chance (absolutely no rush), there does seem to be two minor bugs.
The width property does not consistently apply to individual “legs” of a Points_Mode_Path points mode, especially when there are sharp turns at non 90 angles. This leaves some line segments looking really thin, or even disappear entirely, compared to others segments of an identical width. In the image below only two widths are applied, one thicker than the other. Yet, many widths are rendered depending on angles.
I circled one spot where the line completely disappears but the points are actually there. There are a few others like that too.
Also, not all lines normalize to the world vector, so half come in flipped upside down requiring the double sided to be applied to see them.
You can see the issue here live on one of my test domains: https://dern.tech
Still, this is an exciting improvement. Thank you.
This is my build command for all lines.
ml = CreateGreasedLine("p2pLine" + sourceNode.ptid + "to" + targetNode.ptid ,
{ points: cPoints,
ribbonOptions: {
width: lineWidth*2,
pointsMode: GreasedLineRibbonPointsMode.POINTS_MODE_POINTS,
directions: new Vector3(1, 0, 0),
facesMode: GreasedLineRibbonFacesMode.FACES_MODE_DOUBLE_SIDED
}
})
It’s not worth these kind words ![]()
Could you please create a quick PG to demonstrate what do you exactly mean?
Yes that’s true. It really depends on how your points are defined, which direction they follow. In some cases it can be required to be single sided and visible only from one side but I can surely introdfuce an option to normalize to the world vector.
directions: new Vector3(1, 0, 0),I don’t believe that this will fit all your lines. If your line is drawn along the x-xis it can be very thin. Try other direction modes or you can calculate your own direction for your lines according to your own rules.
Thanks a lot for the review. Your app looks very good!
I had an idea in the past to visualize BabylonJS forum topics in a similar way.
![]()






