JOINER - An automated Brush Generator

Discussion in 'Tutorials & Resources' started by YM, Apr 2, 2012.

  1. YM

    aa YM LVL100 YM

    Messages:
    7,099
    Positive Ratings:
    5,745
    JOINER
    1.0.3
    06-04-2012

    Created by Timothy 'YM' Johnson

    [​IMG]

    [​IMG]

    You can load in any VMF you like, as long as it has a brush textured in dev/slime Joiner will do it's work.

    Joiner will never ever modify your input VMF, so it's totally safe to put in your working VMF, no need to create a new one.

    Joiner works by finding volumes defined by single brushes textured with dev/slime. To create supports for a room, create a single dev/slime brush that exactly fills its entire volume.

    You can have as many of these volumes in a map as you want, they can adjoin or intersect in any way. Joiner will create one set of supports per volume it finds.

    The output will be completely func_detailed too.

    Joiner will not work with any angled faces. Sorry folks, that's a feature for the future.

    Joiner will not account for touching faces being the same room. That's another feature for the future.

    Here are some before/after shots:
    [​IMG]
    [​IMG]
    [​IMG]


    If you have any problems let me know what you were putting in, what the console said as it did it, and what you got out so I can try to fix it. (or chastise you for being a fool)

    If you make anything using non-default settings, consider taking a before/after shot for me, I'd be grateful.

    [​IMG]

    Enjoy!
     
    • Thanks Thanks x 53
    Last edited: Jan 4, 2014
  2. Freyja

    aa Freyja ¯\_(ツ)_/¯

    Messages:
    2,878
    Positive Ratings:
    4,955
  3. Jeremy

    Jeremy L11: Posh Member

    Messages:
    829
    Positive Ratings:
    251
    Whoa. Nice.
     
  4. Tyker

    Tyker L5: Dapper Member

    Messages:
    232
    Positive Ratings:
    141
    Awesome! Very nice job!
     
  5. Rexy

    aa Rexy The Kwisatz Haderach

    Messages:
    1,795
    Positive Ratings:
    2,367
    I think the interesting thing is automated detail like this can, in the right situation, be more interesting and have better detail than planned wooden supports! Thanks.
     
  6. YM

    aa YM LVL100 YM

    Messages:
    7,099
    Positive Ratings:
    5,745
    Yeah totally, Now I've added a proper random seed (forgot it for this version, oops) it's giving me really cool results.
     
  7. LeSwordfish

    aa LeSwordfish semi-trained quasi-professional

    Messages:
    4,113
    Positive Ratings:
    6,077
    As a suggestion for a future feature, if it reads an intersecting brush with another texture, it generates the wood around this brush. So doors, windows, or large spaces for posters etc can be very easily included.
     
  8. Tarry H Sruman

    Tarry H Sruman Large Orphanage Proprietor

    Messages:
    871
    Positive Ratings:
    820
    I like it. Well done!
     
  9. honeymustard

    honeymustard L9: Fashionable Member

    Messages:
    698
    Positive Ratings:
    273
  10. tyler

    aa tyler snail prince, master of a ruined tower

    Messages:
    5,035
    Positive Ratings:
    3,990
    Is there actually any point to nodrawing a face that is against a another brush? Any faces that are impossible to see in game (ie everything nodrawed in your pictures) are culled, aren't they? I thought this happened at the same time nodraw was taken into account.

    Also I don't know what "Joiner will not account for touching faces being the same room. That's another feature for the future." means help
     
    • Thanks Thanks x 1
  11. YM

    aa YM LVL100 YM

    Messages:
    7,099
    Positive Ratings:
    5,745
    make an L shaped room. you neeeed two brushes minumum to define it's volume. Joiner will treat each brush as a separate room and you'll get two sets of beams along the join, through the middle of your room.
     
  12. tyler

    aa tyler snail prince, master of a ruined tower

    Messages:
    5,035
    Positive Ratings:
    3,990
  13. YM

    aa YM LVL100 YM

    Messages:
    7,099
    Positive Ratings:
    5,745
    That still will produce extraneous wall supports in the middle of your room.
     
  14. Idolon

    aa Idolon the worst admin

    Messages:
    1,554
    Positive Ratings:
    4,464
    I don't know if func_details will automatically cull, since they ignore visleafs.
     
  15. tyler

    aa tyler snail prince, master of a ruined tower

    Messages:
    5,035
    Positive Ratings:
    3,990
    It has nothing to do with visleafs as far as I know, because nodraw happens before that in the vbsp process.
     
  16. A Boojum Snark

    aa A Boojum Snark Toraipoddodezain Mazahabado

    Messages:
    4,769
    Positive Ratings:
    5,535
    It depends what the brushes are. World-on-world will always cull. Brushes within a single entity usually will. Detail brushes may or may not cull when touching each other or the world, and I'm not entirely sure what makes the difference.
     
  17. YM

    aa YM LVL100 YM

    Messages:
    7,099
    Positive Ratings:
    5,745
    Currently my nodrawing is super simplistic and not up to my usual standards. Proper nodrawing is on the list of things to do but it's pretty low down.

    Next version has each 'room' grouped into a single func_detail, if it makes any difference..
     
    • Thanks Thanks x 1
  18. henke37

    aa henke37

    Messages:
    1,919
    Positive Ratings:
    449
    Remember that the engine culls all backwards facing sides during rendering anyways. And the detail brushes are affected by visleafs, even if they don't affect the visleaf creation. So it isn't a big deal even if you had to manually nodraw impossible sides and missed them all.
     
  19. YM

    aa YM LVL100 YM

    Messages:
    7,099
    Positive Ratings:
    5,745
    except y'know... lightmap optimisation.
     
  20. Boylee

    aa Boylee pew pew pew

    Messages:
    1,068
    Positive Ratings:
    631
    This is Glorious YM, thank you very much.