- Official Post
Hi,
after another long development phase, version 1.22 is finally ready for release. Technically again a very big release with many new features and numerous detail improvements.
One aspect of the development was to make things easier - easier to build dynamic and adjustable layouts, easier to track and manage dynamic changes, e.g. to allow changing the language without the need to manually update everything, and to make the usage by and with Javascript easier and better.
Another aspect was to develop a system that allows to include external rendering engines, e.g. like the often-requested ThreeJS 3D rendering library, but including other or custom renderers would be possible too. That new system not just allows to include the rendering, but also to manage the 3D objects as normal hotspots. This way, the existing events and actions system can be used and the actual usage will be simplified.
For a quick introduction, here a krpano 1.22 Video Playlist (Youtube).
And there is also much more. See the highlights below and the full details in the Release Notes.
Best regards,
Klaus
Reactive Progamming / Designing APIs
- One major new feature is the introduction of the Reactive Programming APIs.
- These interfaces allow automatic responses to variable changes. This means that the system can automatically trigger actions or events whenever a variable changes.
- This automation helps simplifying the code structure because you no longer need to manually check for changes and then call code for updating. Instead, krpano manages these changes automatically.
- Some usage cases: Skins and responsive layouts, Internationalization (language switches), user-interfaces
- Many upcoming developments in krpano will be based on this new system.
Examples:
ThreeJS Plugin - 3D Graphics
- krpano 1.22 introduces new APIs for integrating external or custom WebGL 3D rendering systems into krpano.
- This integration represents a truly complete solution, allowing for full sharing of WebGL buffers and depth information. This means that krpano 3D models and custom 3D elements can interact seamlessly with one another, rather than merely layering on top of each other.
- In addition to the renderer-integration, custom hit-testing is also possible, enabling the system to determine whether a user interaction would occur within the 3D scene. This functionality supports all display cases, including VR, stereo- and anaglyph rendering.
- These new APIs make it possible to include the ThreeJS 3D engine as a plugin directly into krpano.
- The new krpano ThreeJS Plugin does more than just including ThreeJS, it offers functions to simplify the setup and use of 3D content.
- 3D models can now be easily loaded as hotspots and controlled using standard hotspot settings and events.
- Lights can also be defined and used as hotspots.
- To help better integrating the 3D model into a panoramic scene, there is support for environment mapping, virtual shadow floors and the use for color-temperatures for the lights.
- Additionally there are helper functions for material conversions, for getting the bounding boxes and more.
- For even more customization and to help understanding how the integration works, there is even an Open Source version of the plugin available.
Examples:
- Dancing Cat (Animations)
- Environment Maps
- Third Person Controls (Animations)
- Transform Controls Module
- Tuscany (Renderer Comparison)
- ThreeJS Open Source Plugin
krpano Maps Plugin
- A new krpano-based Maps Plugin that can use any map tiles.
- By default it uses the Open Street Map images.
- It is compatible to the Googlemaps and Bingmaps plugins and can be used a direct replacement.
- Additionally to the compatibility plugin actions, the krpano Maps Plugin also offers some newer plugin actions for more control and customizing.
- As krpano-based, open-source xml-only plugin, it allows way more customizing and is more flexible, e.g. use any kind of krpano hotspots or krpano layers on the map.
Examples:
Javascript API
- The update of the JavaScript API documentation was long overdue and has now finally been brought up to the current state.
- The Javascript API itself also has been extended, several krpano actions are now directly callable and have dedicated Javascript interfaces.
- There is now a new Object-based tween() function. This allows a more Javascript-style usage.
- There are several new Reactive-Programming functions.
- To demonstrate the Javascript usage with krpano, there is new collection of Javascript API Examples available.
Detail Improvements
- There is a new built-in Language / Translation system.
- Textfields can use templates now.
- It's now possible to use Custom Encryption Keys. This helps in sharing encrypted files where only specific or individual users can then decrypt the files.
- Support CSS Filters for layers, including a special colorize filter for colorizing images.
- Flat multires images can 'wrap around' horizontally now.
- The <include> element can now also include Javascript and CSS files.
- There is a new tween() 'Object API' syntax for changing multiple variables on one object at once.
- CSS classes can now be used for the Contextmenu styling - Example.
- The Compare Panos Example has been improved to support flat and partial panos (Video). Additionally it's possible to compare multiple images with each other. And there is config file for the MAKE VTOUR Droplet to build automatically 'Compare-Pano' examples.
- And many things more, all details in the Release Notes.