Skip to content

Cellular distance noise computation is independent from cell distances #260

Description

@AndreasHempel

The function single_cellular is used to compute 'cellular' noise for CellularReturnType::CellValue and CellularReturnType::Distance. However, most of the code in the function is essentially dead - the return value is currently only determined by the input coordinates and the RNG seed (code copied from https://github.com/amethyst/bracket-lib/blob/master/bracket-noise/src/fastnoise.rs#L3857-L3862):

        match self.cellular_return_type {
            CellularReturnType::CellValue => {
                self.val_coord_2d(self.seed as i32, x as i32, y as i32)
            }
            _ => 0.0,
        }

Intuitively, I expect that when writing distance to a new 'minimal' value, also the corresponding coordinates xi and yi should be remembered and passed to val_coord_2d. Something entirely different from return 0.0 is likely necessary for other values of CellularReturnType. Looking at the original source in https://github.com/Auburn/FastNoiseLite/blob/master/C/FastNoiseLite.h#L1402 seems to confirm this.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions