Jitter - 图1

    1. // Index based Randomizer
    2. // Original idea by Zap Andersson, modified by Saul Espinosa for Redshift 3d
    3. // This file is licensed under Apache 2.0 license
    4. shader rsJitter
    5. [[ string help = "Randomizes Color, Float, Vector inputs using UserData",
    6. string label = "Jitter" ]]
    7. (
    8. int Idx = 0,
    9. /// Color Values
    10. int ColorSeed = 1
    11. [[
    12. int min = 0,
    13. int max = 100
    14. ]],
    15. color ColorMin = 0.0,
    16. color ColorMax = 1.0,
    17. /// Float Values
    18. int FloatSeed = 1
    19. [[
    20. int min = 0,
    21. int max = 100
    22. ]],
    23. float FloatMin = 0.0
    24. [[
    25. float min = 0,
    26. float max = 1
    27. ]],
    28. float FloatMax = 1.0
    29. [[
    30. float min = 0,
    31. float max = 1
    32. ]],
    33. /// Vector Values
    34. int VectorSeed = 1
    35. [[
    36. int min = 0,
    37. int max = 100
    38. ]],
    39. vector VectorMin = 0.0
    40. [[
    41. vector min = 0,
    42. vector max = 100
    43. ]],
    44. vector VectorMax = 1.0
    45. [[
    46. vector min = 0,
    47. vector max = 100
    48. ]],
    49. /// Define Outputs
    50. output color ColorOut = 0.0,
    51. output float FloatOut = 0.0,
    52. output vector VectorOut = 0.0,
    53. )
    54. {
    55. // Output Values
    56. float ratio1 = noise("cell", vector(abs(Idx), abs(ColorSeed), 10));
    57. float ratio2 = noise("cell", vector(abs(Idx), abs(FloatSeed), 10));
    58. float ratio3 = noise("cell", vector(abs(Idx), abs(VectorSeed), 10));
    59. ColorOut = mix(ColorMin, ColorMax, ratio1);
    60. FloatOut = mix(FloatMin, FloatMax, ratio2);
    61. VectorOut = mix(VectorMin, VectorMax, ratio3);
    62. }