![]() This can be achieved with the help of the viewer's worldToClient method. The first thing we need to do is convert the 3D points into 2D points relative to the client units in pixels. This comparison will consider the distance between the labels in a 2D context (client coordinates). ![]() We'll need to reapply this strategy each time the camera changes since its orientation defines the way we see the labels. To make it work, we'll need a way to group the labels that are overlapping. So, to summarize, we'll take advantage of sprites to add our labels and adjust our scene so that it doesn't get too populated with labels, grouping them when necessary. With sprites, we can easily specify a size for our labels (in pixels), so they can adjust themselves based on the camera orientation (looking bigger in comparison with our scene elements). We choose to implement this approach with sprites, but the same logic can also be applied to markups or any other type of annotation, as long as it relies on points (in the scene or in the client). It shows a way to achieve that grouping of sprites depending on the camera orientation. It is at this point that we need to think of a way to improve visualization without limiting the number of annotations added to the scene. When we start adding labels to our scenes, we might get to a point where it gets too crowded.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |