Το λογισμικό μαςOur software

Γραμμική στατική ισογεωμετρική ανάλυση με NURBSLinear static isogeometric analysis with NURBS

Ο ίδιος κανόνας, τρεις φορές, με μία διάσταση παραπάνω κάθε φορά: σε καμπύλη, σε επιφάνεια, σε στερεό. Και τα τρία υπολογίζονται μέσα στον browser σε κάθε καρέ — σύρε τα, τίποτα δεν είναι προϋπολογισμένο. The same rule three times, one dimension further each time: on a curve, on a surface, on a solid. All three are computed inside the browser on every frame — drag them, nothing here is precomputed.

Ο κανόνας, σε δύο διαστάσειςThe rule, in two dimensions cubic B-spline · 1D

Σύρε τα τετράγωναDrag the squares

ΚορυφέςVertices
8 → 512
Σε επιφάνειαOn a surface
×4k

πλέγμα ελέγχουcontrol cage οριακή καμπύληlimit curve

Οι δύο κανόνες που τρέχουνThe two rules running

Κάθε επίπεδο παράγει μία νέα κορυφή για κάθε ακμή και μετακινεί κάθε παλιά κορυφή, με σταθερά βάρη: Each level produces one new vertex per edge and moves every old vertex, with fixed weights:

κορυφήvertex  V′ = (P₋₁ + 6P + P₊₁) / 8
ακμήedge    E  = (P + P₊₁) / 2

Αυτή είναι ακριβώς η μονοδιάστατη περίπτωση του Catmull–Clark. Στις επιφάνειες ο ίδιος κανόνας γενικεύεται σε έδρες, ακμές και κορυφές αυθαίρετου βαθμού — και αυτό υλοποιεί ο πυρήνας του Π1. This is exactly the one-dimensional case of Catmull–Clark. On surfaces the same rule generalises to faces, edges and vertices of arbitrary valence — and that is what the D1 core implements.

  • ΕπίπεδαLevelsL0 είναι το πλέγμα που έγραψες· L∞ είναι η οριακή καμπύλη, εκεί όπου η επανάληψη συγκλίνει.L0 is the cage you authored; L∞ is the limit curve, where the iteration converges.
  • ΚόστοςCostΚάθε επίπεδο διπλασιάζει τις κορυφές σε καμπύλη και τις τετραπλασιάζει σε επιφάνεια — γι' αυτό μετράει η απευθείας αποτίμηση.Every level doubles the vertices on a curve and quadruples them on a surface — which is why direct evaluation matters.
  • ΝτετερμινισμόςDeterminismΊδιες κορυφές, ίδια καμπύλη — σε αυτή τη σελίδα όπως και στον πυρήνα.Same vertices, same curve — in this page as in the core.

Τίποτα δεν είναι προϋπολογισμένο: ο κανόνας εκτελείται στον browser σε κάθε σύρσιμο.Nothing here is precomputed: the rule runs in the browser on every drag.

Ο κανόνας, σε επιφάνειαThe rule, on a surface Catmull–Clark · 2D

Σύρε τα τετράγωναDrag the squares

ΈδρεςFaces
20
Μη καν. / καν.Extraord. / reg.
1 / 10

Οι τρεις μέσοι όροιThe three averages

πλέγμα ελέγχουcontrol cage εκλεπτυσμένο πλέγμαrefined mesh

Οι τρεις μέσοι όροι, ζωντανάThe three averages, live

Σε επιφάνεια ο κανόνας δεν είναι δύο βάρη αλλά τρεις μέσοι όροι, κι αυτοί ακριβώς σχεδιάζονται πάνω στο πλέγμα: On a surface the rule is not two weights but three averages — and those are exactly what is drawn on the mesh:

F   = (1/n) · Σ v
E   = (v₁ + v₂ + F₁ + F₂) / 4
P′  = ( F̄ + 2R̄ + (n − 3)·P ) / n

