B3dsdf Versions Save

🛠️ A toolkit of 2D/3D distance functions, sdf/vector ops and various utility shader nodegroups (160+) for Blender 2.83+. Also available as an addon which adds a menu in the shader editor.

v0.10.0

5 months ago

Adding 4 new nodes in this release:

release_pv

opXor example:

opxor_eg


Full Changelog: https://github.com/williamchange/b3dsdf/compare/v0.9.2...v0.10.0

2D SDFs

  • sdVesicaSegment 02af68e5a6732118ecfec4aa1e8aaf6a20f7ee85
  • sdDogBone 0f1bb317ae1791f34ba63a29cfb2dfe2a9a8f32d
  • sdRing 47142759c1c76bd5c448e407967a2a55b731677a

SDF Operators

  • opXor 1a45cdd6913998cc033a83dc255a498edfe5cc06

v0.9.2

1 year ago

Took too long for this one(some nodes added back in 2022) but I guess this should be the last update in a while...


This release adds 3 2d sdf nodes.

Full change-log can be found here: https://github.com/williamchange/b3dsdf/compare/v0.9.1...v0.9.2

sdnodes

sdfpreview

2D SDFs

  • sdOneOverX 39f80f7ced95f9aff618a6ecc055070f2e2a66d4
  • sdHyperbolicCross 267953606e515ee5397a5fdb2a17e2a2ed571a18
  • sdCircleWave ee283d38ee2c8613e5c38fc62ef0f6fc742b2706

v0.9.1

1 year ago

Full change-log can be found here: https://github.com/williamchange/b3dsdf/compare/v0.9.0...v0.9.1

This is a minor update which fixes the disappearing menu (#3) across add-on enable/disable and when loading templates.

Thanks @Quackarooni for the PR!

v0.9.0

1 year ago

This release adds 21 new nodes(currently at 157 nodes in the pack), including 8 new 2D L-inf SDFs.

Full changelog can be found here: https://github.com/williamchange/b3dsdf/compare/v0.8.0...v0.9.0

0 9 0_demo

0 9 0_preview

Fix ops for Z axis (usage with 3D sdfs)

  • opRepeatFinite 92c3cd583e401a5a5583600f8bb0188a6143d4d5
  • opRepeatInfiniteMirror 5c98c59466824a033215783f1d8045f6e6dcdbf2

2D SDFs

  • sdNGon b2ff8c0187be2312b2e96e2881132a5bc9d9bfdc

L-inf 2D SDFs

  • sdBoxLN e6871f9a53f7ac1e080274fa678986cbd37900c9
  • sdCircleLN 13578f56bb2f004edd213d81f18ef91bcdd1015c
  • sdEllipseLN f1540c8358f8222c14c176ec7be1200a79f3608b
  • sdParabolaLN bc5ff49c37c0cf9e5dacd161c0c7e211040ba480
  • sdParabolaSegmentLN c3cdc7be50135f3415344034fa2689397422f296
  • sdLineLN 1e58a90a17e0779f8447022975ed28d8e6289a68
  • sdRoundBoxLN c1c8e6b728a52a85970b097ab428af3fda6f1507
  • sdRhombusLN ab4943d973ec9982d9b14ca9c6b27ad604fea079

3D SDFs

  • sdRoundedCylinder d4a9ae11a1438c82b91c72327652e8f37bd08053
  • sdTriPrismBound 60f4b559f6e7e2298b9100008dac252e217fca0f
  • sdHexPrism fbf331d5b8f65421406ac5ee4bcbca54a824e411
  • sdRhombus3D 03f30522b5625b30583a60ed03f37dd6dfbc5fc6
  • sdVerticalRoundCone 0f08de6f689577a971f60e79b36ef16036c3331f
  • sdVerticalCappedCone cbfaa6bed85a9563df29a6c5b4c526e331ccc1b8
  • sdDeathStar bc1dd3eb7fbda7323fd32fc4290f0cdaffb7a410
  • sdCappedCone(same as sdTrapezoid) d658e47ea32022582af4266adc16f515aa467bf1
  • sdRoundCone 365a7f4a604ba7a87dce705465c75fd4c892ade3
  • sdTriPrism 3d9bd70fb3c5eaebc8da7add34d2e29d0a9ee144
  • sdCone (vertical cone) 3d3a743feeff2ecd6a7c3192c8349cb4d07a5c4e

Vector Ops

  • opElongate 0a86181648f99be4bbd7ff60104bae35a2403eff

v0.8.0

1 year ago

At this point all existing 2D sdfs from Inigo Quilez should already be adapted (including the one I missed from previous additions - oriented box). This update adds 5 new 2d SDFs, 4 new 3D SDFs and the hexagon grid(new tiling category).

Since the Volume Cube node has been added (see README.md for more details) it is now possible to use most of the nodes included in this pack in geometry nodes. There's no plans to port the nodes but a converter can be used. However it does motivate me a little in adapting new nodes a bit faster :D

While that there's not a lot of 3D SDFs in this pack it is still possible to utilize 2D ones by generating 3D SDFs from them via vector operators such as extrude / spin (vector operators). See this shadertoy or IQ's site (Revolution and extrusion from 2D) for more details how they work.

The Wiki is still largely a work in progress but most of the following should already have image examples (mostly 2D ones).

Full changelog https://github.com/williamchange/b3dsdf/compare/v0.7.0...v0.8.0

image

New Nodes

  • sdQuadraticCircle ea2ecca73d27bd9db38948e252c20daf004271a0
  • sdQuadraticCircleCheap 811f42cc39fcbd0db9f30d228fbed9f2962efe71
  • sdSquircle / sdSquircleCheap e1427f5754c202e1e4b430a26fb00f10d3e70ceb
  • sdBoxOriented 2c8d027762d1732ff40bd21b4610ba5f95d49db1
  • opHexagonGrid dfd3668af9aa6c6a3de109ab8d667a00b252cec2
  • sdInfiniteCylinder f43cc46389dd9af540c59d041936eed268a12b39
  • sdPlane 59de2f6fce74981da8a39397dfaccc0f73215317
  • sdInfiniteCone 032f030f2d4fb4af59dbdb0c3ee1eff285b35e53
  • sdTriangle3D a9b279860fa598369dac515ec35599a64f5f694b

v0.7.0

2 years ago

Now 125+ nodes! This release mostly focuses on adding 3D sdf's :dango: For how to raymarch 3D sdfs checkout Learning Resources in the readme.

Full changelog https://github.com/williamchange/b3dsdf/compare/v0.6.0...v0.7.0

3dsdf image

Patterns

  • New Patterns category e73f11e5466f0faba0b960dcc08ac54cc63b8dea
  • sdRunes 43f6a240c33b72529829cd329f9e95ec7b21113b
  • sdTruchet 6cdedd48b158dbe99eb27c39c88fd2aeb6ff160c

3D SDFs

  • New 3D Primitives category 14d6e64afc2188256bb62732fa1b3480054d3605
  • sdSphere, sdBox3D 40265919853988264e7c49e03d3d7ca72781cf4d
  • sdTorus d7120d6103f6481fed2a6ceeec9ea511c20f0f0d
  • sdLink 02bbc1ea44dcb2f9139313a9d52e2a24abe03076
  • sdBezier (add to 3D menu) a00fbe0fc64cc13cd69ea711d28bfdbb46ee2daf
  • sdSegment (add to 3D menu) cbc63e3fe9f20bdecb7174d169b6c1bc21d322f4
  • sdBoxFrame 1744c18ad4cb73d8f5620db485965f624b09548b
  • sdVerticalSegment f4b32a4aca8f0e933126236f4efe83f3f177b9e2
  • sdVerticalCylinder c9c33457da7fd04f6824334ede9aeca088f1c8b4
  • sdCappedTorus 3be2731610740286645202cc32801e9b263ba277
  • sdEllipsoid 13accb1c9636286551d7f3ccb85adac6c6d2cc7d
  • sdSolidAngle fc4c2b695b7dbeec0d3c5b1945123d03fd8ca7b6
  • sdCutHollowSphere 587a1f940efae22a1e7a936f1ba32b69bc5a3bfd
  • sdCutSphere 25a3b7525aee452894f409ab9aa283c94134808d
  • sdOctahedron 11c1f149dce004bbbc659705695403ce54cea3fc

Vector Operators

  • opSwizzle 5aaa9b0b3eddc566b6d76864b399d7107500eefc
  • opSpin efd8df6c42e318bd524c1bf2d6c060bd916cdda5
  • opExtrude 468095e32782550b0ba8b45075915bb14a75f927
  • opRadialShear 4d27569f182a826bbe8de57bd7f76e909d0a6931
  • opTwist c4e3d9923ef3a9222823073e5c7d5e13b7d5b8dd

v0.6.0

2 years ago

Full changelog: https://github.com/williamchange/b3dsdf/compare/v0.5.0...v0.6.0

Now 106 nodes! This mostly adapts the remaining 2D sdfs from iq and some domain/vector operators from hg_sdf and D6464. Original sources of the nodes(glsl) can be found in the commit messages(shadertoy links) or in the reference list via README.md.

New nodes

  • sdRoundSquare 3425eddaa3f0eb45de551b0a0ad1e87443d1275f
  • sdSpiral ec2ccdaa9efb81b7e343fb8f6b91f9b832834622 (Inexact distance)
  • sdSpiralArcs 36b955a7fc72e13de85c015a3461738da5d3a15d (Exact distance, up to 12 arcs)
  • sdSpiralARound Archimedean spiral 2f7f22034b83e02abd1473dec0f3be3e9aafeee0
  • sdSpiralASquare Archimedean spiral 2f7f22034b83e02abd1473dec0f3be3e9aafeee0
  • sdSpiralAUV Archimedean spiral with UVs 55cf4eedc965646d5d4a3616cb9e9e32f3d187ab
  • sdSineN distance to sine wave with the newton solver 549ba434dcf35d041964125e6bf54278f6356aa9
  • opRepeat Infinite Mirror 1D (pMod1Mirror, adapted from hg_sdf) 669bb87cd236e808f113dd099ac6153935235f57
  • opMirror 1D (pMirror, adapted from hg_sdf) 57fb97f3f4be4191ee7db295bc0c81b42bbe28cd
  • opSwirl (adapted from D6464) Swirl around XY b566f842e3b124b398ce35bcb7e78154e0b2aec8
image

v0.5.0

2 years ago

Now 96 nodes! The SDFs included in the pack should already have everything from IQ's 2D SDF playlist.

Full changelog https://github.com/williamchange/b3dsdf/compare/v0.4.0...v0.5.0

SDFs

SDF Operators

  • Add opBlend blends between SDF values (uses lerp) f92098b65cb7fd390f430469ac7d4ccbad20b9fd
  • Add opInvert (same as 0-distance from a distance field) f738fbdfb3d916e1e58e62d54a75163b549584e7
  • Add opFlatten from D6464 (Clamp range and map to [0-1] range) df0506a4bf3cd7bfa87d71e01b16a6aa3b42e694

Vector Operators

  • Add opBend from D6464 (adapted from sdf_op_bend) 208cead0714643afa9b57effa38cfa6f74cb4c1f

Untitled

v0.4.0

2 years ago

Full changelog: https://github.com/williamchange/b3dsdf/compare/v0.3.0...v0.4.0

Notable changes

  • Add Chamfer/Stairs/Columns sdf operators 2ae9112dbbda28402a7b9e07acdcc36aa32f6a2e ad1e6d44bb01b759487b7d01283e9600bedb9276 ba74c2d90df8d8929ccfc0c30dfcae148d5ee32d
  • Add sdCorner 18444c6e6c2ae2136fab9d2781c0aade9c537222
  • Add opRepeatInfinite1D (pMod1) 8ba931009c41aea69c70eea41983c55deeebe4ce
  • Add opRepeatInfiniteMirror(pModMirror2) c269737bdaafe6493971954f58618d2cab178fad
  • Add opRepeatFinite1D (pModInterval1) 417f9aa452bf167708a90863a6ad8641523ddabc
  • Add opMirrorOctant 046013a015c78ca44296d33e63bc04dfb92060d7
  • Add opMask 743e2efb94913ba9d7b9432e365acfda9808c7f3
  • Re-adapt sdBezier (14 nodes less) b082b663724d37055a761e04d4e795d40cc7c78d
  • Rename opRound > opDilate (follows D6464) dc4ea28826a16abf3111170e43b0daae0b94edd3
  • Menu tooltips 823ef9d158b7b25112973eff3082220966242bff

image

v0.3.0

2 years ago

Now 70+ nodes! (71 nodes as of this writing) This release adds 5 new nodes and some cosmetic changes (separators in menu/socket naming)

Full changelog: https://github.com/williamchange/b3dsdf/compare/v0.2.0...v0.3.0

Notable changes

  • Add sdUnevenCapsule (Based on two points, previous one is now sdUnevenCapsuleY) 1904ab6e5d95ce7f62ea5ffbbf4213d411efab29
  • Add opExclusionXOR (Union with intersection removed) e5aa3bf9bf9a3495a9ad6b323590f348f599cde0
  • Add opDivide (Union with gap between SDFs) ec58968d7c6cd58738ce516ddd6326519129e751
  • Add opHermitePulse (Hermite pulse between min and max SDF values) 8981dc48c29083e18bd646cd7245cf8b40c40e96
  • Add opPipe (Produces a cylindrical pipe that runs along the intersection) 7397aa5df6b9aae14028f4a46f284b6fcfbe4efb
  • Add separators in the category menu via json (denoted by _ after the category name in keys) 856f25214a0f9a5425bc7c00e73daf086945c609

image