Multi-modal method for interacting with 3D models
The present disclosure concerns a methodology that allows a user to “orbit” around a model on a specific axis of rotation and view an orthographic floor plan of the model. A user may view and “walk through” the model while staying at a specific height above the ground with smooth transitions between orbiting, floor plan, and walking modes.
1 . A system, comprising:
a processor; and
a memory communicatively coupled to the processor, the memory having stored therein computer-executable instructions, the memory comprising one or more components configured to:
receive a graphical user interface that facilitates viewing and navigating a three-dimensional model from different perspectives of a virtual camera in different navigation modes, the different navigation modes including a walking mode that provides one or more perspectives of the different perspectives from the virtual camera representative of walking in the three-dimensional model and a floor plan mode that provides perspectives of the three-dimensional model from the virtual camera positioned outside and above the three-dimensional model and with a view of the three-dimensional model that has a pitch direction of the view locked substantially orthogonally oriented relative to a horizontal surface of the three-dimensional model, wherein the floor plan mode enables spatial motion of the virtual camera while maintaining a substantially orthogonal orientation of the view relative to the horizontal surface;
receive at least one representation of the three-dimensional model from at least one of the different perspectives in a particular navigation mode of the different navigation modes;
receive a request to activate a measurement mode that allows for dimensions on the three-dimensional model to be measured in the particular navigation mode;
activate the measurement mode;
receive first input indicating a first endpoint for a measurement;
receive second input indicating a second endpoint for the measurement;
determine a method of computing the measurement between the first endpoint and the second endpoint based on whether the particular navigation mode of the different navigation modes is the walking mode or the floor plan mode, wherein when the particular navigation mode is the walking mode, the method of computing uses Z-buffer coordinates from a render of the graphical user interface and wherein when the particular navigation mode is the floor plan mode, the method of computing uses raycasting along vectors defined by parameters of the virtual camera and screen coordinates of the first endpoint and the second endpoint;
compute the measurement between the first endpoint and the second endpoint using the method of computing the measurement between the first endpoint and the second endpoint; and
generate a visual representation of the measurement between the first endpoint and the second endpoint in the graphical user interface.
2 . The system of claim 1 , wherein the one or more components are further configured to:
generate a visual representation of the measurement in the graphical user interface, wherein the measurement is a distance between the first endpoint and the second endpoint.
3 . The system of claim 1 , wherein the one or more components are further configured to:
generate a first shape for the first endpoint for the measurement; and
generate a second shape for the second endpoint for the measurement.
4 . The system of claim 1 , wherein the one or more components are further configured to:
determine that the first endpoint is within a specified distance of a first edge or a first corner in the three-dimensional model;
snap the first endpoint to the first edge or the first corner;
determine that the second endpoint is within a specified distance of a second edge or a second corner in the three-dimensional model; and
snap the second endpoint to the second edge or the second corner.
5 . The system of claim 1 , wherein the one or more components are further configured to generate the visual representation of the measurement between the first endpoint and the second endpoint in the graphical user interface by determining a first location of the first endpoint in the three-dimensional model by raycasting along a first vector defined by parameters of the virtual camera and first screen coordinates of the first endpoint and determining a second location of the second endpoint in the three-dimensional model by raycasting along a second vector defined by the parameters of the virtual camera and second screen coordinates of the second endpoint.
6 . The system of claim 1 , wherein the one or more components are further configured to generate the visual representation of the measurement between the first endpoint and the second endpoint in the graphical user interface by examining a Z buffer from a rendering of the graphical user interface, determining a first location of the first endpoint in the three-dimensional model based on the Z buffer, and determining a second location of the second endpoint in the three-dimensional model based on the Z buffer.
7 . The system of claim 1 , wherein the one or more components are further configured to generate visual representations of measurements differently in the walking mode than in the floor plan mode.
8 . The system of claim 1 , wherein the visual representation of the measurement includes a first object that is at least partially transparent and is positioned in front of the three-dimensional model and a second object that is opaquer than the first object and is positioned at or near a correct depth in the graphical user interface.
9 . The system of claim 1 , wherein the visual representation of the measurement is positioned at or near a correct depth in the graphical user interface.
10 . The system of claim 1 , wherein the one or more components are further configured to:
receive third input indicating an updated second endpoint for the measurement; and
generate an updated visual representation of the measurement between the first endpoint and the updated second endpoint in the graphical user interface.
11 . A non-transitory computer-readable medium comprising executable instructions, the executable instructions being executable by one or more processors to perform a method, the method comprising:
receiving a graphical user interface that facilitates viewing and navigating a three-dimensional model from different perspectives of a virtual camera in different navigation modes, the different navigation modes including a walking mode that provides one or more perspectives of the different perspectives from the virtual camera representative of walking in the three-dimensional model, and a floor plan mode that provides perspectives of the three-dimensional model from the virtual camera positioned outside and above the three-dimensional model and with a view of the three-dimensional model that has a pitch direction of the view locked substantially orthogonally oriented relative to a horizontal surface of the three-dimensional model, wherein the floor plan mode enables spatial motion of the virtual camera while maintaining a substantially orthogonal orientation of the view relative to the horizontal surface;
receiving at least one representation of the three-dimensional model from at least one of the different perspectives in a particular navigation mode of the different navigation modes;
receiving a request to activate a measurement mode that allows for dimensions on the three-dimensional model to be measured in the particular navigation mode;
activating the measurement mode;
receiving first input indicating a first endpoint for a measurement;
receiving second input indicating a second endpoint for the measurement;
determining a method of computing the measurement between the first endpoint and the second endpoint based on whether the particular navigation mode of the different navigation modes is the walking mode or the floor plan mode, wherein when the particular navigation mode is the walking mode, the method of computing uses Z-buffer coordinates from a render of the graphical user interface and wherein when the particular navigation mode is the floor plan mode, the method of computing uses raycasting along vectors defined by parameters of the virtual camera and screen coordinates of the first endpoint and the second endpoint;
computing the measurement between the first endpoint and the second endpoint using the method of computing the measurement between the first endpoint and the second endpoint; and
generating a visual representation of the measurement between the first endpoint and the second endpoint in the graphical user interface.
12 . The non-transitory computer-readable medium of claim 11 , the method further comprising:
generating a visual representation of the measurement in the graphical user interface, wherein the measurement is a distance between the first endpoint and the second endpoint.
13 . The non-transitory computer-readable medium of claim 11 , the method further comprising:
generating a first shape for the first endpoint for the measurement; and
generating a second shape for the second endpoint for the measurement.
14 . The non-transitory computer-readable medium of claim 11 , the method further comprising:
determining that the first endpoint is within a specified distance of a first edge or a first corner in the three-dimensional model;
snapping the first endpoint to the first edge or the first corner;
determining that the second endpoint is within a specified distance of a second edge or a second corner in the three-dimensional model; and
snapping the second endpoint to the second edge or the second corner.
15 . The non-transitory computer-readable medium of claim 11 , the method further comprising:
determining a first location of the first endpoint in the three-dimensional model by raycasting along a first vector defined by parameters of the virtual camera and first screen coordinates of the first endpoint; and
determining a second location of the second endpoint in the three-dimensional model by raycasting along a second vector defined by the parameters of the virtual camera and second screen coordinates of the second endpoint.
16 . The non-transitory computer-readable medium of claim 11 , the method further comprising:
examining a Z buffer from a rendering of the graphical user interface;
determining a first location of the first endpoint in the three-dimensional model based on the Z buffer; and
determining a second location of the second endpoint in the three-dimensional model based on the Z buffer.
17 . The non-transitory computer-readable medium of claim 11 , the method further comprising generating visual representations of measurements differently in the walking mode than in the floor plan mode.
18 . The non-transitory computer-readable medium of claim 11 wherein the visual representation of the measurement includes a first object that is at least partially transparent and is positioned in front of the three-dimensional model and a second object that is opaquer than the first object and is positioned at or near a correct depth in the graphical user interface.
19 . The non-transitory computer-readable medium of claim 11 wherein the visual representation of the measurement is positioned at or near a correct depth in the graphical user interface.
20 . The non-transitory computer-readable medium of claim 11 , the method further comprising:
receiving third input indicating an updated second endpoint for the measurement; and
generating an updated visual representation of the measurement between the first endpoint and the updated second endpoint in the graphical user interface.
21 . A method comprising:
receiving a graphical user interface that facilitates viewing and navigating a three-dimensional model from different perspectives of a virtual camera in different navigation modes, the different navigation modes including a walking mode that provides one or more perspectives of the different perspectives from the virtual camera representative of walking in the three-dimensional model, and a floor plan mode that provides perspectives of the three-dimensional model from the virtual camera positioned outside and above the three-dimensional model and with a view of the three-dimensional model that has a pitch direction of the view locked substantially orthogonally oriented relative to a horizontal surface of the three-dimensional model, wherein the floor plan mode enables spatial motion of the virtual camera while maintaining a substantially orthogonal orientation of the view relative to the horizontal surface;
receiving at least one representation of the three-dimensional model from at least one of the different perspectives in a particular navigation mode of the different navigation modes;
receiving a request to activate a measurement mode that allows for dimensions on the three-dimensional model to be measured in the particular navigation mode;
activating the measurement mode;
receiving first input indicating a first endpoint for a measurement;
receiving second input indicating a second endpoint for the measurement;
determining a method of computing the measurement between the first endpoint and the second endpoint based on whether the particular navigation mode of the different navigation modes is the walking mode or the floor plan mode, wherein when the particular navigation mode is the walking mode, the method of computing uses Z-buffer coordinates from a render of the graphical user interface and wherein when the particular navigation mode is the floor plan mode, the method of computing uses raycasting along vectors defined by parameters of the virtual camera and screen coordinates of the first endpoint and the second endpoint;
computing the measurement between the first endpoint and the second endpoint using the method of computing the measurement between the first endpoint and the second endpoint; and
generating a visual representation of the measurement between the first endpoint and the second endpoint in the graphical user interface.