AcademySoftwareFoundation / AcademySoftwareFoundation/MaterialX

Noise nodes should support periodic pattern repetition

Open
#1,201 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.3k
Forks
451
Avg merge
6d 6h
Merged PRs (30d)
5

Description

This request has already been integrated into the[ v1.39 specification](https://docs.google.com/document/d/1ZKsLgbHDoh_YxGWX2Cepc5_3k2wiusOcdSD-K6JiigA/edit?disco=AAAAlKrn7Qw), but I'm attaching the implementation of the GLSL shader for reference:
[mx_noise.glsl.txt](https://github.com/AcademySoftwareFoundation/MaterialX/files/10467626/mx_noise.glsl.txt)

> This is a request for `noise`, `cellnoise`, `worleynoise`, and `fractalnoise` for both 2d and 3d versions to gain a new parameter, 'period', of `vector2` or `vector3` type. The values are integers but MaterialX does not have `integer2` nor `integer3` types.
>
> Each component of period should have range of [0, INF), 0 being the default value. When period is 0 for every component, we get results that are exactly the same as before.
>
> There is a small issue with fractal3d though: the result will be tileable only if lacunarity is an integer value (it's a float parameter).
>
> And to clarify, the `period` parameter is the integer distance at which the noise function returns the same value for points or texture coordinates repeated at that step.

Contributor guide

Open the contributing guide

Research direction

Read the v1.39 specification and the attached mx_noise.glsl.txt implementation first. Review the 2D and 3D noise, cellnoise, worleynoise, and fractalnoise entry points, then verify that period repeats results at the requested distance while a zero period preserves existing behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.