Search Unity

[RELEASED] Realtime CSG - level design for Unity

Discussion in 'Assets and Asset Store' started by LogicalError-Unity3D, Aug 24, 2016.

  1. adventurefan

    adventurefan

    Joined:
    Jan 17, 2014
    Posts:
    230
    remember that surforge literally can't render the whole sphere anyway... it's only baking the view. so this is kind of a meaningless concern, since you can rotate the sphere how you like. or you could hold shift in the surfaces tab to select all those faces at once, and fix the other texture area, but like I say for surforge you don't need an entire 3d object in reality, you need whatever you would look at head on.
     
  2. doq

    doq

    Joined:
    Aug 17, 2015
    Posts:
    121
    Sure, but why do I have to do that? I know I can rotate it. That's like saying here's a bug, but there's a workaround so why fix it?
     
  3. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    doq likes this.
  4. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Hmmm, how do you create the 'Operation' GO's short of creating an empty GameObject, adding the CSG Operation component and renaming it? This isn't mentioned in any video or in the documentation as far as I can see.

    Found it! It's a right-click menu item under Realtime CSG. Again I don't believe this is documented, but I could easily be wrong.

    Thank you (again) Logical!

    -Steven
     
    Last edited: May 17, 2017
    LogicalError-Unity3D likes this.
  5. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    @SteveB glad you found it :)

    @doq & @adventurefan version 1.407 has been released and fixes the sphere issues :)

    @JuliuszK This version also has the ability to set the contents of brushes (to solid, glass or water, this will be editable in a future version) which helps avoid geometry being removed when mixing transparent 'water' brushes with regular geometry



    Look here for more information about the release
     
    Last edited: May 19, 2017
  6. Metron

    Metron

    Joined:
    Aug 24, 2009
    Posts:
    1,137
    Hi,

    small question: Is there any real-time API I could use. I'd like to use this to generate complex objects in real time outside the unity editor.

    Also: Is there a way to use arbitrary meshes for the operations?
     
    Last edited: May 21, 2017
  7. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    @Mentron runtime support or arbitrary meshes are not support at the moment. they're both planned, but I don't know when yet
     
  8. tapawafo

    tapawafo

    Joined:
    Jul 25, 2016
    Posts:
    170
    Is it feasible to implement an 'ignore parent transform position during export' option? At the moment, the exported FBX is offset by the model's position. Say I model a helmet, and in doing so have the model root moved up to the position of the character's head, to be able to tell how to fit the helmet. If it's at 0,5,0, and I export the model, the model is 5 units offset on the y axis.

    Right now, I have to always either model the CSG model at 0,0,0, or set it to 0,0,0, export FBX, then return it to its previous position. This is quite time consuming when dealing with model refinement/small tweaks.

    Do you think this could be added?

    Thanks
     
  9. LogicalError-Unity3D

    LogicalError-Unity3D

    Unity Technologies

    Joined:
    Aug 7, 2015
    Posts:
    58
    @matteumayo sure, I can do that. It sounds like a more reasonable default anyway ..
     
    tapawafo likes this.
  10. hhdev

    hhdev

    Joined:
    Jun 6, 2017
    Posts:
    2
    i'm also interested in runtime support. any news on this? maybe some point this summer, or year even? i'd buy your tool right away if this became available.
     
  11. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Hi @hddev ,
    maybe this year, but definitely not this summer since I'll be traveling a lot, for various reasons, this and next month
    If I do, runtime will probably be limited to PC and Mac to begin with (I hope that isn't a problem for you?)
     
  12. hhdev

    hhdev

    Joined:
    Jun 6, 2017
    Posts:
    2
    pc and mac sounds perfectly reasonably and isn't a problem at all. if you manage to get some of your functionality ported to runtime use, i'd be interested even in early beta stages. i'm mainly interested in the basic geometry creation functionality. i'll be following the development in the hopes of some sort of early development release!
     
  13. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    @matteumayo I just released version 1.409 that now centers exported .fbx files!

    Also, support for brushes with different types of contents works better now. If you have a brush with water contents, and a brush with solid contents then it won't matter in what order you put your brushes in the hierarchy and it'll work correctly.
    Still experimental, one notable thing to still fix is that there should be different collision meshes for the different contents so you can check if you're inside water or not.

    There are also several fixes, see change log here
     
    tapawafo likes this.
  14. davide445

    davide445

    Joined:
    Mar 25, 2015
    Posts:
    138
    Hello I'm interested in your tool since I'm trying to replicate in Unity this tutorial

    So will be possible to use CSG at runtime to dynamically cut a geometry.
     
  15. LogicalError-Unity3D

    LogicalError-Unity3D

    Unity Technologies

    Joined:
    Aug 7, 2015
    Posts:
    58
    Realtime CSG doesn't have runtime support just yet, it's a tool to build levels in the editor (for now)
    Something like the thing in the video could only be done by cutting the letter meshes up beforehand and animating it using an animation stored in a texture. There are simply too many items to do *that* in real-time. Unity itself couldn't handle that many independent objects..
     
    davide445 likes this.
  16. davide445

    davide445

    Joined:
    Mar 25, 2015
    Posts:
    138
    Just to be sure I wasn't misunderstood : the effect in that video was obtained in three steps
    - using an invisible subtractive sphere chunk of the text are cut out during the animation - here is where CSG can operate
    - the sphere red color is transferred in the contact border of the text - no idea how to do it in Unity
    - particles are emitted from the colored part - will do it using Particle Playground
     
  17. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Yeah realtime-CSG could do the first two parts easily. But no runtime support just yet though..
     
  18. davide445

    davide445

    Joined:
    Mar 25, 2015
    Posts:
    138
    Any plan to release a realtime version.
     
  19. LogicalError-Unity3D

    LogicalError-Unity3D

    Unity Technologies

    Joined:
    Aug 7, 2015
    Posts:
    58
    Yes, but not in the near future. Hopefully later this year
     
    PartyBoat and davide445 like this.
  20. PartyBoat

    PartyBoat

    Joined:
    Oct 21, 2012
    Posts:
    97
    Here I'm am coming to ask what the status of run-time support and it was asked in the last three questions lol.

    Well, good to hear the idea is still planned! I guess I'll say thank you then for your continued hard work on RealtimeCSG. It's far and away my favorite way to make levels and beats Probuilder by miles. If you keep working on it like this and catch up in some features there is no reason why this asset shouldn't be the primary level design tool for Unity users. It's undeniably more fun and intuitive to use and the way you can use prefabs is simply brilliant, unity-like stuff.

    I'm looking forward to what you have coming!
     
  21. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,269
    Having a go with this it seems it's harder to keep a track of brush size than it could be once an new brush is created and I tend to model things with measurements in mind, particularly if architectural.
    I can not easily see the dimensions of a brush except by selecting edges in the mesh mode and when I am resizing a brush (dragging say box faces) it shows me the offset when often I am more interested in the overall dimension.

    Can the over-all dimensions of a brush be toggled on or could it be added as a feature?
    Perhaps also all measurements of a selected brush too.

    Also I would like to know where I am on the grid when making a new shape - show coordinates.
     
  22. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    @PartyBoat hah, yeah lately it seems to be the most asked question :)
    This makes me wonder, what are the features you feel are missing in Realtime-CSG?

    @andyz your suggestions make a lot of sense, I'll see if I can implement more metrics. I'm not sure what you mean with "overal-all dimensions"? I like the idea of showing coordinates on the grid


    FYI: I'm going to be in the phillipines in the next 3 weeks and my internet availability will be .. intermittent. So if I'm not as reactive as usual, this is why :)
     
  23. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,269
    ok good - mainly I mean more metrics but if the screen is overloaded with them then by over-all I mean just showing the width/depth/height of a brush (which makes most sense with a box) would be a good option.

    It would be nice if a box remembered it was box and a cylinder remmbers its a cylinder etc until made otherwise so that you can just re-type dimensions to exactly resize a brush, alternatively just enter your width depth height and the brush resizes (scales) to fill that 'box'.
     
  24. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Well showing the width/depth/height can be a bit strange when you're shape is not box like, but I guess some information is better than none :)

    Eventually I'm going to make brush generators as separate components so a cylinder/box etc. will stay that way until it's converted in a generic brush, I'm just waiting until the design stabilizes enough because it's kind of hard to change something when it's already being stored scene files.
     
  25. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
  26. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    FYI: if you see tickets on the issues page that are important to you, please respond to it so I can see that it's a higher priority!
     
  27. PartyBoat

    PartyBoat

    Joined:
    Oct 21, 2012
    Posts:
    97
    This is a combination of features, improvements, and bug fixes. I probably forgot a few but here it goes:

    • It'd be nice to have a greater variety of brushes to generate. For example, the UE4 geometry tools have a killer generator for curved and straight stairs. I know you could make a stair prefab (which is awesome), but the speed at which you can tweak the entire model with that generator in UE4 is an order of magnitude faster than doing it manually in RealtimeCSG. Actually I really do suggest checking out the geometry tools in UE4, they are pretty good!
    • Other nice generators to have besides curved and straight stairs would be arches, cones, cylinders, and a UV sphere instead of an icosphere as an option. I know you can make some of these easily, especially the cone or cylinder, but it's about speeding up the workflow so that you don't have to waste time on tasks that could be automatically generated.
    • The ability to subdivide surfaces would be awesome as I frequently find myself in situations where I need it. A loop cut and slide tool would also be an epic bonus if possible!
    • A mirror edit mode would be cool. Right now you have to select multiple vertices/edges/faces and use scaling to edit a model in a mirrored way. Specifically having a way to make this workflow less cumbersome would be nice.
    • Currently I think the selection system needs an overhaul. The way you need to select all of the vertices of a face in order to select that face while marquee selecting, combined with the fact that even the hidden side of the brush is selectable at all times, makes for an awkward time. I should be able to easily marquee select only vertices, edges, or faces. This should be easy to do with a hotkey without having to resort to the slow vertex, edge, or face mode nonsense that Probuilder uses. Additionally, the fact that you can't start a marquee select on top of a brush (it will select a face instead) is a slight annoyance.
    • Also, It's fairly frustrating that the entire wireframe of the brush is shown and selectable by default. Instead if I need to select through my model I should just be able to click on the wireframe mode button you already have.
    • Being able to extrude multiple faces at once would be great. Preferably have an option for individual extrude vs extruding as a group.
    • It would be awesome to have a preferences menu (ala Probuilder) to change things like the size of edges/vertices and their color, along with other relevant options. Currently I think the thickness of edges are too wide and the color is too dark, but obviously this is subjective. Being able to tweak this for myself would let me see my models easier and make editing them more enjoyable. Right now I deselect the brush so I can actually see what it looks like.
    • Texturing tools are pretty nice but could be improved, especially for anything curved. Trying to get the textures on each face lined up for even the default generated sphere is like pulling teeth. The G key is pretty awesome, but it isn't quite precise enough to cover every situation. A full on UV editor like Probuilder would be ideal for these situations but a little more complex of course. Maybe there is some in-between tool you could create for aligning textures in these more complicated scenarios without having to create a UV editor, although having one would give you feature parity. It would also be nice if the generated sphere's texture was aligned by default.
    • RealtimeCSG really needs a more stable and reliable grid snapping system. It's almost perfect now, but one of the biggest sticking points I run into when I design levels is when parts of my brushes randomly start drifting off the grid. Compensating for one brush off the grid messes with all of the brushes touching it and makes for a bad time, so I think ensuring this never happens is a big priority.
      • Unfortunately I don't really have a ton of examples for you to replicate and bugfix. All I can say is that in any non-trivial scene I almost always run into this issue multiple times. Sometimes it seems like random stuff causes it, like an extrapolated surface snaps slightly off the the grid, so I have to make a new brush in the same shape the extrapolation would be in to get around this. Having some way to force resnap a vertex, edge, face, or brush to the grid would be a godsend, because currently we can't edit their locations manually (well except for brushes). Edit: So I was digging around the documentation and it looks like this functionality does exist. For anyone curious you have to press control+end to snap to the grid. I'll have to use this and see if it helps me get around these issues. Edit (follow up): Yes, this indeed is the godsend of a feature I needed. However, it would still be ideal if everything always kept itself perfectly snapped to the grid without me having to go back and "ctrl+end" everything until all of the little cracks between my models are gone. For example, I was just making a staircase and when looking at it I noticed about half of the surfaces between my individual stairs had very small gaps that caused what looked like a small white line on the staircase texture. I had to go in and "ctrl+end" all of the surfaces that should have been touching. Luckily it was pretty easy, but I assume there must be some way to automate this and avoid having to do it manually.
    • One of the worst bugs to work around is when surfaces randomly get broken up into triangles when I move them and I have no way to remove edges. It often times happens in situations when I am moving an entire face and there is no way the surface would need to be broken up. Either having some tool to eliminate edges across a flat surface or bugfixes for these types of situations would be ideal. I usually end up having to recreate the brush to get around this which is quite annoying and slow.
    • An option to set the pivot of the model either manually or to the center of its bounding box by default would be awesome. Edit (again): Yeah this one looks it is also a feature already. Again, check out the documentation and ctrl+f for "pivot" to learn about it. I'm happy to say RealtimeCSG has both manual pivot adjustment and an automatic recenter option.
    • When you create prefabs of grouped brushes the pivot is off by the distance of where you created it to the world origin, which makes dragging them in a pain, and fixing it on an existing prefab is an even bigger pain. This one is very easy to replicate. Prefabs for groups of brushes are probably my favorite thing about RealtimeCSG, so if I had to pick one thing for you to do out of this list it would be fix this.
    • I still have the same performance issues from earlier in this thread that I can't seem to get rid of. This could just be my setup, although I have tried many things to get rid of it. I have to note that Probuilder doesn't have these issues unless I'm doing a heavy operation, which is acceptable, where as my framerate in editor is terrible as long as RealtimeCSG is activated at all. This is more annoying than tool-breaking, but going from the geo tools in UE4 running at 144hz on my monitor to 20-30 frames with RealtimeCSG in Unity is a night and day difference in enjoyment of level design.
    • This is a small nitpick, but could the extrude tool instantly switch me back to mesh mode when I release the mouse button? Currently we have to press enter and it's sort of annoying because if I wanted to change how far out I want to extrude I could do so easily in mesh mode, I don't need to be left in generate mode when I release my mouse. Again, another good one for the preference menu.
    • Extruding in certain situations can be broken like this:

    • And of course in-game editing is still high up on my list of requested features but you already knew that. However, just consider that if RealtimeCSG has this functionality then it will be the only tool that would allow players to create levels for games made with Unity. As it stands the possibility of user created content is quite poor for Unity games. It's obvious that giving these tools to the community of a game adds greatly to its value/longevity (e.g. source engine games), which is something I think a lot of developers would want and in turn would help you out!

    Anyways, I'm sure that's more than enough for now! ;)

    Thanks again for making such an awesome tool!
     
    Last edited: Jun 30, 2017
    tapawafo likes this.
  28. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Excellent feedback! Thanks!
    (Sorry for the late reply but I've been travelling and haven't had the time, or, frankly, good enough internet to reply until now)

    Allright, I guess I should check out UE4's geometry tools then, thanks for the suggestion

    Now I'm confused ... there already is a cylinder brush generator? Is there some problem with it? There is already a ticket for a ramp and stairs generator , I guess I should give it a higher priority, and considere more generators as well

    Do you mean subdivide surfaces, as in, being able to create new edges/vertices on a mesh?
    or "subdivision surfaces", the modeling technique?

    Can you elaborate with what you mean with selecting 'in a mirrored way'?
    I can imagine a mechanism where you basically mirror all brushes under a gameobject over some user defined plane (like ticket 182), is that what you mean?

    Well you don't need to select all vertices to select a face; you can just click on the center point
    click on it while holding control and you add a face to your selection.
    Hotkeys are getting increasingly hard to do because so many keys on the keyboard are already being used for something by either unity or realtime-CSG, but I'll look into that

    .. I'm confused, can you rephrase what you're trying to say?
    What is the alternative to having brushes selectable by default? Are you suggesting I show only part of the brushes' wireframe? Why? And what for?
    Also I'm not sure what you meant with clicking through a model to click on a button

    That one is high on my todo list, hopefully it won't be long before I implement that

    Ok. The wireframe is thick to make sure it's visible and doesn't get lost in the noise of the level, but I'll see if I can make this tweakable in a preference menu. There already is a preference menu for keyboard shortcuts, in case you didn't know.

    The problem with the sphere is that it's basically mathematically impossibility for its textures to line up everywhere ..
    The G-key texture smearing isn't so much impricise, but it's the limitations of mapping a 2D texture on a 3D surface which is the problem. An UV editor window is definitely on my todo list, hopefully I'll get to that soon


    Hmm, okay, I guess I'll have to add some stuff to snap vertices to a very tiny grid to avoid drift.
    Drift is, unfortunately, a natural consequence of storing numbers with infinite precision into a finite amount of bits.
    It might surprise you, but (1/3) * 3 is not 1 on computers .. it's 0.9999999999999999

    Yeah I agree, the drift should not happen in the first place, I'll look into this .. thanks for letting me know, I wasn't aware of this issue at all
    I'm kind of surprised you couldn't find the snap to grid? It's right here:
    snaptogrid.png

    If you hold your mouse cursor above the button, the tooltip would've told you the shortcut ..


    That's not a bug! That's a feature! :)
    What happens here is that not all vertices on a polygon lie on the same plane anymore, so it gets split in such a way to make sure that the shape remains convex. If that didn't happen the shape would've been invalid and rejected.
    I guess drift is an issue here, with vertices being slightly off, so it might make sense to have some sort of tolerance and snap vertices back to the plane in some situations. I definitely agree that it should be made possible to merge the surfaces back together again by removing an edge. Again, thanks for letting me know this because I didn't realize that this was such a problem!


    :)
    I'm considering making this an explicit mode somewhere, since I suppose it's kind of hidden away right now

    The same pivot as mentioned in the previous item can be moved to fix this

    And this is like this in the latest version of realtime-CSG? Also, considering you mention framerate, are you talking about performance while running your game in play mode in the editor?

    I'm actually considering making the extruded surface a type of component so it can still be edited after being deselected. The idea is that you'll be able to keep editing the 2d surface, and the extruded path, forever. The extruded path would allow for multiple points + curves. A button / hotkey would allow you to change this into a generic brush
    It might make sense to make this an option however, as I can see how you wouldn't always want this behaviour

    Ok, that's kind of weird. Not sure how that is even possible .. could you sent me a scene with that pencil shape brush in it so I can inspect it? Thanks

    Yeah I know, it's the number one requested feature by now ;p
    Its just ... I need a good API for runtime support, and I need to move a lot of code around to make this happen.
    Next to that, I'd need to support lots of different platform, and every new platform would add additional headaches and slow down development. Its definitely something I want and need to do, but I prefer to get other important things out of the way first since doing it the other way around would take more time ..

    And thank you for giving me this valuable feedback!
     
    PartyBoat and tapawafo like this.
  29. PartyBoat

    PartyBoat

    Joined:
    Oct 21, 2012
    Posts:
    97
    Whoops! My bad, I meant to write "capsule" :p
    I'd say for the generators though, that stairs are by far the most helpful (especially curved), the others save a couple of seconds and are mostly just a bonus, stair generators actually save a lot of time.

    Yeah I meant adding new edges/verts. It would be especially useful for low-poly quake-style caves and terrain. For example, I could do something like this to a cube or any individual surface (and you can set the number of subdivisions):



    Yep, that ticket is it.

    Sorry, I wasn't very clear on that one. Regular ol' click to select works great! I'm purely talking about multiple selection techniques like marquee (aka box) selection. Holding down control and clicking on surfaces one at a time works fine, that's what I do now. A nice improvement would be if I could click and drag over all of the faces I want in order to select/deselect them. Currently box select will only really work on vertices (and then by selecting connecting vertices you can select an edge and so on). Most of the time doing these big grouped selections I've found I just want either vertices, or edges, or faces, not a combination. It's probably mostly I visual thing. I'm used to being able to box select over the face or edge itself to select it instead of having to think about where its vertices are and dragging over those. Play around with Blender or your favorite modeling software to see what I mean.

    Yeah I see your point on shortcuts. Maybe this could be a little button then? Or maybe you can only box select whatever type of thing you have currently selected? Like if I click on a face then I drag to select I will only be able to select/deselect more faces? Idk, but I'm sure there is a way to fit it in.

    Yes. So for example, in blender you have the option to have your model in wireframe or solid mode (you basically already have a wireframe toggle button that could work for this purpose if needed). If you box select the top two vertices of a cube it looks like this:



    But when you put the model into wireframe mode (see below) notice how you select the back vertex as well.



    Currently, it's like RealtimeCSG is in wireframe mode only. This can lead to a lot of accidental selections, but it is also genuinely useful not to show hidden faces when you are trying to select multiple things at once and you don't want to "select through" the model and select things behind the side you are working on.

    Here is an example of how things get a little busy when I'm working with stairs. It would simply make it easier for me to work with and see the model if I could toggle off all those extra edges, verts, and faces (the green dots). For example, if I was trying to box select all of the top faces of each step, and I do it from the angle shown in the picture I end up selecting all of that stuff on the other side of the model. So I have to rotate the model to where I could only select what I want. You end up playing this game of rotating until you can box select only what you want and at that point selecting each surface one at a time is faster (but it shouldn't be!). Imagine a staircase much longer than this (or something equally complex) and you can see why more precise selection tools might be beneficial. I say shamelessly ripoff the selection techniques from other modeling applications like Blender/Maya because they work well and it's what people are familiar with (not the hotkeys, but how they function).



    Actually, I take it back, the line thickness itself is probably fine. I realized this might have more to do with the above when edges from the other side of the mesh sort of "double up" and make things hard to read. You can kind of see it in the picture of my stairs above where those edges are getting close to each other.

    Good point. Well I guess I'll just request then that the textures be as aligned as they can be by default to save time. :)

    Yeah as long as it's close to something like the BSP tools in UE4 then I would be eternally grateful. While I was evaluating level design tools I ended up creating the same small level in multiple systems and I prefer RealtimeCSG in almost every way except for this and stair generators. With the UE4 stuff I don't remember any drift happening at all. I don't know what kind of magic they work over there but at least we know it's a solvable problem!

    :eek: Yeah I feel kind of dumb now... I guess I never noticed that panel while mesh editing lol.

    Ahh, I didn't think about how the individual vertices of a face might have drifted from each other! I bet I could snap the surface/verts to the grid in the future to fix this!

    Yep that works! I suggest putting this into an FAQ or common problems section of the documentation because this functionality is sort of surprising when you first run into it and the fix is potentially non-obvious (at least for me haha). Also maybe the pivot could be placed at the center by default when you group the brushes with Ctrl+G instead of at (0, 0, 0) so this is avoided?

    Yep 1.410. Also yes, I'm only talking about editor viewport framerate, my in-game framerate (play in editor or standalone) is completely unaffected. That's why I say it's more annoying than anything, just means when I level design it isn't buttery smooth.

    If it helps at all this might be a Unity editor-GUI related issue, because I noticed the same thing when I select a camera and the little "camera preview" window is being drawn. Although if nobody else has experienced this then it's pretty strange. I've tried reinstalling Unity, making a blank project with a fresh copy of RealtimeCSG, etc.

    All you need to do is create a cylinder with radial caps, drag the center vertex straight up, and then attempt to extrude any of the faces of the cone. If you can't replicate it I can send the scene but for now I need to go to bed.

    Fair enough!

    Thanks for reading it all! RealtimeCSG freakin' rocks and so does the support!
     
    Last edited: Jul 3, 2017
    tapawafo likes this.
  30. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    I just came back from vacation & rather jet-lagged ;p
    I'll look into everyone's comments and requests in the next couple of days (received a lot of messages through lots of different communication channels)
    sorry for the delay!
     
  31. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Just wanted to show what I'm working on right now, a linear stairs brush!
    stairs.gif
    It still needs a bit of tweaking, but I should be able to release it within the next couple of days

    @PartyBoat I'll reply to your message tomorrow (it's late here), I haven't forgotten! sorry for the delay
     
  32. PartyBoat

    PartyBoat

    Joined:
    Oct 21, 2012
    Posts:
    97
    Looks awesome!! Actually, I'm on vacation right now myself, so take your time haha!
     
    logicalerror likes this.
  33. LogicalError-Unity3D

    LogicalError-Unity3D

    Unity Technologies

    Joined:
    Aug 7, 2015
    Posts:
    58
    Well as you can see I'm working on stair generators, so realtime-CSG should have those soon :)


    Right, this is kind of tricky since brushes still need to be convex, but I'll take a look at it

    Drag selection would be useful I agree. Also would be useful to have special filtering methods for selection.
    Hmm .. this is making me consider having a special selection mode(s) .. might need an UI overhaul though.
    I have to think about this for a bit


     
  34. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    I just released version 1.411 on the update site , and I also submitted it to the asset store (which can take a day to a week for it to appear there).
    This version has the new linear stairs generator! It's still a bit quirky at times, but this will be improved upon over time

    linear_stairs.gif

    (I'll update the demo version within the next couple of days)
     
    doq likes this.
  35. Catonovato

    Catonovato

    Joined:
    Mar 24, 2014
    Posts:
    5

    THANK YOU! Couldn't have come at a better time.
     
  36. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Uh, you're welcome I guess :p
    Starting a new project I suppose?
     
  37. tapawafo

    tapawafo

    Joined:
    Jul 25, 2016
    Posts:
    170
    Hello!

    I seem to be still experiencing the 'missing faces' issue described earlier in this thread that occurs when using spheres/hemispheres that intersect.

    Here is two spheres intersecting: https://prnt.sc/fwz4ky

    Same model with one sphere moved out of the other: https://prnt.sc/fwz4o8

    I experienced this before with older versions, but I am now on 1.410 and it is still happening. It happens even with spheres/hemispheres with low side counts.

    Any ideas?

    Thanks.
     
  38. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Hi @matteumayo, I took a look at it and I have a fix ready, just need to finish something else and I'll release it in the next version :)
     
    tapawafo likes this.
  39. tapawafo

    tapawafo

    Joined:
    Jul 25, 2016
    Posts:
    170
    Wow, you're fast! That's great to hear, thank you. :)
     
  40. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Version 1.412 has just been released!
    • Rendering the visible parts of a model is now optional and can be changed in the bottom right corner of the scene view
    • All collider surfaces will now be shown when "Show Collider flags" is toggled in the bottom right corner of the scene view
      [Wanted to put in fancy animated gif, but Unity thinks you people can't handle it's size! If you're interested you can look at it here]
    • Models with more than 64k vertices now generate multiple meshes (instead of failing)
    • Model will have one unified collision mesh
    • Some in scene GUI performance improvements (using IMGUI layouts is apparently slooooow)
    • Some CSG performance improvements on large scenes
    • Fixed issue with triangles dissappearing when intersecting multiple complicated brushes (@matteumayo !)
    • Fixed issue with "[generated-meshes]" objects appearing in scene after returning from play-mode
    • Fixed shouldn't be able to select brushes that are in an layer that was turned off
    • Fixed helper surface being rendered from models that are in an layer that was turned off
    • Fixed issue with scene immediately being marked as modified on load
    • Fixed issue with raycasting math breaking on infinitely thin triangles that where created in the CSG process (selection should be more reliable now on large brushes)
     
    Last edited: Jul 24, 2017
    ravey_451 and tapawafo like this.
  41. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    @TheSpecialDuckling If you're in object mode, it'll only show the helper window if you select a brush. If you go to generate, for instance, you'll see a helper window
     
  42. LogicalError-Unity3D

    LogicalError-Unity3D

    Unity Technologies

    Joined:
    Aug 7, 2015
    Posts:
    58
  43. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Hi, I just released version 1.413 on the update site

    Fixed the following issues:
    • Extruded surfaces starting in the wrong location (even when extruding from on a flat surface)
    • Extruding surface not placed correctly when not axis aligned in all 3 directions (fixes the extrusion on a pencil shape thing @PartyBoat !)
    • Extruding surfaces would sometimes not do anything when dragging the surface outward (accidentally introduced in 1.412)
    • Renaming any object was not possible due to (accidentally) calling GameObjectUtility.SetStaticEditorFlags every frame on a single object
    • The "Update lightmap UVs" button was placed incorrectly
    Known issue:
    • The experimental brush "Contents" part is temporarily removed from this version since it's currently broken, this will be brought back (in some form or another) in a subsequent version.

    I'm currently working on improving some low level code, and this takes a while.. This will make the code simpler and easier for me to maintain, allow for faster performance, lays the groundwork for a better editor API (and later runtime API), and will make it possible to do things like different models being able to interact with other models.
    This means my releases are at a bit slower pace than before, but don't worry, I'm still at it!
     
    ravey_451, tapawafo and doq like this.
  44. N00MKRAD

    N00MKRAD

    Joined:
    Dec 31, 2013
    Posts:
    210
    Hey there.

    Any idea how to fix light leaking through my model?



    The corridor is a sub. brush placed in a big add. one.
    Light is leaking through the upper left edge.
     
  45. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    Hi @Ju_M , you can set your normal bias to 0 and this will go away
    the normal bias will move polygons in the lightmap stage in the opposite direction of it's normal a bit to help avoid shadow achne, unfortunately it can also cause leaks on concave corners :-/
     
  46. LogicalError-Unity3D

    LogicalError-Unity3D

    Unity Technologies

    Joined:
    Aug 7, 2015
    Posts:
    58
    Just a small brief update on Realtime-CSG, I'm still working on improving some of the low level code of Realtime-CSG.

    As I mentioned before, this work will allow me to simplify the code and will make it easier to add new functionality and increase quality. I've already done a ton of work and already doubled performance of the CSG algorithm, which is a nice bonus. I should be able to show / release something new 'soon'.
     
    N00MKRAD, tapawafo, doq and 1 other person like this.
  47. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207
    And now for something completely different..

    As I mentioned before, I've been working on some low level code. Working on this code is tedious because the whole topology of a mesh might make perfect sense when you look at it in something that can render it on screen, but when you're coding all you see is numbers. You can't really look at the mesh in Unity because, for instance, something is crashing or preventing a mesh from being rendered for some reason.
    Before I would just draw out the vertices, edges and polygons on paper to try to make sense of it all, and this is a very slow process.
    So I finally bit the bullet and wrote some debug code to spit out html pages with svg for rendering the polygons.
    This way I can just create some snapshots of the mesh as it's being worked on by all kinds of algorithms and allows me to quickly see what is going on.
    This should speed things up considerably ;)

    csg-debugging.gif

    I'm currently working on improving the mesh quality, removing all kinds of unnecessary vertices in the meshes.
    I hoped to be done with this already, but I encountered several edge cases that still need to be handled.
    I'm close though!
     
    xVergilx, tapawafo, doq and 1 other person like this.
  48. 2dgame

    2dgame

    Joined:
    Nov 24, 2014
    Posts:
    83
    My body is ready!
     
    tapawafo and logicalerror like this.
  49. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    purchased! Keep up the good work!
     
  50. logicalerror

    logicalerror

    Joined:
    Jan 2, 2013
    Posts:
    207