-
Notifications
You must be signed in to change notification settings - Fork 286
xeokit v1.1 Release Notes
This xeokit SDK v1.1.0 release includes: a bundled BIM viewer, HTML tree view and context menu widgets, ambient shadows, improved camera interaction, metadata support for 3DXML models, plus many fixes and tweaks requested by users.
Special thanks to:
xeokit V1.1 includes xeokit-bim-viewer, which is an open source 2D/3D BIM viewer built on xeokit, that runs in the browser and loads models from your file system.
This viewer is developed with funding from Digital building Industries AG and OpenProject GmbH.
The viewer is integrated within OpenProject BIM 10.4, and can also be used as a stand-alone JavaScript application. In combination with open source CLI model conversion tools, it represents a low-cost, high-performance way to get your IFC models on the Web, that allows you the freedom to convert and host your models on your own server or GitHub repository.
xeokit V1.1 adds a TreeViewPlugin, which is an HTML tree view component that can navigate the objects in huge models. TreeViewPlugin has various hierarchy modes, scales up to large numbers of objects, and fully customizable using CSS.
This plugin was developed with funding from Digital building Industries AG and OpenProject GmbH.
xeokit V1.1 adds a ContextMenu component that provides a customizable HTML context menu.
This component was developed with funding from Digital building Industries AG and OpenProject.
xeokit V1.1 adds Scalable Ambient Obscurance (SAO), which approximates Ambient Occlusion in realtime. It darkens creases, cavities and surfaces that are close to each other, which tend to be occluded from ambient light and appear darker.
SAO was developed with funding from D-Studio.
The animated GIF above shows the effect as we repeatedly enable and disable SAO. When SAO is enabled, we can see darkening in regions such as the corners, and the crevices between stairs. This increases the amount of detail we can see when ambient light is high, or when objects have uniform colors across their surfaces. Run the example to experiment with the various SAO configurations.
xeokit's implementation of SAO is based on the paper Scalable Ambient Obscurance.
The CameraControl component is completely rewritten in xeokit V1.1. CameraControl controls the Camera with keyboard, mouse and touch input, and fires events when we hover, click or tap objects.
The new CameraControl provides better interactivity when dollying, orbiting and panning.
- Orbit Navigation - Duplex Model
- Orbit Navigation - Holter Tower Model
- First-Person Navigation - Duplex Model
- First-Person Navigation - Holter Tower Model
- Plan-view Navigation - Schependomlaan Model
- Adds the
navMode
property, which has three supported values: "orbit
", "firstPerson
" and "planView
". - Deprecates the
firstPerson
property - now replaced bynavMode
- Deprecates the
planView
property - now replaced bynavMode
- Deprecates the
panToPointer
property - now replaced byfollowPointer
- Removes the
panToPivot
option - pivoting mode always implies this behaviour now - Adds these properties:
-
followPointer
- Sets whether the Camera follows the mouse or touch pointer. -
constrainVertical
- Whether to vertically constrain the Camera position for first-person navigation. -
dragRotationRate
- How many degrees the Camera rotates/orbits for a full sweep of the canvas by mouse or touch dragging. -
keyboardRotationRate
- How many degrees per second the Camera rotates/orbits with keyboard input. -
rotationInertia
- A factor in range[0..1]
indicating how much the Camera keeps moving after you finish rotating it. -
keyboardPanRate
- How much the Camera pans each second with keyboard input. -
panInertia
- How much the {@link Camera} keeps moving after you finish panning it. -
keyboardDollyRate
- How much the Camera dollys each second with keyboard input. -
mouseWheelDollyRate
- How much the Camera dollys each second while the mouse wheel is spinning. -
dollyInertia
- Configures how much the Camera keeps moving after you finish dollying it.
-
- Adaptive dolly speed - dollying is when we move the Camera forwards or backwards, and
CameraControl
now adjusts dolly speed to be proportional to the distance to the nearest object. - Better orbit/rotation speed with mouse and touch - a sweep of the complete width of the canvas causes
360°
yaw rotation, and a sweep of the complete height of the canvas causes180°
pitch rotation.
- Fixes panning that was either too fast or too slow - adds view-space panning, where panning rate is proportional to the distance between the
Camera
position (Camera#eye
) and the Camera point-of-interest (Camera#look
). - Fixes issue with pivot indicator, where it was not always showing while the
Camera
was moving - Fixes memory leaks when destroying and recreating a
Viewer
, where mouse event handlers were not unregistered on destroy
The XML3DLoaderPlugin can now automatically generate metadata from each SolidWorks 3DXML model it loads.
We can use that metadata with TreeViewPlugin to generate a tree view for navigating the objects within the model.
xeokit V1.1 includes a new version of its .XKT
geometry format (V3), which fixes an accuracy issue with IFC
models positioned far from the World-space origin.
The xeokit-gltf-to-xkt CLI conversion tool and XKTLoaderPlugin have both been updated with this fix.
Also, the Creating Files for Offline BIM tutorial has been updated with more tips for preventing precision loss when converting your IFC models for use with xeokit.
The BIMServerLoaderPlugin now loads models from BIMServer 1.5.2, thanks to Nissim Pradhan](https://github.com/nissimpradhan), who is using xeokit within his research at Fraunhofer Italia.