Sorry for the lack of clarity! I will try to explain:
Here are the lineweights scaled by the viewport, as you have described. Since the curves are in 3D space, and the width uses ‘model units’, we see the closest object has the thickest lines:
That’s already very good, but the lines which extend into the scene have no taper, and are uniform thickness.
Anyway. If I try and make2D these silhouette lines, all the lines will have the same thickness. Which makes sense. Since they are on the same plane, they are the same distance from the camera.
Ultimately, I want to keep those differences in lineweights while make2Ding, so I can export them to Illustrator.
(If I simply export the 3D curves to illustrator, this is what I get.)
I guess it’s sort of along the same intentions as the side tangent about transparency based on distance from the camera/fog etc. The goal is to have Make2D linework that scales width based on distance from camera.
So if I have a line, for example, that we know is extending from close to us further into the distance:
We would want this line to have some visual effect of “vanishing” into the distance:
Of course, the vanishing point we talk about in perspective drawing doesn’t translate directly here. But it’s a similar idea.
Maybe I am misunderstanding the way it works, but I thought that every curve had the width as an attribute, so shouldn’t I be able to:
- Get the width of each existing curve
- Project curve onto plane
- For each projected curve, reassign the width of from the not-projected curve
Edit to add:
In my previous Grasshopper script I attached, I used the ‘start’ and ‘end width’ of the curves to decide its width.
I took the distance between each endpoint and the camera point, and I remapped the value. The smaller the number, the closer the point is to us, so the thicker the width. And vice versa.
I hope that is clearer. Thank you!