Skip to content

Releases: t3kt/raytk

RayTK library v0.30

04 Feb 22:25
Compare
Choose a tag to compare

Highlights

  • Improved material handling for pointMapRender.
  • More consistent handling of axes in field inputs.
  • New editor tools.
  • New stackSdf.
  • Lots of bug fixes.

Details

  • Improvements / additions
    • Editor tools (#772)
      • Create switch (with / without blending)
      • Expose toolkit setting for editor tools keyboard shortcut
      • Combine lights with multiLight
      • Create various types of cameras/lights
    • New OPs
    • New OP features
      • curlNoiseField/noiseField/waveletNoiseField - auto coord type
      • directionalLight/spotLight - rotation support
      • flip - non-SDF support (when not using merging) (#996)
      • iridescenceContrib/matCapContrib - shadow support
      • jointSdf - direction setting (#995)
      • pointMapRender - material fill modes and other material settings (#998)
      • positionField - global position mode (#991)
      • segmentedLineSdf - variables and radius field (#1000)
  • Fixes
    • Fix label for composite fields editor action (#772)
    • Fixing parameter optimization
      • chopField - axis
      • colorSwitchField/constantSwitchField - blend indices
      • discSdf - axis
      • helixSdf - axis, reverse
      • lfoField - reverse
      • mirrorAxis - flip side
      • modulo1D/modulo2D - axis
      • planeSdf - axis, flip
      • prismSdf - axis, infinite height
      • pyramidSdf - axis
      • scale - use pivot
      • shadowContrib - invert
      • slice - axis
      • spiralSdf - axis
      • twist - axis
      • volumetricRayCast - skip missed rays
    • Fix interpretation of axes in field inputs (#992)
      • arcSdf2d
      • blobbyCrossSdf2d
      • circleSdf
      • coneSdf
      • crossSdf
      • cylinderSdf
      • discSdf
      • ellipseSdf2d
      • helixSdf
      • linkSdf
      • mandelbulbSdf
      • mengerSpongeSdf
      • octahedronSdf
      • pieSdf2d
      • torusSdf
    • goochShadingContrib - fix warm/cool colors swapped (#989)
    • iridescenceContrib - fix doubled period
    • jointSdf - fix doubled angle (#994)
    • moduloPolar - fix swapped x and y axes (#1003)
    • noiseField - clarify option labels (#987)
    • specularContrib - fix phong mode (#909)
  • Changes (potentially breaking)
    • Fix warm/cool colors swapped in goochShadingContrib (#989)
    • Fix interpretation of axes in field inputs (#992)
    • Fix doubled period in iridescenceContrib
    • Fix doubled angle in jointSdf (#994)
    • Fix swapped X and Y axes in moduloPolar (#1003)
    • Clean up context type parameters on many ops
  • Infrastructure / internals
    • Lots of test cleanup and optimization
    • Centralized ambient occlusion calculation (#455)

Compatibility

This version of the toolkit is compatible with TouchDesigner 2022.30130.

RayTK library v0.29

22 Dec 18:25
Compare
Choose a tag to compare

Highlights

  • Lots of improvements to volumetric sampling using pointMapRender.
    • Support for lighting and shading in materials.
    • Variables from sampledPointMat to customize shading.
    • Easier access to data textures using dataTextureField.
  • New 2D SDFs including eggSdf2d, hexagonalGridSdf2d, rhombileGridSdf2d, and triangularGridSdf2d.
  • Faster parameter changes for lots of operators (especially menu parameters).

Details

  • Improvements / additions
    • New OPs
      • boundLimit (#30)
      • dataTextureField
      • eggSdf2d
      • geometricSeriesSquareTile
      • gridPattern (#254)
      • hexagonalGridSdf2d
      • hyperbolicParaboloidSdf
      • objectIdMask
      • projectPolar
      • rhombilleTilingSdf2d
      • ringsSdf
      • triangularGridSdf2d
    • New OP features
      • axisLight - rotation (#961)
      • chainSdf - length, radius, thickness field inputs (#693)
      • circleWaveSdf2d - offset parameter, curl, radius, thickness, offset field inputs (#588)
      • cylinderSdf - allow optimizing axis
      • generalizedPolyhedronSdf - exponent field (#693)
      • juliaSdf - C field input, step variables (#693)
      • metaballField - coord, center, exponent, radius, weight field inputs
      • pointDistanceField - coords and center field inputs (#978)
      • pointMapRender - lighting and shading support (#981), variables for data position
      • revolve - radial offset, axis offset field inputs (#812)
      • sampledPointMat - variables equivalent to modularMat, surface color support
      • triangleSdf2d - radius and size field inputs (#588)
      • variableReference - show field name in label (#980), clean up parameters
      • waveField - auto coord type
    • Faster parameter switching (especially menus) (#970)
      • axisDistanceField
      • bend
      • colorRampField
      • extrude
      • headSdf
      • iteratedTransform
      • kink
      • logPolarRepeat
      • mirrorAxes
      • mirrorOctant/mirrorQuadrant
      • mobiusTransform
      • modulo1D/modulo2D/modulo3D/moduloDistance/moduloPolar
      • quadTreeRepeat
      • radialClone
      • remapCoords
      • revolve
      • rotate4D
      • sampledPointMat
      • slice
      • textureField
      • truchetTile
    • Editor tools (#772)
      • crossSection and projectPlane
    • Reducing unnecessary parameters (#907)
  • Fixes
    • editor tools - fix incorrect attachment of specular/diffuse to modularMat without a primary input
    • linkedCamera - fix creating linked cameraViewport (#979)
    • modularMat - fix shadows not being activated when shading elements are not directly connected to modularMat (#982)
    • pointDistanceField - fix table buildExclude bug
  • Changes (potentially breaking)
    • adjustColor - separated out the hue/saturation and brightness/contrast field inputs
    • remove editor tools related to parameter locking
  • Infrastructure / internals
    • Operator tags which allow operators to indicate features that they depend on (e.g. lighting) (#982, #971)

RayTK library v0.28

02 Nov 23:09
Compare
Choose a tag to compare

Highlights

  • Core improvements - Vulkan specialization constants improve the performance of changes to menu parameters. Not all operators have been updated but many have.
  • New operators including 4D rotation, hilbert curves, circular fill repetition, and more!
  • New field inputs for lots of operators!

Details

  • Improvements / additions
    • New OPs
      • circleWaveSdf2d
      • circularRepeat (#962)
      • hilbertCurveTransform (#963)
      • rotate4D (#966)
    • New OP features
      • bandField - faster axis/blending/reverse changes, allow selecting axis for coordinate input field
      • gridSdf - thickness and spacing field inputs (#693)
      • matCapContrib - rotation param and field input
      • mobiusRingSdf - radius field input (#693)
      • moduloSpherical - variables, shift field, offset field, repetitions field (#746), mirroring
      • pbrMat - enable reflection setting (#971)
      • petalSdf - thickness and radius field input (#693)
      • polyhedronSdf - radius, face radius, segment radius, segment size, vertex radius, vertex size, uvw field inputs (#693)
      • prismSdf - variable support (#950), arbitrary side count (#951), UV coordinates (#952)
      • raymarchRender3D - faster changes for max dist, surface dist, step limit, near hit, pass counts (#970)
      • solidAngleSdf - radius, angle field inputs (#693)
      • stepField - faster axis/blending/reverse changes, allow selecting axis for coordinate input field
      • sweep - path Sdf / position variables
      • uvField - auto coord mode
      • waveField - faster axis changes, allow selecting axis for coordinate input field
    • Snippets (#132)
      • assignColor
      • assignUV
      • moduloSpherical
    • Editor actions (#772)
      • show fields in variable reference menu
  • Fixes
    • directionalLight shadow distance bug (#960)
    • impulseFn error (#959)
    • lfoGenerator channel count bug (#955)
    • pointMapRender coord type error for SDFs (#956)
    • pointMapRender macro error
    • pyramidSdf fix broken height field
    • variableReferences broken during snippet build (#954)
    • variableReference default value error
    • variable typedef macro error (#957)
  • Changes (potentially breaking)
    • mobiusRingSdf - remove support for 1D coords in thickness field (same thing can be done with variables), and stop combining the thickness parameter with the field (it now only uses field or parameter).
    • moduloSpherical - swap the x and y axes for the input, so it makes more sense (Y = outward)
  • Infrastructure / internals
    • Remove code filtering pragmas since they weren't helping (#710)
    • Remove incomplete support for using separate uniforms for parameters (#863)
    • Vulkan specialization constants! (#970)
    • Type-prefixed symbols to share things like menu option names across instances within a scene
    • Use opState approach for variables (#939)

Compatibility

RayTK 0.28 is compatible with TouchDesigner 2022.29530.

RayTK library v0.27

10 Sep 23:45
Compare
Choose a tag to compare

Highlights

  • Internal overhaul that should improve performance when creating / editing / deleting operators
  • Lots of new OP snippets
  • Optimized mode for some operators (especially composeSdf)

Details

  • Improvements / additions
    • New OPs
      • providePosition
      • shadingProperty
      • truchetPattern (#948)
    • New OP snippets (#132)
      • axisLight
      • boxSdf
      • capsuleSdf
      • cartesianToPolar
      • cellTileField
      • combine
      • crossSdf
      • discSdf
      • edgeCombine
      • geodesicSdf
      • iridesenceContrib
      • logPolarRepeat
      • matCapContrib
      • rangeTransform
      • reflect
      • reorderCoords
      • segmentedLineSdf
      • skyLightContrib
      • softShadow
      • spiralZoom
      • texture3dField
      • translate
      • trapezoidSdf2d
      • truchetPattern
    • Optimized mode for OPs (#943)
      • arrange
      • combineFields
      • compositeSdf - significant performance improvement
      • extrude - replaced implementation (no Optimize toggle)
      • rotate
    • New OP features
      • compositeFields - new modes (atop, over, under, xor), blend field
      • cylinderSdf - hollow mode, thickness field
      • hexagonalWeavePattern - color settings, variables
      • iridesenceContrib - spread param, period param
      • lfoGenerator - value offset param
      • lineSegmentSdf2d - thickness, variable
      • prismSdf - hollow mode, thickness field
      • truchetPattern - alternate formats and variables (#948)
      • waveWarp - phase offset param
      • vectorToFloat - length(xy) mode
    • Editor tools (#772)
      • add depthMap
    • Inspector individual ROP code viewing
    • Added developer/systems documentation (#31)
  • Fixes
    • Fix 2D support in rangeTransform (#942)
    • Fix snippet navigator window positioning (#132)
    • Fix compile error in lfoField (#944)
    • Fix defaultExpr for enable on shapedCombine
    • Fix broken swap inputs in combine when using optimized/read-only mode (#947)
    • Fix local positioning in modularMat (#916)
  • Changes (potentially breaking)
    • Update to TD 2022.28040
    • Remove 1D coord support from fields in iteratedTransform
      • Instead, use variableReference to access iteration index
    • Add shadow field parameter in raymarchRender3d, which will eventually replace the Shadow input
  • Infrastructure / internals
    • Replaced large portions of opDefition and shaderBuilder with more Python-based implementations. (#939)
      • Significant reduction of the number of OPs inside each ROP
      • Reduced build size
      • Restructured shader construction code to perform more in a single operation vs spreading it across many operators.
      • Removal of unused infrastructure
      • Cleanup in shared components including aggregateCodeGenerator, codeSwitcher, combiner, transformCodeGenerator, waveFunction
    • Remove support for global macros in shaderBuilder
    • Alternative "Optimize" mode for some operators that uses codegen
      • Produces only the needed parts of code and inlines as much as possible
    • Remove unnecessary supportDetector

Compatibility

RayTK v0.27 is compatible with TouchDesigner 2022.28040.

RayTK library v0.26

05 Aug 05:40
Compare
Choose a tag to compare

Highlights

  • Operator snippets! Usage examples that show different ways to use operators.
  • New pattern generators (tilingPattern, snubQuadrilePattern) and field-based pattern controls
  • New OP (composeSdf) for building SDFs composed of multiple other SDFs
  • New iridescence shading element
  • New pattern operators and field inputs for pattern operators.

Details

  • Improvements / additions
    • OP Snippets (#132, #845)
      • New tox containing examples of how to use operators
      • combine: switch
      • convert: extrude, revolve
      • field: atmosphereField, axisDistanceField, bandField, colorRampField, colorSwitchField, metaballField, multiPointDistanceField, sdfField
      • filter: adjustColor, elongate, flip, instance, invert, kink, knife, mirrorOctant, mobiusTransform, modulo1D, onion, quantizeValue, restrictStage, round
      • light: lightVolume, pointLight, volumetricRayCast
      • material: diffuseContrib, toonShadingContrib
      • pattern: brickPattern
      • sdf: boxSdf, coneSdf, cylinderSdf, planeSdf
      • sdf2d: lineSegmentSdf2d, pieSdf2d
    • New field inputs (#812, #588, #921, #693)
      • brickPattern - blending, shift, thickness
      • gyroidSdf - bias, phase1-2, thickness
      • hexagonalGridPattern - blending, thickness, colors
      • hexagonalWeavePattern - thickness
      • mengerSpongeSdf - cross scale, box scale, step offset
      • rosettePattern - glow, radius, spread
      • spiralZoom - phase, twist
      • weavePattern - thickness
    • New ops
      • composeSdf (#678)
      • fieldCamera (#228)
      • iridescenceContrib (#864)
      • snubQuadrilePattern (#254, #926)
      • tilingPattern (#923)
      • waveGreekFriezePattern (#930)
    • New op features
      • hexagonalGridPattern - separate blending and thickness, raw distance output, color settings (#254)
      • limitField - single-sided limit modes (#931)
      • mengerSpongeSdf - step offset, step variables (#698)
      • metaballField - auto coord type
      • multiLight - bounding volume limits (#908)
      • multiPointDistanceField - auto coord type
      • raymarchRender3d - option to disable showing background color for ray misses
      • reorderCoords - option to zero out axes (#213)
      • rosettePattern - spread and radius
  • Fixes
    • Fix rotate angle scaling in orthoCamera (#918)
    • Fix coord type collapsing in projectPlane (#920)
    • Show errors out both outputs of render2d (#922)
    • Fix how render depth enable/disable is handled in raymarchRender3d
    • Fix logPolarRepeat not applying spatial remapping (#928)
    • Fix Swap Inputs not working in arrange
  • Changes (potentially breaking)
    • Disable shadows by default in raymarchRender3d
    • Remove stage init code support from customOp (#933)
  • Infrastructure / internals
    • Added support for adding mode-specific macros in codeSwitcher
    • Toolkit editor support for opElements (#925)
    • Lots of test cleanup
    • Remove bendRay and ray modifier functionality
    • Start a separate project file for op snippets (#132)
    • Remove support for stage init code (#933)
    • Remove unused settings in inputHandler (#933)
    • Add a build process for op snippets (#132)
    • Build process crash reduction (#935)
      • Spreading deletions over more frames
    • Reduce unnecessary cruft in common infrastructure (#933, #935)
    • Move inputValidation out of inputHandler into opDefinition (#933)

Compatibility

TouchDesigner version: 2022.26590

RayTK library v0.25

06 Jul 21:31
Compare
Choose a tag to compare

Highlights

  • Updated to TD 2022.25370 Vulkan build.
  • Lots of bug fixes.
  • New field inputs for lots of operators.
  • Improved blending options in switch.

Details

  • Improvements / additions
    • New field inputs (#812, #588)
      • adjustColor - brightness/contrast, hue/saturation
      • flip - shift, offset
      • injectObjectId - id
      • jointSdf2d - bend, length, thickness
      • kink - amount, offset, spread
      • knife - offset
      • kochSnowflakeSdf2d - steps
      • modularMat - more shading elements
      • rotateNormals - rotate
      • stepField - values
      • wedgeSdf2d - end points, center point
    • Variables
      • normalized cell coordinates for modulo1d/2d/3d (#898)
      • pbrMat - light color, light position, surface color, surface uv, shaded level, surface normal
    • Show toolkit version in palette header
    • New op features
      • circleSdf - parameterized UV mode (#903)
      • knife - axis setting (#191)
      • scale - pivot setting
      • sdfField - option to return UVs
      • switch - input blending, replaces (now deprecated) blend operator (#905)
  • Changes (potentially breaking)
    • Updated to TD 2022.25370 Vulkan build. The toolkit will no longer be compatible with pre-Vulkan TD builds.
    • Remove deprecated light and camera parameters in raymarchRender3d. The Light parameter is no longer supported. To get similar functionality use a linkedLight.
    • Remove deprecated ops
      • goochMat - replaced by goochShadingContrib / modularMat
      • smoothUnion - replaced by combine
  • Fixes
    • Fix incorrect selection of default param page after palette creation and in toolkit editor (#109)
    • Fix merge type bug in flip (#892)
    • Fix param enable states in generalizedPolyhedronSdf (#896)
    • Fix handling of float fields in assignColor (#894)
    • Fix defaultExpr being set to invalid expression when geodesicSdf is created (#895)
    • Fix normals output in pointMapRender (#904)
    • Fix error tolerance in variableReference menu sources
    • Fix render2d erroring when no input is attached (#911)
    • Fix default alignment for render2d (#911)
    • Fix coord type menu labels in noiseFIeld (#913)
    • Fix error with camera / light return types in switch
    • Fix coord mode handling in chopField (#914)
    • Fix outdated TD palette components (#912)
  • Infrastructure / internals
    • Add development-only network boxes in infra components
    • Replace all remaining uses of old param list tables, and param opDef settings
    • Incomplete changes to how parameters are collected into vectors, current inactive (#907)
    • Cleaning up lots of tests
    • Reduce use of opFind DATs in ROPs and development tools

RayTK library v0.24

01 Jun 01:21
Compare
Choose a tag to compare

Highlights

  • Parameter optimization. For many parameters, if they're marked as read-only, RayTK will bake them into the shader.
    • This significantly improves performance, but means that if they change the shader has to recompile.
    • The new sceneState component helps with switching scenes between a "locked" optimized state and an "unlocked"
      editing state.
  • New SDFs and other operators.
  • New parameters and field inputs.

Details

  • Improvements / additions
    • Faster parameter switching (#571)
      • combine, combineFields, compositeFields, simpleDiff, simpleIntersect, simpleUnion, smoothUnion
      • colorRampField
      • modulo1d, modulo2d, reflect
      • crossSdf
      • lfoField, timeField, timeShift
    • Conditional parameter optimization (#571, #629)
      • Most operators
    • Variable support
      • cylinderSdf - angle (#856)
      • assignColor, assignUV, round - SDF (#865)
      • texture3DField, textureField - resolution (#847, #848)
      • Support accessing fields from SDF variables (#865)
    • New parameters
      • assignUV - center position (#875)
      • colorSwitchField - index scaling
      • colorRampField - coordinate range (#844)
      • elongate - axis masking (#858)
      • pieSdf2d - infinite mode (#801)
      • rectangleSdf - uv modes
      • switch - index and extend modes (#860)
      • waveWarp - amplitude multiplier (#734)
    • Editor actions (#772)
      • Sub-menus for diffuseContrib and specularContrib
      • Action for combining SDFs with arrange
      • Parameter locking actions (#869)
    • Support 3+ inputs in combineFields
    • Scene locking tool (sceneState) (#869)
    • Field inputs
      • diffuseContrib, specularContrib - color (#866)
      • generalizedPolyhedronSdf (#821)
      • slice - offset, thickness (#812)
      • spiralSdf2d (#588)
    • New operators
      • crescentSdf
      • jointSdf (#527)
      • kochSnowflakeSdf (#884)
      • mandelbrotSdf2d (#883)
      • sceneState - utility for working with parameter locking (#869)
  • Changes (potentially breaking)
    • Changes to default unit (ratio instead of radians) in polarCoordField and cartesianToPolar
    • Change to input numbering in switch when some inputs are missing (#860)
  • Fixes
    • Fix 2d coord handling in iteratedTransform (#846)
    • Fix coord type handling in colorRampField (#849)
    • Fix amplitude multipliers in lfoGenerator (#851)
    • Fix parameter optimization in diffuseContrib and specularContrib (#852)
    • Fix depthMap's buffer selection (#855, #436)
    • Fix field input on magnet (#861)
    • Fix type macro error in exposeValue
    • Fix enable bypass in radialClone (#882)
  • Infrastructure / internals
    • opElements which generalize and automate the code gen features of codeSwitcher, combiner, aggregateCodeGenerator, etc.
      • Include in yaml specs
    • Stop using parameter part aliases (except for special params) (#857)
    • Inline typedefs by default
    • New table-based parameter definitions.
      • Supports conditional optimization of parameters (#571, #629)

Compatibility

This version was built with TouchDesigner 2021.16410. It may work with more recent experimental builds but it hasn't been tested.

RayTK library v0.23

07 Apr 01:55
Compare
Choose a tag to compare

Highlights

  • Matcap materials
  • Multiple light sources!
  • Faster parameter changes for lots of operators

Details

  • Improvements / additions
    • New ops
      • matCapContrib (#798)
      • multiLight!!! (#711)
    • New feaures in existing ops
      • Infinite height option for cylinderSdf and prismSdf (#648)
      • Enable toggles in arrange (#755), mostly deprecating mergeToggle
      • Shadow toggles in axisLight, directionalLight, linkedLight, pointLight, spotLight (#711)
      • Index variable in arrange
      • Variable support basicMat
      • Coord field input in axisDistanceField (#829)
    • More flexible variable types and access to fields (#833)
    • Faster parameter changes (#629, #586)
      • instance - combine modes
      • axisLight, pointLight, spotLight - attenuation (#405)
      • boxSdf - infinite axis
      • axisDistanceField, axisLight, coneSdf, cylinderSdf, discSdf, gridSdf, helixSdf, planeSdf, polarCoordField, prismSdf, pyramidSdf, slice, spiralSdf, spiralZoom, twist - axis
      • flip, orthoCamera - direction
      • textureField - plane
  • Changes (potentially breaking)
    • Changes to variable type handling may cause compatibility issues for variableReference operators. To fix this, re-create them, which will assign the correct types.
    • The scale operator no longer rescales float values, only coordinates (#840)
    • Removed deprecated operators
      • ggxMat, orenNayarMat, sdfToFloat (replaced with sdfField)
    • Mark operators as deprecated
      • normalField
      • phongMat
      • uvField
  • Fixes
    • matCapContrib should have been included in the previous release but wasn't (#798)
    • scale operator should not rescale float values (#840)
  • Infrastructure / internals

Compatibility

This version was built with TouchDesigner 2021.16140. It may work with more recent experimental builds but it hasn't been tested.

RayTK library v0.22

16 Mar 03:05
Compare
Choose a tag to compare

Highlights

  • Faster enable/disable for lots of filters
  • New 2D and 3D SDFs

Details

  • Improvements / additions
    • New ops
      • arbitraryPolygonSdf2d (#816)
      • cutDiscSdf2d / cutSphereSdf (#817)
      • moonSdf2d
      • stairSdf2d (#815)
    • New field inputs (#812)
      • bend - shift
      • curlNoiseField - coordinates (#829)
      • elongate/extend - size, center
      • fold - distance
      • mobiusTransform - center, point
      • reflect - shift, offset
      • waveletNoiseField (#829)
    • New parameters
      • transformSequence - reverse order (#819)
    • Runtime bypass - faster enable/disable for filters (#755)
      • adjustColor
      • assignColor
      • assignUV
      • bend
      • cartesianToPolar
      • elongate
      • extend
      • fieldFunction
      • flip
      • fold
      • instance
      • iteratedTransform
      • invert
      • kink
      • knife
      • limitField
      • mirrorAxes
      • mirrorOctant
      • mirrorQuadrant
      • mobiusTransform
      • modifyNormals
      • modulo1D / modulo2D / modulo3D / moduloDistance / moduloPolar / moduloSpherical
      • onion
      • polarToCartesian
      • quadTreeRepeat
      • quantizeCoords / quantizeValue
      • radialClone
      • rangeTransform
      • reflect
      • remapCoords
      • rescaleField
      • restrictStage
      • rotate
      • rotateNormals
      • round
      • scale
      • slice
      • sphericalMobiusTransform
      • spiralZoom
      • transform
      • transformSequence
      • translate
      • twist
      • uvTransform
      • waveWarp
      • basicMat / goochMat / modularMat / pbrMat / phongMat / reflectMat / refractMat / sampledPointMat
    • UV support in cylinderSdf (#830)
    • Documentation
      • Added optimization guide (#750)
  • Changes (potentially breaking)
    • Remove deprecated operators
      • spin
    • Change how rotate handles 2D coords (#821)
      • This may cause behavior changes for 2d.
      • Instead of automatically using axis-based rotation when the input is 2d, instead use the mode parameter to choose between types (like for 3d). For 3d, only the Z axis rotation is used.
  • Fixes
    • Fix broken "Create render select" editor action (#822, #772)
    • Fix coord type resolution in coordTo2D and coordTo3D (#717)
    • Fix 1D coord support in modulo1D (#823)
    • Fix compile error in simpleIntersect
    • Fix for version error in raymarchPreviewPanel (#827, #436)
  • Infrastructure / internals
    • Part way through migration to yaml-based ROP definitions (#76)

RayTK library v0.21

07 Feb 02:17
Compare
Choose a tag to compare

Highlights

  • Editor actions are contextual actions available in a menu using the new ALT+SHIFT+R shortcut. They include things like:
    • Add common material elements when a modularMat is selected.
    • Add a lookAtCamera or pointLight when a raymarchRender3d is selected.
    • Combine selected SDFs or fields.
    • Navigating to the source of a variableReference.
    • Converting a vector field to a float field, and vice versa.
    • Exposing and binding parameters on the parent COMP.
    • Adding animation to parameters.
  • Transform sequences are a new way to apply groups of transforms to spatial coordinates or uv coordinates, including support for repeating the transforms in a loop! It's like a much more flexible version of iteratedTransform.
  • Standardized SDF combine options across various ROPs that combine SDFs. This means that the full features like stair union with offset control are available in ROPs like flip or radialClone.
  • Standardized wave function options across various ROPs. This means that waveField, waveFunction, lfoField, etc all have the same wave shape options.
  • Control utility components are a set of general-purpose tools that can be used with RayTK or non-RayTK operators. Most of them have associated editor actions, including:
    • lfoGenerator which can be applied to any numeric parameter using the "Animate with LFO" action.
    • speedGenerator which can be applied to any numeric parmaeter using the "Animate with Speed" action.

Details

  • Improvements / additions
    • Variables (#574)
      • arcSdf2d
      • discSdf
      • mandelbulbSdf
      • provideVariable - support Sdf values
    • New ops
    • New field inputs (#588, #693, #806)
      • arcSdf2d - orientation, aperture
      • cellTileField - coords
      • diffuseContrib - roughness, albedo
      • horseshoeSdf2d - angle, radius, length
      • linkSdf - length, radius, thickness
      • mandelbulbSdf - shift
      • mirrorAxes - flip sides (#641, #668)
      • onion - iterations, thickness
      • provideVariable - value
      • specularContrib - shininess, roughness, fresnel
      • tetrahedronSdf - scale
      • trapezoidSdf2d - height, width, points
    • New parameters
      • mirrorAxes side flipping (#641, #668)
      • torusSdf capped mode - note that UVs and variable scaling may be incorrect for capped mode (#221)
    • Standardized SDF combining across the toolkit, with new modes and parameters (#784)
      • arrange
      • combine
      • flip - compatiblity warning: this changes the menu options for the Merge Type parameter, so updates may reset it
      • instance
      • polyhedronSdf
      • radialClone - compatiblity warning: Merge Type parameter opions changed
    • Standardized wave functions across the toolkit, with new shapes and parameters (#787)
      • lfoField
      • waveField
      • waveFn
      • waveVectorField
      • waveWarp
      • additive square waves
      • wave shape function inputs
    • Editor actions (#772)
      • Append null (works for ROPs or regular CHOP/DAT/etc)
      • Inspect
      • Update OPs
      • Convert SDF to float
      • Convert vector to float for various parts
      • Rescale field
      • Rescale field with conversion to vector
      • Add diffuseContrib/specularContrib for modularMat
      • Add lookAtCamera/pointLight for raymarchRender3d
      • Extrude/Revolve 2D SDF
      • Colorize 2D SDF
      • Combine 2 SDFs
      • Combine 2 fields
      • Reference variable
      • Animate param with speedGenerator/lfoGenerator
      • Expose parameter on parent COMP
      • Customize shader config
      • Add render2D for 2D SDFs
      • Go to
        • Variable source
        • Variable references
    • Control utility components (#788)
      • lfoGenerator
      • paramFilter
      • speedGenerator
    • Custom and debug output buffers in render2d
    • Transform sequences / loops (#791)
      • bend
      • fold
      • kink
      • mirrorAxes
      • mirrorOctant
      • mirrorQuadrant
      • rangeTransform
      • reflect
      • rotate
      • scale
      • transform
      • twist
      • waveWarp
    • Vector output for lfoField when wave function input returns a vector
  • Changes (potentially breaking)
    • Remove deprecated operators
      • combineChamfer, combineColumns, combineStairs, edgeEngrave, edgeGroove, edgePipe
  • Fixes
    • Fix iteration index bug in instance operator (#785)
    • Fix height field bug in prismSdf
    • Fix coordinate type bug in stepField
    • Fix axis swaping in discSdf - compatibility warning, axis behavior changed
    • Fix bug with filter text and shortcuts in palette (#795)
    • Fix 2d support in mirrorAxes (#799)
    • Fix broken field input in scale (#805)
  • Infrastructure / internals
    • Move most columns out of the definition tables passed between ROPs (#758)
    • Help support for variables (#763)