Η τεκμηρίωση τα εξηγεί ένα-ένα. Εδώ τρέχουν: κάθε n-γωνο γίνεται n τετράπλευρα, οπότε μετά το πρώτο πέρασμα το πλέγμα είναι καθαρά τετραπλευρικό. The documentation explains them one by one. Here they run: every n-gon becomes n quads, so after the first pass the mesh is purely quadrilateral.

  • Μη κανονικήExtraordinaryΤο κέντρο έχει βαθμό 5, όχι 4. Ανέβασε επίπεδο και δες τον μετρητή: η μη κανονική κορυφή μένει μία για πάντα, όσο κι αν πυκνώσει το πλέγμα γύρω της.The centre has valence 5, not 4. Step up a level and watch the counter: the extraordinary vertex stays at one forever, however dense the mesh around it becomes.
  • Δοκίμασε n = 4Try n = 4Ο μετρητής γράφει μηδέν. Σε τετραπλευρικό πλέγμα κανονική είναι ακριβώς η κορυφή βαθμού 4, οπότε το κέντρο παύει να είναι εξαίρεση και η οριακή επιφάνεια είναι δικυβική B-spline — ο κανόνας δεν χρειάζεται καν. Γύρνα στο 5 και η μονάδα επιστρέφει. Μία κορυφή είναι όλη η διαφορά.The counter reads zero. On a quad mesh the regular valence is exactly 4, so the centre stops being an exception and the limit surface is a bicubic B-spline — the rule is not even needed. Go back to 5 and the one returns. A single vertex is the whole difference.
  • ΧείλοςBoundaryΟι κορυφές του περιγράμματος δεν έχουν έδρες γύρω τους, οπότε παίρνουν τον κανόνα της καμπύλης — τον ίδιο που τρέχει το διάγραμμα από πάνω.Boundary vertices have no ring of faces, so they take the curve rule — the very one running in the diagram above.
  • Γιατί 1978Why 1978Μόλις ο βαθμός φύγει από το 4, το σχήμα βγαίνει εκτός εμβέλειας της δικυβικής B-spline — και το χρειάζεσαι, γιατί ελάχιστα πραγματικά αντικείμενα είναι καθαρά καρέ. Ακριβώς αυτό λύνει η εργασία των Catmull και Clark.The moment the valence leaves 4, the shape falls outside the reach of a bicubic B-spline — and you need it to, because very few real objects are a clean grid. That is precisely what Catmull and Clark’s paper solves.

Πληκτρολόγιο: R για επαναφορά της ροζέτας.Keyboard: R to reset the rosette.

Ο κανόνας, σε τρεις διαστάσειςThe rule, in three dimensions Catmull–Clark · 3D

Σύρε τις κορυφέςDrag the vertices

ΈδρεςFaces
384
Μη καν. / καν.Extraord. / reg.
8 / 378

πλέγμα ελέγχουcontrol cage · 8 κορυφέςvertices οριακή επιφάνειαlimit surface

Οκτώ κορυφές μέσαEight vertices in

Το κόκκινο κουτί είναι όλο το αρχείο: οκτώ κορυφές και έξι τετράπλευρα. Ό,τι άλλο βλέπεις το υπολογίζει ο κανόνας — 24, 96, 384, 1.536 έδρες, χωρίς να γραφτεί ούτε μία επιπλέον κορυφή στην πηγή. The red box is the entire file: eight vertices and six quads. Everything else you see is computed by the rule — 24, 96, 384, 1,536 faces, without a single extra vertex being authored.

Η οριακή επιφάνεια κάθεται μέσα στο πλέγμα ελέγχου, και γι' αυτό δεν την κλιμακώνουμε: αυτή ακριβώς είναι η σχέση των δύο. The limit surface sits inside the control cage, and that is why it is not scaled up to fit: this is exactly the relationship between the two.

