diff options
Diffstat (limited to 'public/bluebey-studio/src/hats.js')
| -rw-r--r-- | public/bluebey-studio/src/hats.js | 20 |
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; } |
