beta.5
Pre-release
Pre-release
Changelog:
- Changed license from GPLv3 to MIT
- You should always check the source file(s) for any deviating licensing notes - for example, some of the asset files of the render samples may fall under different terms
- Improved performance (by 100+% in some cases)
- Added new render paths that are taken under certain conditions and which result in higher render performance
- E.g. for affine-textured polygons when no alpha operations or shaders are specified
- Will be documented at a later time
- You can find the code for the render paths - with descriptions of their conditions - in /js/retro-ngon/base-modules/rasterize/
- API changes in the 'options' object passed to render():
- Render modules now live under a 'modules' sub-object
- The 'Function' suffix of the 'pixelShaderFunction' and 'vertexShaderFunction' properties was removed
- Added context shaders (they expose the renderer's underlying CanvasRenderingContext2D)
- Added raster shaders (experimental; allow you to override or enhance the rasterization of transformed polygons without replacing the entire rasterizer module)
- The difference to pixel shaders is that pixel shaders are applied to the rasterized image whereas raster shaders are the code that produces the image in the first place
- Added experimental support for paletted rendering
- Various small improvements to the point, line, and polygon rasterizers
- Some reorganization of the source code directory structure
- Added an overridable 'surfaceWipe' render module (for customizing the way the screen is cleared at the beginning of each render tick)
- Added ability to pass target canvas to render() as an Element object
- Added some render samples
- Tweaked the render benchmarks a bunch
- The render samples no longer depend on PHP
- Removed Phong shading
- Replaced the Bash build script with webpack