[VEX for Algorithmic Design] E21 _ Half-Edge Basics

Sdílet
Vložit
  • čas přidán 5. 06. 2024
  • This is a new series I've started explaining the basics of VEX for algorithmic design / procedural modeling which I'm using on daily basis.
    In this 21st episode, I'm explaining the basics of half-edge structure in Houdini and how you can use it together with VEX for several computational geometry purposes.
    I've also started a Patreon, it would be great if I could get your support to continue creating tutorial contents.
    00:00:00 Intro / What is Half-Edge?
    00:07:09 Half-Edge from Point 1
    00:14:55 Half-Edge from Point 2
    00:20:48 Check Half-Edge Validity
    00:23:55 Next / Previous Half-Edge
    00:32:20 Next Equivalent Half-Edge
    00:41:22 Exercise - Dual Mesh
    00:58:46 Exercise - Mesh Subdivision
    01:12:36 Exercise - Mesh Bevel
    02:11:14 Next Topic - Remapping
    [Project Data Downloads]
    github.com/jhorikawa/VEXForAl...
    [Patreon page]
    / junichirohorikawa
    [Episodes]
    Episode 1 - Attribute Basics: • [VEX for Algorithmic D...
    Episode 2 - Group Basics: • [VEX for Algorithmic D...
    Episode 3 - Parameter Basics: • [VEX for Algorithmic D...
    Episode 4 - Variables and Operations: • [VEX for Algorithmic D...
    Episode 5 - Array: • [VEX for Algorithmic D...
    Episode 6 - Strings: • [VEX for Algorithmic D...
    Episode 7 - Loop: • [VEX for Algorithmic D...
    Episode 8 - Conditional: • [VEX for Algorithmic D...
    Episode 9 - Function: • [VEX for Algorithmic D...
    Episode 10 - Volume Basics: • [VEX for Algorithmic D...
    Episode 11 - Dictionary Basics: • [VEX for Algorithmic D...
    Episode 12 - Vector Basics: • [VEX for Algorithmic D...
    Episode 13 - Trigonometry Basics: • [VEX for Algorithmic D...
    Episode 14 - Quaternion Basics: • [VEX for Algorithmic D...
    Episode 15 - Matrix Basics 1: • [VEX for Algorithmic D...
    Episode 16 - Geometry Functions: • [VEX for Algorithmic D...
    Episode 17 - Intrinsic Attribute: • [VEX for Algorithmic D...
    Episode 18 - Randomness Basics: • [VEX for Algorithmic D...
    Episode 19 - Noise Basics: • [VEX for Algorithmic D...
    Episode 20 - Solver Basics: • [VEX for Algorithmic D...
    Episode 21 - Half-Edge Basics • [VEX for Algorithmic D...
    Episode 22 - Remapping Basics: • [VEX for Algorithmic D...
    Episode 23 - SDF Basics: • [VEX for Algorithmic D...
    Episode 24 - Force Basics: • [VEX for Algorithmic D...
    Episode 25 - Force Extended: • [VEX for Algorithmic D...
    Episode 26 - Recursion Basics: • [VEX for Algorithmic D...
    [Houdini Related Playlists]
    VEX for Algorithmic Design: • VEX for Algorithmic De...
    Houdini Tutorial: • Houdini Tutorials
    Houdini Algorithmic Live: • Houdini Algorithmic Live
    Houdini Snippets: • Houdini Snippets
    Houdini Tips: • Playlist
    [Portal Page]
    Facebook Page: / parametricproceduralho...
    [Books]
    Algorithmic Design Workbook with Houdini: gum.co/GOZFw
    Tiling Pattern with Houdini: gumroad.com/l/OVDgY
    Algorithmic Design with Houdini: www.bnn.co.jp/books/9788/
    Books on BOOTH: orangejellies.booth.pm/
    [Contact]
    Twitter: / jhorikawa_err
  • Věda a technologie

Komentáře • 18

  • @marvelouswalrus949
    @marvelouswalrus949 Před 3 lety +7

    Not only do you possess a ton of knowledge. You are also very creative. On top of that, you have the gift of explaining things in a manner that is crystal clear and understandable. Your tutorials are simply outstanding. A HUGE thank you again, Junichiro!

  • @tylerbakeman
    @tylerbakeman Před 5 měsíci

    A Half-edge in a Graph, of a Vertex, usually relates to another vertex - which can be introverted | extroverted - describing if the vertex is “prev” | “next”.
    This rendering technique that you’re referencing applies a use for Half-edges in theory, but the standard for rendering Meshes doesn’t:
    We typically store Mesh data by
    1) A tuple of vertices
    2) A tuple of faces
    3) A tuple of normals (not always, but usually)
    … sometimes more…
    Where a Face literally stores the Path (sequence) of vertices of the face - assuming they are coplanar.
    Example:
    Mesh = {
    Vertices = { A,B,C,D,E,F,G,H }
    Faces = {
    Face( A,B,D,C ), …
    Face( A,B,F,E ) // or something
    … etc
    }
    }
    So, I wouldn’t say you’re technically using Half-edges, as Meshes dont typically get stored in Graphs - even if they ARE easy to represent w/ graphs…
    Although, there could be other benefits to your model.
    Consider the idea of a Hyper-edge in a Hyper-Graph… It tends to save storage over Usual-edges. Because of degree…
    A usual graph edge stores a copy of each vertex (not necessarily a hard copy, but still).
    Each vertex has a personal number of edges (called its degree), which is also how many copies of an edge exist in a Graph.
    Hyper-edges store more vertices, reducing the total number of edges, which reduces the degree (sometimes / usually) - which reduces the number of copies, and saves memory.
    An example is having an “N-clique” being replaced with a Hyper-edge with N vertices. The N-clique has a lot more copies… so Hyper-edges save memory.
    The “Half-edge” is probably called something different in this context, but is probably a lot more useful in this context…
    To my understanding, Hyper-vertex partial-edges can be introverted | extroverted, which is how we segregate “prev” and “next”. Therefore, there is arguably still a “Tail” and “Head” of the Hyper-edge - but now those Tail and Head aspects are collections, instead of a single vertex. Because of this- it is still possible to perform Multi-partite ‘color mapping’ (idk the technical term) from one color to the next- because the Tail and Head could correspond to colors in a Bipartite structure.
    Something like that…
    Anyway…
    Cheers.

  • @srivignesh35
    @srivignesh35 Před 3 lety +9

    Excellent! you are doing gods work Junichiro.

  • @Mega-Dinosaurs
    @Mega-Dinosaurs Před rokem

    Nice, tutorial completed

  • @MrSlapcup
    @MrSlapcup Před 2 lety

    brilliant stuff.. thank you.

  • @FaitelTech
    @FaitelTech Před 3 lety +1

    Thank you, Junichiro. I had a lot of joy learning half-edges concept along your video. I've already spent so much time doing workaround from edges using functions for prims and points because didn't understand the concept when read documentation by myself, that your video is like a blessing.
    Also, I think it could be so much easier if Houdini had markers and dedicated Geometry Spreadsheet page for half-edges.

  • @frassmicce
    @frassmicce Před 3 lety

    fantastic as usual! On my way to procedural mastery.

  • @zeshichen6134
    @zeshichen6134 Před 2 lety

    Thank you so much. I recently went through the vex document in details. So, I wonder what I can do with hedge. Your video is such a good example showing its power. This video does help me a lot.

  • @ianmcglasham
    @ianmcglasham Před 2 lety

    excellent.

  • @bekabaratashvili3178
    @bekabaratashvili3178 Před 3 lety

    AAAWESOME!

  • @andrascelentano3519
    @andrascelentano3519 Před 3 lety

    Hello. So based on this , would it be possible, to create a polygon mesh based on floating points? Like in 2D you can use traingulate2D, but use it on a non grid like cases?

  • @abhishek.vermaaa
    @abhishek.vermaaa Před 3 lety

    Please make a video about Expression functions and how they work inside Houdini. I know it's a very basic topic but I haven't found any video properly explaining it.

  • @acanimationfilmstudio1018
    @acanimationfilmstudio1018 Před 10 měsíci

    Hey is it possible if I can get any material from you about the implementation of half edge

  • @mrpig4286
    @mrpig4286 Před 3 lety

    good job ! i am curious why your English is so good as a Japanese ? i am Chinese and i want to know how to learn English could achieve your level?

  • @requa3314
    @requa3314 Před 3 lety

  • @webgpu
    @webgpu Před rokem

    it is not practical. too slow. the last example showed a torus with +/- a thousand vertices, but i need processing of geometries from 10k to 100k vertices. i'm still using simple indexed vertices instead of half edges. Maybe, half edge calculations would be practical if they're done in the gpu.