aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bluebey-studio/src/hats.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bluebey-studio/src/hats.js')
-rw-r--r--public/bluebey-studio/src/hats.js20
1 files changed, 13 insertions, 7 deletions
diff --git a/public/bluebey-studio/src/hats.js b/public/bluebey-studio/src/hats.js
index c639548..3fb65f3 100644
--- a/public/bluebey-studio/src/hats.js
+++ b/public/bluebey-studio/src/hats.js
@@ -60,19 +60,25 @@ function buildCap() {
return group;
}
-/** コック帽: a tall white band under a puffy crown. */
+/** コック帽: a tall pleated toque - a cylindrical band under a big puffy crown. */
function buildChef() {
const group = new THREE.Group();
const white = material('#f7f6f2');
const shade = material('#e6e3da');
- add(group, cylinder(0.94, 0.98, 0.62, 28), white, 0, 0.31, 0);
- const puff = add(group, sphere(1.22, 24, 18), white, 0, 0.86, 0);
+ // The band: a tall cylinder that sits on the head.
+ add(group, cylinder(0.86, 0.92, 0.95, 28), white, 0, 0.475, 0);
+ add(group, cylinder(0.90, 0.90, 0.10, 28), shade, 0, 0.90, 0);
+ // The crown: a big squashed sphere ringed with lobes, so the top reads as the
+ // classic pleated toque rather than a plain dome.
+ const puff = add(group, sphere(1.24, 26, 20), white, 0, 1.30, 0);
puff.scale.set(1, 0.82, 1);
- for (let i = 0; i < 6; i += 1) {
- const a = (i / 6) * Math.PI * 2;
- const lobe = add(group, sphere(0.44, 14, 12), shade, Math.cos(a) * 0.86, 1.22, Math.sin(a) * 0.86);
- lobe.scale.set(1, 0.85, 1);
+ for (let i = 0; i < 8; i += 1) {
+ const a = (i / 8) * Math.PI * 2;
+ const lobe = add(group, sphere(0.5, 14, 12), white, Math.cos(a) * 0.92, 1.52, Math.sin(a) * 0.92);
+ lobe.scale.set(1, 0.9, 1);
}
+ const top = add(group, sphere(0.62, 16, 12), white, 0, 1.92, 0);
+ top.scale.set(1, 0.78, 1);
return group;
}