I saw this video:
Here at time 1:21 we can see some 3D labels showing up and as the user moves around the engine the label hides itself and some other label pops up. I have two questions here:
1) How he is able identify which part he is viewing?
2) How does he make those label animate( showing and hiding) like there in the video?
Any help would be appreciated.
I have an idea but I am not sure if it is possible in Vuforia Studio.
I presume that this demo ha been done in Vuforia Engine SDK with Unity 3D.
1. How he is able identify which part he is viewing?
I suppose that a raycast is used between the center of 3D camera (position and orientation in 3D World) to each Parts/Components with a 3D Label.
If raycast hurt any others 3D object (except the Parts/Components with a 3D Label) ; Label is hidden. If not, Parts is visible, so, we can display the Label.
More details in this thread about raycast in Vuforia Studio:
2. I don't think that a 3D Label as in Vuforia Studio is used here.
When the hide event is received by 3D Label, an animation can be ran.
So, I presume that a svg file with a such rectangle can be animated.
By the way, when the display event is received, same animation can played also but reversed.
To animation the 3D Ladder linked to 3D Label to 3D Parts.
I presume that the solution is to control point of 3D Ladder linked to 3D Parts to center of this Part.
By using a quad with a single face and Z-Buffer in OpenGL API (billboard and always visible in Vuforia Studio); it will never be hidden by something else.
It is possible to have 3D Ladder and 3D Label in same svg file.
The most difficult is to move 3D Labels to be always visible in 2D screen.
It is needed to project tham from 3D world coordinnate to 2D screen and move them in 2D screen with a margin and by knowing size of 3D Label.
Regarding to the point 2.) in your post:
It is not easy and need to adjust each leader and 3d Notes. But when I see the video, I think the notes with leaders are not dynamically in the most case. In one case where the leader line is coincident with the pivot axis of the text - there could be used also the billboard property of the 3DLable. The other cases are simple combination of 3d Image /for the leader line/ and 3DLabel text.
Here in the example we have the effect that the leader lines will apper "automaticaly" -> in this example when we gain a distance < 1 meter to the point [0,0,0]. But it could be any points which should be in the middle of a particular component. So that it is a distance ball around specific component