forked from 1b-agent/opencadstudio-upstream
feat(render): Flat/Gouraud shading, WithEdges overlay, paper-viewport mode
Faz 3 — FlatShaded vs GouraudShaded
- Uniforms.flat_shade (f32, 0/1) + mesh shader fragment derivative
bazlı per-triangle face normal hesabı; GouraudShaded ise interpolate
edilen vertex normalini kullanıyor.
Faz 4 — *WithEdges varyantları
- Pipeline::render.show_3d_edges parametresi:
- FlatShaded / GouraudShaded → 3DFACE edge pass'i atlanıyor
- *WithEdges varyantları → shaded fill'in üstüne mesh_wireframe
pipeline ile triangle-edge overlay (LessEqual depth test ile)
- face3d_edges pass'i show_3d_edges ile gate'lendi
Faz 5 — Paper-space viewport entity round-trip
- build_viewport_primitive / build_active_viewport_primitive artık
render_mode parametresi almıyor; viewport entity'sinin kendi
render_mode alanından okuyor. PaperViewportPane'dan render_mode
field'i kaldırıldı. Model layout'taki tab.render_mode hala
pick_list ile yönetiliyor.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
This commit is contained in:
1 parent
56834dfba6
commit
132efe6574
6 files changed
+141
-56
No files matched your search
+1
-1
@@ -883,7 +883,7 @@ fn paper_canvas_view<'a>(tab: &'a super::document::DocumentTab) -> Element<'a, M
|
||||
let w = rect.width.clamp(1.0, canvas_w - x);
|
||||
let h = rect.height.clamp(1.0, canvas_h - y);
|
||||
|
||||
let vp_widget = shader(PaperViewportPane::new(scene, vp_handle, tab.render_mode))
|
||||
let vp_widget = shader(PaperViewportPane::new(scene, vp_handle))
|
||||
.width(iced::Length::Fixed(w))
|
||||
.height(iced::Length::Fixed(h));
|
||||
|
||||
|
||||
Reference in new issue
Block a user