Και είναι γραφόμενο: σύρε ένα κόκκινο τετράγωνο και η επιφάνεια ξαναϋπολογίζεται στο ίδιο καρέ — αυτό κάνει ένας σχεδιαστής, μόνο που εδώ φαίνεται. Ο επιλογέας αλλάζει κλουβί (τετράεδρο, οκτάεδρο, πρίσμα): ο κανόνας μένει ένας και ο ίδιος, ακόμη και όταν οι έδρες παύουν να είναι τετράπλευρες. And it is authorable: drag a red square and the surface is recomputed in the same frame — that is what a designer does, only here you can watch it. The picker swaps the cage (tetrahedron, octahedron, prism): the rule stays one and the same, even when the faces stop being quads.

  • Και οι οκτώAll eightΣε τετραπλευρικό πλέγμα κανονική είναι η κορυφή βαθμού 4. Ο κύβος έχει παντού βαθμό 3, άρα κάθε κορυφή του είναι μη κανονική — και μένουν οκτώ σε κάθε επίπεδο.On a quad mesh the regular valence is 4. Every corner of a cube has valence 3, so every one of them is extraordinary — and there are still exactly eight at every level.
  • Χωρίς WebGLNo WebGLΠροοπτική, απόρριψη πίσω εδρών, ταξινόμηση κατά βάθος και σκίαση από μία πηγή, γραμμένα σε canvas 2D. Καμία βιβλιοθήκη, κανένα shader.Perspective, backface culling, depth sorting and single-source shading, written against canvas 2D. No library, no shader.
  • ΣτεγανόWatertightΚάθε ακμή ανήκει σε ακριβώς δύο έδρες σε κάθε επίπεδο. Δεν επιδιορθώνεται — προκύπτει από τον κανόνα.Every edge belongs to exactly two faces at every level. It is not repaired — it falls out of the rule.

Πληκτρολόγιο: βελάκια για περιστροφή, κενό για παύση, R για επαναφορά.Keyboard: arrow keys to rotate, space to pause, R to reset.

ΈλεγχοςControl

Ημι-αιχμηρή τσάκισηSemi-sharp crease

Η οξύτητα δεν είναι διακόπτης· είναι συνεχής παράμετρος — η ιδέα των DeRose, Kass και Truong στο SIGGRAPH 1998. Σύρε τον δείκτη από το 0 στο ∞ και δες την ίδια κορυφή να περνά από τέλεια λεία σε πραγματική ακμή. Η τεκμηρίωση εξηγεί το γιατί. Sharpness is not a switch; it is a continuous parameter — the idea DeRose, Kass and Truong published at SIGGRAPH 1998. Drag the handle from 0 to ∞ and watch the same vertex go from perfectly smooth to a true edge. The documentation explains the why.

Ημι-αιχμηρή τσάκισηSemi-sharp crease sharpness = 0.0
0 · λείοsmooth 24 ∞ · αιχμηρόsharp

Πώς δουλεύειHow it works

Σε μια ακμή δίνεται τιμή οξύτητας s. Για τα πρώτα ⌊s⌋ επίπεδα υποδιαίρεσης εφαρμόζονται οι αιχμηροί κανόνες (η κορυφή μένει ακίνητη)· στο επόμενο επίπεδο γίνεται γραμμική ανάμειξη ανάμεσα σε αιχμηρό και λείο κανόνα με βάρος το δεκαδικό μέρος· από εκεί και πέρα ισχύουν οι κανονικοί λείοι κανόνες. An edge is tagged with a sharpness value s. For the first ⌊s⌋ levels the sharp rules apply (the vertex stays put); at the next level the sharp and smooth rules are blended by the fractional part; beyond that the ordinary smooth rules take over.

Αποτέλεσμα: s = 0 δίνει τέλεια λεία μετάβαση, s = ∞ δίνει πραγματική ακμή, και οτιδήποτε ενδιάμεσα δίνει ελεγχόμενο fillet — χωρίς να προσθέσεις ούτε μία κορυφή στο πλέγμα. The result: s = 0 gives a perfectly smooth transition, s = ∞ gives a true edge, and anything between gives a controlled fillet — without adding a single vertex to the cage.

Ο δείκτης δεν διαλέγει ανάμεσα σε έτοιμα σχήματα: κάθε θέση του ξανατρέχει τους κανόνες με νέο s.The handle does not pick between ready-made shapes: every position re-runs the rules with a new s.

Έχετε γεωμετρία που πρέπει να είναι
και λεία και ελεγχόμενη;
Have geometry that must be both
smooth and controllable?

Πείτε μας τι φτιάχνετε και θα σας πούμε αν η υποδιαίρεση είναι το σωστό εργαλείο — και αν όχι, ποιο είναι.Tell us what you are building and we will tell you whether subdivision is the right tool — and if not, what is.

Ξεκινήστε μια συζήτησηStart a conversation