Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/shaders/node_voronoi_texture.osl
| Context not available. | |||||
| vp += point(xx, yy, zz); | vp += point(xx, yy, zz); | ||||
| if (d < da[0]) { | int insertPt; | ||||
| da[3] = da[2]; | for(insertPt = 4; (insertPt > 0) && (d < da[insertPt - 1]); insertPt--) { | ||||
| da[2] = da[1]; | if (insertPt < 4) { | ||||
| da[1] = da[0]; | da[insertPt] = da[insertPt - 1]; | ||||
| da[0] = d; | pa[insertPt] = pa[insertPt - 1]; | ||||
| } | |||||
| pa[3] = pa[2]; | |||||
| pa[2] = pa[1]; | |||||
| pa[1] = pa[0]; | |||||
| pa[0] = vp; | |||||
| } | } | ||||
| else if (d < da[1]) { | if (insertPt < 4) { | ||||
| da[3] = da[2]; | da[insertPt] = d; | ||||
| da[2] = da[1]; | pa[insertPt] = vp; | ||||
| da[1] = d; | |||||
| pa[3] = pa[2]; | |||||
| pa[2] = pa[1]; | |||||
| pa[1] = vp; | |||||
| } | |||||
| else if (d < da[2]) { | |||||
| da[3] = da[2]; | |||||
| da[2] = d; | |||||
| pa[3] = pa[2]; | |||||
| pa[2] = vp; | |||||
| } | |||||
| else if (d < da[3]) { | |||||
| da[3] = d; | |||||
| pa[3] = vp; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| Context not available. | |||||
| float Scale = 5.0, | float Scale = 5.0, | ||||
| point Vector = P, | point Vector = P, | ||||
| output float Fac = 0.0, | output float Fac = 0.0, | ||||
| output color Color = 0.0) | output color Color = 0.0, | ||||
| output point outVector = (0, 0, 0)) | |||||
LazyDodo: outVector needs to be Offset | |||||
| { | { | ||||
| point p = Vector; | point p = Vector; | ||||
| Context not available. | |||||
| /* compute distance and point coordinate of 4 nearest neighbours */ | /* compute distance and point coordinate of 4 nearest neighbours */ | ||||
| voronoi_m(p * Scale, metric, Exponent, da, pa); | voronoi_m(p * Scale, metric, Exponent, da, pa); | ||||
| /* Default: F1 => Closest point */ | |||||
| int idx = 0; | |||||
| point pOut = p; | |||||
| point vOffset = (0, 0, 0); | |||||
| float dOffset = 0.0; | |||||
| if (feature == "F2") { | |||||
| idx = 1; | |||||
| } | |||||
| else if (feature == "F3") { | |||||
| idx = 2; | |||||
| } | |||||
| else if (feature == "F4") { | |||||
| idx = 3; | |||||
| } | |||||
| else if (feature == "F2F1") { | |||||
| /* F2 - F1 */ | |||||
| idx = 1; | |||||
| pOut = pa[0]; | |||||
| vOffset = pa[0]; | |||||
| dOffset = da[0]; | |||||
| } | |||||
| outVector = pa[idx] - pOut; | |||||
Not Done Inline ActionsOffset LazyDodo: Offset | |||||
| if (coloring == "intensity") { | if (coloring == "intensity") { | ||||
| /* Intensity output */ | /* Intensity output */ | ||||
| if (feature == "F1") { | Fac = fabs(da[idx] - dOffset); | ||||
| Fac = fabs(da[0]); | |||||
| } | |||||
| else if (feature == "F2") { | |||||
| Fac = fabs(da[1]); | |||||
| } | |||||
| else if (feature == "F3") { | |||||
| Fac = fabs(da[2]); | |||||
| } | |||||
| else if (feature == "F4") { | |||||
| Fac = fabs(da[3]); | |||||
| } | |||||
| else if (feature == "F2F1") { | |||||
| Fac = fabs(da[1] - da[0]); | |||||
| } | |||||
| Color = color(Fac); | Color = color(Fac); | ||||
| } | } | ||||
| else { | else { | ||||
| /* Color output */ | /* Color output */ | ||||
| if (feature == "F1") { | Color = pa[idx] - vOffset; | ||||
| Color = pa[0]; | |||||
| } | |||||
| else if (feature == "F2") { | |||||
| Color = pa[1]; | |||||
| } | |||||
| else if (feature == "F3") { | |||||
| Color = pa[2]; | |||||
| } | |||||
| else if (feature == "F4") { | |||||
| Color = pa[3]; | |||||
| } | |||||
| else if (feature == "F2F1") { | |||||
| Color = fabs(pa[1] - pa[0]); | |||||
| } | |||||
| Color = cellnoise_color(Color); | Color = cellnoise_color(Color); | ||||
| Fac = (Color[0] + Color[1] + Color[2]) * (1.0 / 3.0); | Fac = (Color[0] + Color[1] + Color[2]) * (1.0 / 3.0); | ||||
| } | } | ||||
| Context not available. | |||||
outVector needs to be Offset