Grafikprogrammierung
Prozedurale Texturen und Rauschen
Thorsten Thormählen
26. Januar 2026
Teil 11, Kapitel 2
Thorsten Thormählen
26. Januar 2026
Teil 11, Kapitel 2
Dies ist die Druck-Ansicht.
Weiterschalten der Folien durch die → Taste oder
durch das Klicken auf den rechten Folienrand.
Das Weiterschalten der Folien kann ebenfalls durch das Klicken auf den rechten bzw. linken Folienrand erfolgen.
| Typ | Schriftart | Beispiele |
|---|---|---|
| Variablen (Skalare) | kursiv | $a, b, x, y$ |
| Funktionen | aufrecht | $\mathrm{f}, \mathrm{g}(x), \mathrm{max}(x)$ |
| Vektoren | fett, Elemente zeilenweise | $\mathbf{a}, \mathbf{b}= \begin{pmatrix}x\\y\end{pmatrix} = (x, y)^\top,$ $\mathbf{B}=(x, y, z)^\top$ |
| Matrizen | Schreibmaschine | $\mathtt{A}, \mathtt{B}= \begin{bmatrix}a & b\\c & d\end{bmatrix}$ |
| Mengen | kalligrafisch | $\mathcal{A}, B=\{a, b\}, b \in \mathcal{B}$ |
| Zahlenbereiche, Koordinatenräume | doppelt gestrichen | $\mathbb{N}, \mathbb{Z}, \mathbb{R}^2, \mathbb{R}^3$ |
float fill(float sdf) {
return step(0.0, -sdf);
}float stroke(float sdf, float strokeWidth) {
return fill(abs(sdf) - strokeWidth);
}
float unionSDF(float sdf0, float sdf1) {
return min(sdf0, sdf1);
}float differenceSDF(float sdf0, float sdf1) {
return max(sdf0, -sdf1);
}float intersectionSDF(float sdf0, float sdf1) {
return max(sdf0, sdf1);
}
float fill(float sdf) {
return clamp(0.5 - sdf / fwidth(sdf), 0.0, 1.0);
}float stroke(float sdf, float strokeWidth) {
return fill(abs(sdf) - strokeWidth);
}
vec3 random_pcg3d(uvec3 v) {
v = v * 1664525u + 1013904223u;
v.x += v.y*v.z; v.y += v.z*v.x; v.z += v.x*v.y;
v ^= v >> 16u;
v.x += v.y*v.z; v.y += v.z*v.x; v.z += v.x*v.y;
return vec3(v) * (1.0/float(0xffffffffu));
}
uvec3 werden durch Multiplikation mit großen Primzahlen durcheinander "gewürfelt"
$\mathrm{f}(x) = 3 x^2 - 2 x^3 = x^2 (3 - 2 x)$
smoothstep(0.0, 1.0, x)
$\mathrm{f}(x) = 6 x^5 - 15 x^4 + 10 x^3 = x^3\,(x\,(6x-15)+10)$
smoothstep smootherstep
Anregungen oder Verbesserungsvorschläge können auch gerne per E-mail an mich gesendet werden: Kontakt