Skip to content

Release 1.0.0b24

Pre-release
Pre-release
Compare
Choose a tag to compare
@jonathanhogg jonathanhogg released this 06 Jan 10:19
· 4 commits to main since this release
v1.0.0b24
ae36d7d

User visible changes in this release:

  • A new mechanism for creating 3D models programmatically using !model vertices=... faces=...
  • !sdf node now accepts the same smooth=, fillet= and chamfer= attributes as !union (since it is an implicit union operator)
  • A fix to nearest=true shader input sampling, which was accidentally disabling the border settings
  • New grammar for sub-vector searching: x in y (note that this has subtly changed the rules around using "reserved" names)
  • New grammar for binding a sequence expression to a name:
    let x = 
        expr1
        expr2
        ...
    
  • The precedence rules have changed for anonymous functions so that they now bind a bit less tightly and thus can contain inline for loops, where clauses and other anonymous functions without parentheses
  • New product() function
  • New optional second parameter for colortemp() function that specifies whether to normalise the luminance of the returned colour or not
  • New uv_remap=:plane UV remapping scheme for topographical mapping

Less visible changes:

  • The 3D model caching framework has been changed to cache based on a (probably-)unique 64-bit identifier instead of the user-readable name; this increases the speed of model collection and will be particularly noticeable if rendering thousands of identical structured models
  • A more robust mechanism for figuring out which outer-scope names a function is capturing
  • The simplifier will now attempt to inline calls to recursive functions if any of the arguments are literal; it will abandon the attempt if the expression tree becomes too deep
  • The simplifier is now able to throw away unused let bindings
  • The simplifier has gained rules for collapsing mathematical expressions involving a null on one side
  • Grammar rules around comparison operations have changed in a way that shouldn't matter unless you were doing weird/bad things with them before
  • A bunch more tests
  • A bunch of documentation improvements and fixes

Full Changelog: v1.0.0b23...v1.0.0b24