Release v0.8.1
WebGL2
Section titled “WebGL2”With this release we are switching to WebGL2 in all stages of processing and rendering pipelines. Previously, processing and effect shaders of the Engeenee SDK where written in WebGL1 for better compatibility with older devices and browsers. Meanwhile, inference of neural networks and most rendering engines already heavily utilize modern WebGL2 features that are available in all browsers for at least 5 years. Therefore, we’ve decided to port rest of GPGPU and image processing to the newer graphics standard that is by the way already pretty old (=.
All shaders were re-written and porting process is very straightforward and simple. If you have custom shaders utilized in ShaderProgram or ShaderPlugin, please update the code to follow WebGL2 shader syntax. We recommend this guide that describes major differences between standards. Basically, one needs to make the next simple changes to a shader code:
- Replace
attribure->in - In vertex shader, replace
varying->out - In fragment shader, replace
varying->in - Replace
gl_FragColorwith anyout vec4variable and assign to it - Use
texture()instead oftexture2D(),textureCube(), etc ShaderProgramadds#version 300 esline automatically
Gluon UI Library
Section titled “Gluon UI Library”For fast prototyping of simple UIs in demos and examples we are using very lightweight library of UI components developed internally. Gluon library is build on top of amazing VanJS - ultra-lightweight, zero-dependency, and unopinionated Reactive UI framework written in vanilla JavaScript and DOM. VanJS doesn’t rely on JSX or introduce any special syntax to compose UI components, therefore we don’t need any additional transpilers. For styling Gluon utilizes UnoCSS - fast and flexible atomic CSS engine.
With this release we are making Gluon library available for all users of the Engeenee SDK. Engeenee remains framework agnostic and doesn’t restrict choice of UI framework. We just think that very lightweight UI library having zero dependencies and very easy to pick up may be useful as a starting point for enthusiasts who would like to achieve the fastest performance possible, have closer to bare-metal experience and concentrate more on the most interesting parts: 3D, visuals, and interactivity.
Other Changes and Fixes
Section titled “Other Changes and Fixes”This release includes the next minor changes and fixes:
- Added HeadFitPlugin.setNode(), method that was missing after major refactoring.
- All internal dependencies are updated to the latest versions.