user: Explain DistortedNoiseTexture(Texture) in complete detail according to the official Blender documentation.

assistant: # DistortedNoiseTexture(Texture)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID"), [`Texture`](bpy.types.Texture.html#bpy.types.Texture "bpy.types.Texture")

*class* bpy.types.DistortedNoiseTexture(*Texture*)
:   Procedural distorted noise texture

    distortion
    :   Amount of distortion

        Type:
        :   float in [0, 10], default 1.0

    nabla
    :   Size of derivative offset used for calculating normal

        Type:
        :   float in [0.001, 0.1], default 0.025

    noise_basis
    :   Noise basis used for turbulence

        - `BLENDER_ORIGINAL`
          Blender Original – Noise algorithm - Blender original: Smooth interpolated noise.
        - `ORIGINAL_PERLIN`
          Original Perlin – Noise algorithm - Original Perlin: Smooth interpolated noise.
        - `IMPROVED_PERLIN`
          Improved Perlin – Noise algorithm - Improved Perlin: Smooth interpolated noise.
        - `VORONOI_F1`
          Voronoi F1 – Noise algorithm - Voronoi F1: Returns distance to the closest feature point.
        - `VORONOI_F2`
          Voronoi F2 – Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point.
        - `VORONOI_F3`
          Voronoi F3 – Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point.
        - `VORONOI_F4`
          Voronoi F4 – Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point.
        - `VORONOI_F2_F1`
          Voronoi F2-F1 – Noise algorithm - Voronoi F1-F2.
        - `VORONOI_CRACKLE`
          Voronoi Crackle – Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges.
        - `CELL_NOISE`
          Cell Noise – Noise algorithm - Cell Noise: Square cell tessellation.

        Type:
        :   enum in [`'BLENDER_ORIGINAL'`, `'ORIGINAL_PERLIN'`, `'IMPROVED_PERLIN'`, `'VORONOI_F1'`, `'VORONOI_F2'`, `'VORONOI_F3'`, `'VORONOI_F4'`, `'VORONOI_F2_F1'`, `'VORONOI_CRACKLE'`, `'CELL_NOISE'`], default `'BLENDER_ORIGINAL'`

    noise_distortion
    :   Noise basis for the distortion

        - `BLENDER_ORIGINAL`
          Blender Original – Noise algorithm - Blender original: Smooth interpolated noise.
        - `ORIGINAL_PERLIN`
          Original Perlin – Noise algorithm - Original Perlin: Smooth interpolated noise.
        - `IMPROVED_PERLIN`
          Improved Perlin – Noise algorithm - Improved Perlin: Smooth interpolated noise.
        - `VORONOI_F1`
          Voronoi F1 – Noise algorithm - Voronoi F1: Returns distance to the closest feature point.
        - `VORONOI_F2`
          Voronoi F2 – Noise algorithm - Voronoi F2: Returns distance to the 2nd closest feature point.
        - `VORONOI_F3`
          Voronoi F3 – Noise algorithm - Voronoi F3: Returns distance to the 3rd closest feature point.
        - `VORONOI_F4`
          Voronoi F4 – Noise algorithm - Voronoi F4: Returns distance to the 4th closest feature point.
        - `VORONOI_F2_F1`
          Voronoi F2-F1 – Noise algorithm - Voronoi F1-F2.
        - `VORONOI_CRACKLE`
          Voronoi Crackle – Noise algorithm - Voronoi Crackle: Voronoi tessellation with sharp edges.
        - `CELL_NOISE`
          Cell Noise – Noise algorithm - Cell Noise: Square cell tessellation.

        Type:
        :   enum in [`'BLENDER_ORIGINAL'`, `'ORIGINAL_PERLIN'`, `'IMPROVED_PERLIN'`, `'VORONOI_F1'`, `'VORONOI_F2'`, `'VORONOI_F3'`, `'VORONOI_F4'`, `'VORONOI_F2_F1'`, `'VORONOI_CRACKLE'`, `'CELL_NOISE'`], default `'BLENDER_ORIGINAL'`

    noise_scale
    :   Scaling for noise input

        Type:
        :   float in [0.0001, inf], default 0.25

    users_material
    :   Materials that use this texture

        Type:
        :   tuple of [`Material`](bpy.types.Material.html#bpy.types.Material "bpy.types.Material")

        (readonly)

    users_object_modifier
    :   Object modifiers that use this texture

        Type:
        :   tuple of [`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

        (readonly)

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type