https://github.com/mysterypancake/blender-fun
Blender projects and node experiments
https://github.com/mysterypancake/blender-fun
blender blender-3d node nodevember
Last synced: 29 days ago
JSON representation
Blender projects and node experiments
- Host: GitHub
- URL: https://github.com/mysterypancake/blender-fun
- Owner: MysteryPancake
- License: mit
- Created: 2021-12-08T01:33:06.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-24T04:55:21.000Z (over 3 years ago)
- Last Synced: 2025-05-13T00:39:42.595Z (5 months ago)
- Topics: blender, blender-3d, node, nodevember
- Homepage:
- Size: 37.6 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Blender Fun
Blender projects and node experiments.## [Caustics (old)](caustics.blend)
[Inspired by Evan Wallace](https://medium.com/@evanwallace/rendering-realtime-caustics-in-webgl-2a99a29a0b2c), I made caustics by distorting a mesh based on refraction.**This is the old version (using a physical light surface). It doesn't stick to walls, and isn't very useful.**
[
](caustics.blend)
Firstly it uses a `Raycast` node to find where the light surface collides with the water surface ([thanks Erindale!](https://www.youtube.com/watch?v=ZCCQXoJoIK4))
The animation shows how `Raycast` moves depending on the ray length. It travels along the normal vector.Next it uses `Refract` from `Vector Math`:
> For a given incident vector A, surface normal B and ratio of indices of refraction (IOR), Refract outputs the refraction vector R.
- The incident vector is the direction light is going. Here it's the normal vector of the light surface.
- The surface normal is the vector pointing up from the water. Here it's the `Hit Normal` returned by `Raycast`.
- The IOR ratio depends which two materials light travels through. Here it's `IOR of air / IOR of water`.Because different materials have different IOR values, I added a custom IOR attribute to the water.
When `Raycast` collides with the water surface, it reads the water's custom IOR attribute when performing the division above.
## [Mirror](mirror.blend)
Another example of using `Raycast` to distort a mesh.
[
](mirror.blend)
Requires `Capture Attribute` due to [reasons described by Garek](https://developer.blender.org/T94218).
## [Explosion](explosion.blend)
Blender version of an effect originally made in Houdini.
Uses `Split Edges` to separate each face, then travels along the normal to move each face outwards.[
](explosion.blend)
## [Forest](forest.blend)
**WARNING:** This is slow because `Realise Instances` was needed to apply the materials correctly.
Requires Blender 3.1 or above due to `Vertex Neighbours` controlling the leaves shader.[
](forest.blend)