Skip to content

Releases: t3kt/raytk

RayTK Library v0.40

06 Apr 00:05
Compare
Choose a tag to compare

Highlights

  • New torusGridSdf and moduloToroidal for all your torus-based needs!
  • New terrainNoiseField with fractal brownian motion patterns!
  • Lots of bug fixes and optimizations including a 8% reduction in tox size!

Details

  • Improvements / additions
    • New OPs
      • moduloToroidal - new torus shaped modulo to create rings of rings (#1195)
      • torusGridSdf - torus-shaped grid made from rings
    • New OP features
      • diffuseContrib / specularContrib - runtime bypass (enable/disable)
      • quadSdf - size, thickness field inputs
      • radialClone - variable for current rotation amount (#1176)
      • rangeTransform - uniform scale (#1206)
      • sphereGridSdf - axis parameter (#1178)
      • terrainNoiseField - FBM noise, useful for surface offsetting (#1183)
      • XOR combine mode for all OPs that support SDF combination
    • Editor tools (#1201)
      • New action to merge float fields into a vector field
      • New action to add functionGraphRender
      • New actions for locking/unlocking switcher-based menu parameters
    • Snippets
      • New translate snippet
    • Misc improvements
      • In documentation, show source parameters for parameter-based inputs
      • Fix ranges for parameters in pointLight
      • Clarify confusing input label in worldPosMap (#1207)
  • Fixes
    • Fix incorrect pixel format in renderers related to shaderExecutor
    • Fix incorrect input validation in moduloPolar
    • Fix broken limit box handling in raymarchRender3d (#1202)
    • Fix broken primary value mode in exposeValue (#1205)
    • Fix runtime bypass in combineFields when in optimized mode
    • Fix duplicate parameter errors in rectangleSdf, polarCoordField
    • Fix UV output in render2D
    • Fix broken parameter processing when using separate uniforms mode
    • Fix shadow direction handling in directionalLight (#1210)
    • Fix 3D texture output in pointMapRender
  • Changes (potentially breaking)
    • Remove deprecated fieldMat
    • Remove alpha aexionSdf
    • Deprecate addFields
    • Move lots of ROPs from beta to default status (#1200)
    • Reduce default speed for speedGenerator
    • Make max dist a runtime parameter in raymarchRender3d (#1202)
    • Remove support for inlining parameter aliases in generated shaders
  • Infrastructure / internals
    • Migrate portions of opDefinition into an extension and refactor infrastructure to use it
    • Move param definitions, op elements into RopState
    • Consolidate and strip down parts of opDefinition, inputHandler, multiInputHandler, etc. to reduce per-ROP overhead
    • Support marking inputs as prohibited based on current ROP settings
    • Migrate build process to use TDAsyncIO
    • Remove support for combined snippets tox builds
    • Standardize access to output buffers

Compatibility

This version is compatible with TouchDesigner 2023.11600.

RayTK Library v0.39

25 Feb 01:01
Compare
Choose a tag to compare

Highlights

  • This release is primarily infrastructure and internal improvements, preparing for upcoming features.

Details

  • Improvements / additions
    • New OPs
      • cameraTransform - transform a camera's position and orientation
    • New OP features
      • curlNoiseField - simplified float version (#1184)
      • dogBoneSdf2d - option to specify endpoints and have different end radii
      • skyLightContrib - added rotation parameters, field inputs for color, rotation, direction
    • Editor tools
      • Action to add a modularMat
  • Fixes
    • Fix output channels for stepMap (#1164)
  • Changes (potentially breaking)
    • Remove deprecated blend operator (replaced by switch)
    • Remove deprecated sceneState component
    • Selectively detach depth input in raymarchRender3D
  • Infrastructure / internals
    • Include supported variables / variable sources in generated documentation
    • Include parameter handling modes in generated documentation
    • Shader execution encapsulation, related to engine support (#1158)
    • Consolidate multi-input handling
    • New logo and branding

Compatibility

This version is compatible with TouchDesigner 2023.11510.

RayTK Library v0.38

17 Jan 22:03
Compare
Choose a tag to compare

Highlights

  • New snippet format - separate tox files in a zip instead of one massive tox file with all of them. These will load much faster than the old format.
  • New 2D text SDF!
  • Reduced build tox file size.

Details

  • Improvements / additions
    • New OPs
      • chamferRectangleSdf2d - rectangle with chamfered corners
      • sphereGridSdf - latitude/longitude bars around a sphere
      • textSdf2d - basic 2d text SDF
    • New OP features
      • bandField - center, width, blending field inputs
      • bend - option to only bend one side (#1129)
      • instance - added scale CHOP support (#1151)
      • knife - support using both parameter and field input for offset
      • logPolarRepeat - rho / theta field inputs
      • rescaleFloatField - support applying to vector fields, where it does the same thing to all vector parts
      • stepField - blending field input
      • textureField - texel coordinate mode
    • Editor tools
      • New action to map a float field to a color range
      • New actions to create waveFields
      • New action to assign color to an SDF
    • New snippet structure - separate tox files in a zip instead of one massive tox file with all of them (#132, #1082)
  • Fixes
    • Fix error in Customize Shader Config action (#1147)
    • Fix error in triangleSdf2d when using read-only parameters (#1148)
    • Fix removal of annotations during the build process - reduces build size
    • Fix license check when choosing default resolution for new renderers (#1149)
    • Fix missing buffer selector that was breaking preview in the inspector (#1153)
    • Fix broken plane parameter in ringsSdf (#1154)
  • Changes (potentially breaking)
    • Deprecate the sceneState component
    • variableReference can no longer be manually created. Use the editor tools menu instead.
  • Infrastructure / internals
    • Removed unused dispatch table system
    • Initial infrastructure for MATs
    • Support for passing separate uniform arrays per ROP for parameters (#907)
    • Update to TD 2023.11340
    • Remove annotations in infrastructure components - improves stability in development tools
    • Avoid using custom instances of popMenu when possible for stability
    • Support for hidden ROPs, which can be created but are not shown in the palette

Compatibility

This version is compatible with TouchDesigner 2023.11340.

RayTK Library v0.37

13 Dec 00:21
Compare
Choose a tag to compare

Highlights

  • Compatibility with TD 2023 experimental builds
  • New applyTransform op makes it easier to transform field values, uv coordinates, etc
  • Stability improvements and bug fixes

Details

  • Improvements / additions
    • New OPs
      • applyTransform - to apply a transform filter to field values, uv coordinates, etc (#1019)
      • modifyDistance - use a field to modify the distance values from an SDF (#1139)
      • rectangleRepeat - repeat space in tiles arranged on the sides of a rectangle (#1126)
    • New OP features
      • almostIdentityFn - threshold, base value field inputs (#1124)
      • bandField - reverse parameter
      • cubicPulseFn - phase, width field inputs (#1124)
      • easeFn - exponent field input (#1124)
      • extrude - 2D height / offset field inputs (#1134)
      • flipFn - flip 0..1 modes as well as positive/negative (#1127)
      • gainFn = exponent field input (#1124)
      • parabolaFn - exponent field input (#1124)
      • positionField - pixel uv and pixel coordinate modes
      • prismSdf - rounding (#1130)
    • Editor tools
  • Fixes
    • Fix widget compatibility issues with TD 2023 experimental builds
    • Fix angle handling in magnet (#1138)
    • Fix return type limiting in circularRepeat
  • Changes (potentially breaking)
  • Infrastructure / internals
    • Stop syncing files within clones in devel source
    • Use the new input list parameter instead of dynamically wiring up texture inputs in renderers
    • Move op-specific code out of shared libraries to improve compile speeds

Compatibility

This build is compatible with TouchDesigner 2023.11170 and later.

Snippets

Where are the snippets for this release???

They aren't included in this release due to some problems with the build process. It was a choice between waiting until that issue was fixed or releasing without them. Hopefully the issue will be addressed for the next release.

RayTK Library v0.36

07 Sep 21:00
Compare
Choose a tag to compare

Highlights

  • New SDFs: isoscelesTriangleSdf2d, vesicaSegmentSdf
  • Improvements and customization in modulo and cloning operators
  • New editor actions

Details

  • Improvements / additions
    • New OPs
      • isoscelesTriangleSdf2d - specialized version of triangleSdf2d with more field inputs
      • texture1dField - specialized TOP input for things like color ramps (#1112)
      • variableList - define a sequence of variables for use in upstream operators, similar to provideVariable but designed for more complex scenarios (#1116)
      • vesicaSegmentSdf, vesicaSegmentSdf2d - similar to line segments but with tapering (#1104)
    • New OP features
      • assignAttribute - previous value variable to allow modifying existing attributes (#1046)
      • assignAttribute/getAttribute - got rid of the defineAttribute operator to treat attributes more like variables (#1046)
      • boxSdf - automatically produce an "edge distance" attribute, as a test case for this type of feature (#1113)
      • fisheyeCamera - toggle for look at position
      • gridClone/linearClone/radialClone - blend radius field inputs (#1119)
      • knife - smoothing like in slice (#1108)
      • limitField - smooth clamping
      • modularMat - expose sdf surface as a variable
      • modulo1D, modulo2D, modulo3D - shifted cell index variables that counteract the shift parameter
      • multiLight - automatically disable lights when level is zero
      • pausingWaveFn - field inputs for low and high width
      • petalSdf - field inputs for width and wrap
      • roundedRectangleSdf2d - option to scale rounding based on size (#1107)
    • Editor tools
      • Indent names for param parts in expose param menu
      • New action to create a worldPosMap
      • New action to simplify rotate to axisRotate (when possible)
      • New action to set up positionField input for custom transform on iteratedTransform
      • New action to create attribute references from ops that produce them (#1046)
  • Fixes
    • goochShadingContrib - fix shader error (#1105)
    • lfoGenerator - fix channel names not updating when changed
    • moduloPolar - fix angle conversion when using optimized mode (#1101)
    • moduloPolar - fix variable input validation settings
  • Changes (potentially breaking)
    • boxSdf - remove the "box type" option since the "cheap" mode wasn't useful or beneficial
  • Infrastructure / internals
    • Change to implicit definition of attributes, with declarations in variables tables and references in the references tables. Effectively this treats attributes like a type of variable but without explicit references to a source operator.

Compatibility

This version has been tested with TD 2022.33910.

There are known issues with the latest TD experimental build (2023.10130). See #1120.

RayTK Library v0.35

22 Jun 23:09
Compare
Choose a tag to compare

Highlights

  • Palette usability improvements including placing new operators with the mouse!
  • Holographic materials!
  • Cool S SDF!!!

Details

  • Improvements / additions
    • New OPs
      • archSdf2d
      • coolSSdf2d!
      • hologramContrib - for depth-based hologram materials (#463)
      • knitPattern
    • New OP features
      • axisLight/pointLight - position field input
      • archSdf - field inputs
      • arrange/combine/etc - improve handling of offsets for stair/column combine modes when offset is not driven by a field (#692)
      • adjustColor - support use on Sdf surface color
      • colorRampField - endpoint mode and easing function (#1094)
      • crossSdf - limited length option (#1091)
      • helixSdf - spread input (#1088)
      • polygonSdf2d - option arbitrary number of sides (#1083)
      • rampField - easing functions
      • spiralZoom - variables
      • stepField - easing functions
      • vectorToFloat - sum modes
    • Editor tools
      • simplify rescaleField when possible (#1086)
      • swap chain order
      • indent parameter part names in animate menus
    • Use placeOPs in the palette! (#22, #23)
    • Documentation for various ops
  • Fixes
    • Fix input variable settings and reorder inputs to match availability in many operators
    • Fix rectangleSdf handling of float input for scale (#1085)
    • Fix accidental required input in rampField
    • Fix errors for optimization on parameters on many operators (#993)
  • Changes (potentially breaking)
  • Infrastructure / internals
    • Infrastructure to support arbitrary suface attributes (#1046)

Compatibility

This version of RayTK is compatible with TouchDesigner 2022.32660.

It does not require a commercial TouchDesigner license.

RayTK Library v0.34

04 Jun 16:55
Compare
Choose a tag to compare

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
  • 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

07 May 18:13
554198c
Compare
Choose a tag to compare

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
      • ambientLight
      • instanceField (#774)
      • limitArea (#1056)
      • moduloLine (#1054)
      • nearestRingPointField (#1055)
      • radialSlice
      • rampField
      • ringLight (#1064)
      • subsurfaceContrib (#945)
    • 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
      • Reorganized operator categories (#1066)
      • UI style improvements
      • Indicate which operators are new/updated (#1068)
    • 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

04 Apr 18:03
Compare
Choose a tag to compare

Highlights

  • New SDFs: pistonSdf, pistonSdf2d, lineSeriesSdf, springSdf
  • New noise and color fields.
  • Enhancements to KIFS fractals with iteratedTransform.

Details

  • Improvements / additions
    • New OPs
      • axisRotate (#1047)
      • blackbodyColorField
      • blobRingPattern
      • hashField (#1041)
      • linearClone (#316)
      • pistonSdf2d, pistonSdf (#1042)
      • lineSeriesSdf (#967)
      • rimContrib (#353)
      • sampleAlongLine (#1035)
      • spectralColorField
      • springSdf (#1044)
      • worleyNoiseField (#400)
    • 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

15 Mar 00:25
Compare
Choose a tag to compare

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
      • branchingTreeSdf2d (#1015)
      • extrudeLine which extrudes a cross-section between two points (#1014)
      • lookAtRotate (#1024)
      • polySplineSdf2d (#747)
      • subdivisionSdf2d (#885)
    • 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
  • 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.