Blender  V2.93
node_hash.h
Go to the documentation of this file.
1 #include "stdcycles.h"
2 #include "vector2.h"
3 #include "vector4.h"
4 
5 #define vector3 point
6 
7 /* **** Hash a float or vector[234] into a float [0, 1] **** */
8 
9 float hash_float_to_float(float k)
10 {
11  return hashnoise(k);
12 }
13 
14 float hash_vector2_to_float(vector2 k)
15 {
16  return hashnoise(k.x, k.y);
17 }
18 
20 {
21  return hashnoise(k);
22 }
23 
24 float hash_vector4_to_float(vector4 k)
25 {
26  return hashnoise(vector3(k.x, k.y, k.z), k.w);
27 }
28 
29 /* **** Hash a vector[234] into a vector[234] [0, 1] **** */
30 
31 vector2 hash_vector2_to_vector2(vector2 k)
32 {
33  return vector2(hash_vector2_to_float(k), hash_vector3_to_float(vector3(k.x, k.y, 1.0)));
34 }
35 
37 {
39  hash_vector4_to_float(vector4(k[0], k[1], k[2], 1.0)),
40  hash_vector4_to_float(vector4(k[0], k[1], k[2], 2.0)));
41 }
42 
43 vector4 hash_vector4_to_vector4(vector4 k)
44 {
45  return vector4(hash_vector4_to_float(k),
46  hash_vector4_to_float(vector4(k.w, k.x, k.y, k.z)),
47  hash_vector4_to_float(vector4(k.z, k.w, k.x, k.y)),
48  hash_vector4_to_float(vector4(k.y, k.z, k.w, k.x)));
49 }
50 
51 /* **** Hash a float or a vec[234] into a color [0, 1] **** */
52 
53 color hash_float_to_color(float k)
54 {
55  return color(hash_float_to_float(k),
56  hash_vector2_to_float(vector2(k, 1.0)),
57  hash_vector2_to_float(vector2(k, 2.0)));
58 }
59 
60 color hash_vector2_to_color(vector2 k)
61 {
62  return color(hash_vector2_to_float(k),
63  hash_vector3_to_float(vector3(k.x, k.y, 1.0)),
64  hash_vector3_to_float(vector3(k.x, k.y, 2.0)));
65 }
66 
68 {
69  return color(hash_vector3_to_float(k),
70  hash_vector4_to_float(vector4(k[0], k[1], k[2], 1.0)),
71  hash_vector4_to_float(vector4(k[0], k[1], k[2], 2.0)));
72 }
73 
74 color hash_vector4_to_color(vector4 k)
75 {
76  return color(hash_vector4_to_float(k),
77  hash_vector4_to_float(vector4(k.z, k.x, k.w, k.y)),
78  hash_vector4_to_float(vector4(k.w, k.z, k.y, k.x)));
79 }
80 
81 #undef vector3
color hash_vector3_to_color(vector3 k)
Definition: node_hash.h:67
float hash_vector4_to_float(vector4 k)
Definition: node_hash.h:24
float hash_vector3_to_float(vector3 k)
Definition: node_hash.h:19
color hash_float_to_color(float k)
Definition: node_hash.h:53
color hash_vector4_to_color(vector4 k)
Definition: node_hash.h:74
float hash_vector2_to_float(vector2 k)
Definition: node_hash.h:14
color hash_vector2_to_color(vector2 k)
Definition: node_hash.h:60
#define vector3
Definition: node_hash.h:5
vector2 hash_vector2_to_vector2(vector2 k)
Definition: node_hash.h:31
vector4 hash_vector4_to_vector4(vector4 k)
Definition: node_hash.h:43
float hash_float_to_float(float k)
Definition: node_hash.h:9
vector3 hash_vector3_to_vector3(vector3 k)
Definition: node_hash.h:36