fix(examples): redesign gp-lineart-contour as an inked lighthouse diorama - #279
Merged
Merged
Conversation
…rama The gallery review judged the hero weak: a lone teal octahedron with a cyan outline on a small black stand, a primitive rather than a designed subject. The source is now one cel-shaded mesh (a banded lighthouse with gallery, railing, lantern room and roof, a keeper's cottage, a rowboat on the rocks and a diorama sea with wave crests), so the black Line Art ink is what turns it into an inked illustration. Clear source_object and the same render is a flat model with no lines at all, so the render witnesses the contract. The check and the still now share one camera (Line Art is view-dependent). The gates went from >= 1 stroke / >= 4 points to >= 240 / >= 1320 against a measured 255 / 1393 on 4.5.11, 5.1.2 and 5.2.1. That sits above the count left when any one of contour, crease, material-border or intersection edges is dropped, so every edge type is load-bearing. The flags-off probe now turns off every edge type, and the rebuild must recover the exact first-pass counts. The README documents the NPR stage deviation (cel-shaded emission materials on the default stage). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Signed-off-by: TMHSDigital <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
The gallery review judged the
gp-lineart-contourhero weak: a single teal octahedron with a cyan outline on a small black stand. It was a lone primitive, not a designed subject.Redesign: the Line Art source is now one cel-shaded mesh, a lighthouse diorama:
The materials are flat toon tones (Diffuse → Shader to RGB → constant ramp, emitted), so the bold black LINEART ink is what makes the render read as an inked comic illustration:
The render is the proof. With
source_objectcleared, the same render (made by the scratch probe.scratch/broken.py, not committed) is a flat lineless low-poly model. There are no band borders, no waterline and no outlines. The difference is obvious at thumbnail size.docs/gallery/contact-sheets/gp-lineart-contour-contact-sheet.webpdocs/gallery/assets/gp-lineart-contour-hero.webp(26,966 B)Stage deviation (documented in README): this is an NPR contract, so the hero materials are cel-shaded emission instead of Principled. The floor, wall, world, key, fill and warm wedge are the default stage. The cel look uses Shader to RGB, which is EEVEE-only.
Asset-sheet gate: not run. This is an NPR / art subject in the rendering section, not a game-prop or kit example, and
scripts/asset_sheet.pyhas noSELECTrow for it.Check changes (stricter, not weaker)
One camera for the check and the still. Line Art is view-dependent, so the counts the check gates are exactly the strokes the still draws.
Stroke and point gates. They went from
>= 1stroke />= 4points to>= 240strokes />= 1320points. The measured drawing is 255 / 1393 on all three binaries. Dropping any one edge type leaves:Every one of those falls below a gate, so each edge type is load-bearing on the count.
Flags-off probe. It now turns off every edge type (contour, crease, loose, intersection, material, edge mark), not only contour and crease. The result must still be 0.
Restore. The rebuilt modifier must recover the exact first-pass counts, not just clear the lower bound.
Width.
radiusis 0.021, and the 4.5thicknessis 22. The thickness/radius version-branch check is unchanged.Gate numbers (5.2.1)
fill x=0.475 y=0.844(band 0.70–0.90) ok; marginsleft=0.275 right=0.250 bottom=0.050 top=0.106okmean_abs 0.00334, verdict matchesVerdicts:
The render is NPR, but it does not look like it belongs to a different gallery: it keeps the same dark stage and the same wedge.
Check runs
E:\Blender-Developer-Tools\.scratch\)blender-5.2.1-windows-x64\blender.exeblender-5.1.2-windows-x64\blender.exeblender-4.5.11-windows-x64\blender.exethickness=22tests/smoke/run_example.pypassed on all three binaries.Falsifiers (5.2.1; each was a temporary copy of the script, deleted afterwards)
--no-contouruse_contour should be Trueuse_material=Falsein the configured modifierstrokes=247 points=1305 (need >= 240, >= 1320)cleared source_object still produced strokes=255 points=1393every edge type off still produced strokes=247 points=1305use_intersection=Falsedid not recover after restore: strokes=179 points=921 (first pass 255/1393)Proven by live run vs established by inspection only
Proven by live run:
render_hero.py,contact_sheet.pyandmeasure_hero_drift.py(matches)build_gallery.py, including the alt-length gatesource_objectcleared) render compared with the heroEstablished by inspection only:
<img alt>text indocs/gallery/index.htmlanddocs/gallery/gp-lineart-contour/index.html(read, correct)🤖 Generated with Claude Code