Releases: t3kt/raytk
Releases · t3kt/raytk
RayTK Library v0.34
Highlights
- Cloning improvements including gridClone and enhancements to radialClone
- Helpers for simplified access to data from renderers including nearHitMap and stepMap
- Bug fixes and lots of internal cleanup
- Fixed major crash related to textureField
Details
- Improvements / additions
- New OPs
- gridClone - mergeable cloning on a grid
- nearHitMap - convenience accessor for near hit render output (#289)
- rescaleFloatField - simplified version of rescaleField (#1071)
- stepMap - helper for accessing step count output buffer (#289)
- truncatedPyramidSdf
- triPlanarCombine - combine fields based on surface normals, similar to triPlanarTextureField (#1079)
- New OP features
- axisRotate - default to Z axis
- crossSection - offset field input
- fieldRender - pixel format parameter
- goochShadingContrib - color field inputs
- nearestRingPointField - index variables and rotate parameter
- pointMapRender - 3d texture output (#1072)
- radialClone - radial and angle offset field inputs
- rampField - added endpoint mode as an alternative to axis (#752)
- rimContrib - angle variable
- ringLight - color field input
- transform - field inputs (#720)
- Snippets
- rimContrib
- New OPs
- Fixes
- Fix input variable settings and reorder inputs to match availability in many operators
- Fix default settings for 2D render in inspector (#1073)
- Fix scaling for angle variable in nearestRingPointField (#1074)
- Fix crashes caused by textureField issue with nvidia error for branched calls to texture() (#1034)
- Fix input label in waveField
- Changes (potentially breaking)
- Some inputs have been reordered, so updating OPs may cause inputs to become disconnected
- Infrastructure / internals
- Documentation for internals (ROP structure, shaderBuilder)
- Remove unused global prefix code feature in shaderBuilder
Compatibility
This version of RayTK is compatible with TouchDesigner 2022.32660.
It does not require a commercial TouchDesigner license.
RayTK Library v0.33
Highlights
- Palette improvements: reorganized palette into more descriptive categories, ui styling, show which operators are new/updated
- New light operators
- Field instancing
Details
- Improvements / additions
- New OPs
- New OP features
- axisLight / directionalLight / pointLight - light direction variable
- blackbodyColorField - unit option
- extend - axis selection
- hashField - clarified function labels (#1057)
- onion - option to limit to inside/outside/both (#1051)
- provideVariable - support for capturing primary input
- reflectContrib - shadow support (#1059)
- sweep - 3D position variable
- waveField - amplitude field input
- Palette improvements
- Runtime bypass support
- circularRepeat
- hilbertCurveTransform
- lookAtRotate
- magnet
- rotate4D
- Snippets
- ambientLight
- instanceField
- limitArea
- moduloLine
- nearestRingPointField
- radialSlice
- ringLight
- Fixes
- Fix Update OP for non-ROPs (#1013)
- Fix input variable settings - combine, combineFields, compositeFields, edgeCombine, shapedCombine, simpleDiff, simpleIntersect, simpleUnion
- Fix scaling of normalized angle variable in revolve (#1063)
- Fix exposing primary value via exposeValue
- Fix confusing object id blending in combiners (at least somewhat better than it was..)
- Fix param enableExprs in triangleSdf2d
- Changes (potentially breaking)
- lineSegmentSdf2d - separated the field inputs for start and end points
- Infrastructure / internals
- Display category metadata and palette support (#1066)
Compatibility
This version of RayTK is compatible with TouchDesigner 2022.32660.
It does not require a commercial TouchDesigner license.
RayTK Library v0.32
Highlights
- New SDFs: pistonSdf, pistonSdf2d, lineSeriesSdf, springSdf
- New noise and color fields.
- Enhancements to KIFS fractals with iteratedTransform.
Details
- Improvements / additions
- New OPs
- New OP features
- assignColor - option conditionally apply only when missing
- basicMat/modularMat/pbrMat/reflectMat - option to conditionally apply only when missing (#1032)
- boxSdf - faces UV mode (#526)
- coneSdf - offset/angle variables
- customOp - support for variables, tools for creating tables
- diffuseContrib - burley shading method
- exposeValue - more options for render stage filtering
- instance - CHOP for disabling instances (#1036)
- iteratedTransform - SDF accumulation mode, custom transform input (#1048)
- magnet - translate parameters
- modularMat - 2D support (#1030)
- moduloPolar - angle / distance variables (#1040)
- planeSdf - finite depth option
- prismSdf - improved uv modes (#952)
- projectPlane - axis position variable
- quadTreeRepeat - offset and shift parameters / field inputs (#765)
- splitCamera - camera index variable (#515)
- subdivisionSdf2d - min size, size, seed, pattern shift parameters / field inputs (#885)
- translate - direction/distance mode (#1037)
- triangleSdf2d - direction parameter and inverted isosceles mode (#1050)
- vectorToFloat - color-based modes (HSV, luminance)
- Documentation for various operators
- Fixes
- Fix loading issues in variableReference by switching to StrMenu (#1020)
- Fix background color for code blocks on doc site
- Fix errors for optimization on parameters - combine/etc (#993)
- Fix input variable settings - onion
- Fix type settings in rotate
- Fix boxSdf UVs in optimized mode (#1029)
- Fix layoutGrid 2D support
- Changes (potentially breaking)
- Fix value scaling for rotate input on iteratedTransform. Previously it was treating inputs as radians rather than degrees.
- Infrastructure / internals
- Same metadata for RComps in yaml files
- Remove redundant json metadata files
Compatibility
This version of RayTK is compatible with TouchDesigner 2022.32660.
RayTK library v0.31
Highlights
- New 2D SDFs including branchingTreeSdf2d, polySplineSdf2d, and subdivisionSdf2d.
- Transform targeting: easier ways to apply transform filters to UV coordinates or field values instead of coordinates.
- Improved variable error messages and more flexible ways to use variables.
- Tons of bug fixes.
Details
- Improvements / additions
- Editor tools (#772)
- "Animate with ..." actions support non-ROPs
- Top-level pulse to open editor tools
- New OPs
- New OP features
- Faster axis switching - layoutGrid, noiseField (#586)
- Transform targeting (apply to UVs, field values, etc, instead of to coordinates) (#1019)
- mirrorAxes
- rotate
- scale
- translate
- transform
- coneSdf - option to specify base and top points instead of height and axis (#1025)
- customOp - added 4 more inputs
- dataTextureField - channel selection
- limitField - field inputs for low/high bounds (#812)
- vectorToFloat - average / minimum / maximum modes
- waveField, waveFn, waveWarp, etc - added reverse ramp wave type
- Documentation
- Show operator diagrams with input labels on reference pages
- Editor tools (#772)
- Fixes
- Fix broken composite field editor action (#772)
- Fix incorrect handling of offset field input for combine-based operators (#1008)
- Fix 2D support in shapedCombine
- Fix incorrect parameter page names in many ops
- Fix incorrect input labels in many ops
- Fix undo for "Animate with..." editor actions
- Fix error in variableReference on initial load (#1020)
- Fix readonly optimization in diffuseContrib
- Fix handling of float inputs in compositeFields (#1001)
- Fix vec4 coord field input in bandField (#1023)
- Fix errors in waveVectorField and waveWarp related to reverse ramp wave type
- Fix auto coordinate type in bandField
- Fix error in rotate in optimized mode when some parts of params are expressions (#1028)
- Fix error in waveWarp with optimized wave type
- Fix data type erros in addFn
- Fix unused fields in revolve (#1027)
- Fix error in pointMapRender with 2D SDFs
- Remove deprecated ops - mergeToggle, toggleSwitch
- Changes (potentially breaking)
- Stop supporting float field input for rotate (except in axis mode) and translate (#1005)
- Infrastructure / internals
- Initial steps towards 4D coordinates
- Overahaul of variable reference validation, supporting cross-input references and input availability settings. (#770, #12)
- Added per-input settings for which variables are available and which other inputs can provide variables
- Test output snapshotting / diff (#479)
- Updated nearly 100% of tests to reduce resolutions and fix snapshots
- Removed beta status from a bunch of ops
Compatibility
This version of the toolkit is compatible with TouchDesigner 2022.32120.
RayTK library v0.30
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
- stackSdf (#1002)
- 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)
- Editor tools (#772)
- 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)
- 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
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
- 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
RayTK library v0.28
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
- 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
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)
- New OPs
- Fixes
- 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
- Replaced large portions of opDefition and shaderBuilder with more Python-based implementations. (#939)
Compatibility
RayTK v0.27 is compatible with TouchDesigner 2022.28040.
RayTK library v0.26
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
- 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
- OP Snippets (#132, #845)
- 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
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
- New field inputs (#812, #588)
- 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 alinkedLight
. - 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