Document WebGL page texture pipeline
This commit is contained in:
@@ -39,14 +39,17 @@ This section records the current state after the procedural book integration wor
|
||||
- The spine arc and cloth spine must not receive page-content textures.
|
||||
- Page-content textures are high-resolution canvas textures with hardcover-style margins.
|
||||
- The current page canvases are deliberately smoother than the old noisy page texture.
|
||||
- The animated flipping page uses its own clean paper material (`flipPageSurface`) instead of the resting page material, so motion does not reveal stationary paper grain, stack-line textures, content textures, or construction patterns.
|
||||
- Page-stack side lines are generated as textures, not as free-standing line meshes.
|
||||
- Stack side textures should have consistent orientation and line count on all visible stack sides.
|
||||
- Cover, hinge, spine base, and cover edge materials use leather-style materials with procedural leather color and normal maps.
|
||||
- Cloth spine head/end-bands are real small raised meshes with their own woven red/ivory texture material, not painted stripes on the spine cloth shader.
|
||||
- The book, table, candles, and flipping pages have `castShadow` and `receiveShadow` disabled.
|
||||
- Three.js/OpenGL primitive shadows must stay disabled.
|
||||
- Candle shadows are implemented in the custom table/book shader path, not through Three.js shadow maps.
|
||||
- Scene SSAO is present as a postprocessing pass, but the procedural book and flip page are currently excluded from that AO pass because the previous AO interaction caused misleading/inset visual artifacts.
|
||||
- Scene SSAO is present as a postprocessing pass. The procedural book, head/end-bands, and flip page are normal scene participants unless a mesh is explicitly added to `aoExcludedObjects`; flames and glow sprites remain excluded.
|
||||
- The table reflection path remains active and should include the book and candles.
|
||||
- The custom book material shader includes a small local indirect/bounce-light term for book surfaces. This is not emissive; it is multiplied by material albedo so paper, leather, and head/end-band colors remain distinct while shadowed side faces stay readable.
|
||||
- Temporary screenshots and generated debug images are not product assets unless explicitly promoted.
|
||||
|
||||
## Non-Negotiable Workflow Rules
|
||||
@@ -162,6 +165,16 @@ The book should become a dynamic procedural object:
|
||||
- Page textures must be smooth enough that projected content does not reveal unwanted construction lines, stack lines, or noisy paper grain.
|
||||
- Neutral paper texture and content-page texture should have compatible filtering, mipmapping, and anisotropy.
|
||||
- Spine arc, hinge, cloth, and support-strip materials must not accidentally receive page-content texture.
|
||||
- The animated flipping page must use a clean paper material separate from resting/content pages. It should keep scene lighting, custom book shadows, and local bounce light, but should not use the procedural paper color/normal pattern that can create visible moving grain or shader artifacts.
|
||||
|
||||
### Text Sharpness Notes
|
||||
|
||||
- Current visible page content is rasterized into high-resolution canvas textures (`pageTextureWidth = 3200`) and then sampled on curved/angled 3D geometry.
|
||||
- Browser canvas text antialiasing, mipmap selection, linear filtering, anisotropy, page curvature, postprocessing, and viewing distance all affect perceived sharpness. This is not just a Windows font-rendering issue.
|
||||
- A single raster page texture cannot be perfectly sharp from every distance. Increasing the canvas to 4096 or 8192 can improve close views but costs memory and still depends on mipmap/filter behavior.
|
||||
- SDF means signed distance field: glyph edges are encoded as distances in a texture and reconstructed in the shader, allowing cleaner scalable edges than ordinary raster text.
|
||||
- MSDF means multi-channel signed distance field: edge distances are encoded across color channels, preserving corners and serifs better than single-channel SDF. MSDF is the better future path if page typography must stay crisp across camera distances.
|
||||
- SDF/MSDF text would require a separate text layout/rendering path or an MSDF font atlas. It should not be mixed into this sprint unless the raster canvas approach is proven insufficient.
|
||||
|
||||
## Camera Requirements
|
||||
|
||||
@@ -487,7 +500,8 @@ Steps:
|
||||
6. Keep stack side texture orientation consistent across front, back, left, and right sides.
|
||||
7. Use procedural leather color and normal maps for cover, hinge, spine base, and cover edge.
|
||||
8. Round the edge impression of cover panels without introducing open faces.
|
||||
9. Verify cover, hinge, spine base, cover edge, paper side, paper top, and cloth spine material groups.
|
||||
9. Use a dedicated clean paper material for animated flipping pages.
|
||||
10. Verify cover, hinge, spine base, cover edge, paper side, paper top, flip page, head/end-band, and cloth spine material groups.
|
||||
|
||||
Acceptance criteria:
|
||||
|
||||
@@ -495,8 +509,10 @@ Acceptance criteria:
|
||||
- Stack side lines are not free-standing meshes.
|
||||
- Stack side lines meet at corners without visible mismatch.
|
||||
- The visible page surface is smooth and does not reveal construction-line artifacts.
|
||||
- The animated flipping page remains clean during motion and does not show resting-page paper grain, page-content texture, or stack-side line patterns.
|
||||
- Leather parts look like real cover geometry, not flat orange planes.
|
||||
- Cloth spine remains visually distinct from leather cover parts.
|
||||
- Head/end-bands read as small woven bookbinding details and participate in mirror, SSAO, custom book shadows, and local bounce lighting.
|
||||
|
||||
### Phase 4: True SSAO Revisit
|
||||
|
||||
|
||||
Reference in New Issue
Block a user