A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by LogicalError-Unity3D, Aug 24, 2016.
For Unity it's 2017.3.1f1. I updated RTCSG just before importing it.
Any news on progress towards symmetry/mirror editing support?
Does this also happen to you when you start a new project? If not, can you create a small repro project for me? I can't seem to reproduce it here
I'm currently refactoring the code that builds CSG trees from all the brushes, making sure it's faster, more flexible, doesn't rely on any editor specific code (in order to be able to support runtime), and make sure it's testable (writing lots of automated tests this time around to help avoid regressions and ensure quality)
Once that's all done I'll move all the existing generators to become components, so that when, for instance, you've created a cylinder, it'll stay a 'cylinder' unless you specifically decide to turn it into an editable brush.
These two things combined will allow me to make things like
- repeater components that repeat everything in the hierarchy beneath it a specified times
- mirror components that repeat and mirror everything in the hierarchy beneath it over a specified plane
So in order to do that I need to get those other things out of the way first.
After that I'll finally be in a spot to churn out some new features again
I tested it just now and yes, it's still got unusual numbers. My snap settings are 0.0025 despite changing them to 1 in a previous project.
Do you get unusual numbers straight away? Or do you perform a particular operation?
When you tried it in a new project, was that without any other packages/assets installed?
FYI;the snap settings that are shown are actually the same unity snap settings that can be changed in Edit/Snap settings
Realtime CSG only changes those in the bottom tool bar, nowhere else .. so this is a bit confusing
The moment I import the package, yeah. I didn't do any operations prior. In the new project it was the only package present.
You're on 1.529 right? Do you have similar issues on older versions? I'm trying to figure out what could be causing this since I can't reproduce this locally
Actually the most recently updated version I have is 1.522. I may have though unfortunately my memory's not too good.
Ah, you know that you can download the latest version from https://realtimecsg.com/updates, right?
The asset store version is somewhat behind
Can you try on the latest version?
I was aware of its presence though I felt downloading it through Unity was more convenient.
Uh, slightly off-topic, but all evaluation versions are 404.
@N00MKRAD you're not the first to mention this, but I'm not seeing it on my end? can you check if your view of realtimecsg.com is cached perhaps? 1.529 should be the latest evaluation version
Huh, good point - it's stuck on 1.516.
This happens in any browser, will try VPNs and Tor now.
Update: The files are there, I managed to get a 1.529 package for 5.6.3 by changing the URL, though that doesn't work for 2017.3 or 2017.2.
Any chance to get a list of current URLs or a reupload on another hoster until the problem is fixed?
EDIT 2: Thankfully the folder can be viewed: https://realtimecsg.com/evaluation/
Oh man, all of this sounds sooo good
The possibilities that this will open.
Repeat, Mirror are cool, and I have plans to eventually add Bend, Deform, Inflate, Segment, "replace negative" (to easily round off inner corners, as well as the invert mode for outer corners), Bevel (just like in blender where you can tell how many segments you want) ...
I also started working on the logical extension of the spline deform I posted about earlier: the "4x4x4 freeform-deform" mod (just like the one from megafiers). I'm just having terrible performance issues with that one, but I think things will get easier once the API is done.
Btw: the update website works fine for me, shows 1.529 as latest (as of right now).
An update on my problem I was having. After messing with the snap settings of another project and cming back to CSG it seems the snapping has sorted itself out. It's now fine!
Sorry for being so quiet lately, but that simply because I'm so busy with the new stuff!
It's taking longer than I'd like, but I just want to make sure I'm doing things properly.
I'm almost at the point where I can start to move the old generators over to the new component based generator stuff
@Emerald_Eel_Entertainment that just is even weirder? I'm starting to suspect some sort of unity bug ...
I just released version 1.530, which has the following bugfixes:
Fixed rebuild always assuming that UVs need to be rebuild, even when auto-rebuild was turned off
Fixed texture coordinates not rotating correctly
Fixed materials not showing up correctly on models when the material wasn't saved yet (negative instanceID)
Fixed issue with texture coordinate generation not being correct due to axis in matrix being garbled
Is it possible to use shared materials with the exported model? I have a case where I'm using a custom (UBER) shader, but when exporting, RealtimeCSG embeds a new material into the model, with the Standard shader.
What I'm looking to do is to use the actual material, as is the case when assigning materials in Unity normally.
The only workaround I can find is to create a prefab out of the models and apply the material there. However, this would add a lot of hassle to the workflow, since I'd have to, for every model, perform this same operation.
Edit: I've found that I can just use the Unity Mesh export, which is a decent enough workaround it seems. It would still be useful to have the FBX functionality though if it's possible.
Update: Unity meshes saved as prefabs don't have the mesh data/filters attached with them. How am I supposed to use Unity Meshes? Only as child of the CSG model? Just realized, I asked about this before and your previous solution was to use FBX export!
Do you have any estimations when runtime support will be ready?
@matteumayo it's kind of hard to make this work in a generic way because unity loses a lot of information in between exporting and importing the fbx .. there's no way for me to actually put a reference to the original material in the fbx, so I'm not entirely sure this is even possible
@BornToMakeGames I'm hoping to have a beta version ready within the next couple of weeks, but it's hard to say when it's ready. I have to rewrite a lot of code so that it works at runtime and doesn't rely on any editor specific unity functionality, so I need to make sure I don't break things in the process
Hey! Question: is it possible to type in the X Y Z scale values of a brush in Object mode like you can in Generate mode?
Any news on the rewrite? Whats the status on it?
Also: Once the "permanently edittables" are done, do you think you'll implement CSG bending by splines? (Or maybe help me do it for you? haha )
edit: the current version has 2 small bugs to do with selection:
1) Middle-clicking CSG object doesn't work anymore (setting the camera center to a point).
2) When left clicking into a bunch of additive and subtractive objects, the selection-cycle starts from the wrong end. It selects the "deepest" block, and then goes backwards.
So here's the thing..
Most of the time I worked on Realtime-CSG the last couple of years was fighting the Unity Editor code. This was mostly because I misunderstood how the GUI/Undo code worked at first, basically went from prototype straight into production, and apparently if you don't do the GUI/Undo code "the Unity way" ™ it'll be extremely buggy and unpredictable. Instead of rewriting the GUI code I just bolted more stuff on top of it to try to fix issues. That strategy clearly didn't work and just made the code-base harder to work with.
So what I was working on lately was rewriting the entire front-end so that it works properly with GUI/Undo, where each piece is testable and separated for clarity. Next to that I was adding new stuff such as removing the restriction that one brush is a component, in fact it must always be a CSGBrush component. Removing this restriction would make it possible to create Cube, Cylinder, Stairs components that can always be re-edited without needing to delete the generated brushes and create a new one.I've also been working on a Mirror component that would mirror everything that's placed inside it in the hierarchy. It even allows mirrors of mirrors of mirrors. I started with implementing a mirror not because it's the most useful of all the new components I'd like to make, but because it's the most complicated one. If I can this to work properly, I can make anything with it.This all took a lot longer than I wanted since I ran into all kinds of edge cases that I hadn't considered. And I could've hacked things in, but that would just give me another mess to work with later. I figured if I do things properly, adding new features later would be easier.
The problem is that I've been working on this plugin for 4 years now, one year full time, 3 years while also having a full-time job at Unity. So for the last 3 years I've essentially had 2 jobs, and it's wearing me out. Sales where disappointing from the start, but have really reached new lows now that both SabreCSG and ProBuilder are free. Apparently nobody wants to spend anything on tools. Since joining Unity about 3 years ago, Unity had expressed an interest in purchasing Realtime-CSG. Unfortunately It was always "now is not the right time, we need to focus on something else at the moment". And, frankly, I've given up on waiting. I simply can't do both at the same time anymore. Realtime-CSG doesn't even come close to sustaining me, so I need to choose my job at Unity instead (which is not a bad alternative, frankly!).
If I had a way to keep working on Realtime-CSG I would take that option, but at the moment I don't. I'll probably work on it now and then, try to release this new version I started on, eventually. But I can't spend time on it like before.I feel sad, disappointed and depressed because of this.
I had so many ideas for Realtime-CSG and haven't even got close to where I wanted to take this. I wanted brushes, surfaces (Material + physicMaterial + other CSG specific settings), splines, 2d shapes to be assets that could, optionally, be saved in the project and be re-used between multiple components. Extrusion over a spline would be a combination of a spline asset and a 2d asset. each would have its own editor. The same spline for extrusion could be combined with a repeater over a spline that would repeat the contents of a repeater node. I wanted to be able to draw walls as lines and be able to edit those forever, and have stuff like randomizing bricks sticking out of the walls etc. so you could just pre-define what walls should look like, and then just draw them without them looking all the same. Same with floors & tiles sticking out. Eventually I wanted to be able to automate building facades, buildings and cities. All fully configurable and extendable so that it could be bend to the will of the user, so that the user always remains in full control, yet still be able to automate all the repetitive stuff.. I wanted to implement vertex coloring, multiple uv layers, sub-models (where you define an area in a CSG-tree to be a separate mesh), real-time lightmap UV generation, runtime-support.. I'm sure I can speed up the CSG algorithm at least another tenfold.. frankly, I had enough ideas to spend another 10 years on this.
In the end, all I can say is I'm sorry I'm letting you all down
I'll make sure it'll keep working with the latest versions of unity at least. It's still useful and usable in it's current state.
Beyond that, I don't have any plans at the moment.
Giving your post a "Like" was my only option, but it's the wrong expression. I wish you a good recovery, don't give up on your dreams in the long run. Step back, take a break. At this point attempting to sell it is what's making it feel like a job. If you are able to turn it into a casual hobby without pressure you will feel better and relieved. Your CSG algorithms are far ahead of SabreCSG and will probably stay that way for a while. I never thought of you as competition, just another awesome hero providing the world with my favorite type of tool. Don't ever change, I look up to you now, I hope to continue doing so a couple years from now.
I'm disappointed that you didn't receive more support from developers and Unity. Would never ask or expect that you work on this for years without proper income. Thanks for all the hard work!
Man that is pretty sad.
I really don't get why they chose pro builder...
I can only repeat what I said before:
It's just so hard to work with to get a simple room with a door and a window, and then horrible to edit later on.
While with csg tools it's super easy.
Unreal has csg tools as well, why does unity give us a worse alternative to blender instead of Realtime Csg?
I'm a little sad that I put in so much time into the mesh bending stuff, but I certainly know how you feel as well @LogicalError-Unity3D !
Doing it as a hobby instead of a job is the best thing to do now, I agree with that.
Think about how cool it would be to just have one of those features you want to have yourself. What things can you reasonably do? What do you actually *want* to implement?
Those are the questions you should ask yourself.
And if the answer is "none right now, I need some time off of this" then that's fine too! after all we are people, not machones, and the best work always comes from something your really want to do.
So, no pressure, do what you think is best for you!
I agree in full with the above 3 replies.
While a bit disappointing for all but also very understandable at the same time. Health comes first and stepping away or back from Realtime-CSG for a while, would, I think, do a lot of good in the long run.
Hoping you will feel better in a few months.
I really never use it. I just bought to support you. I undertand your point. Good luck.
Hi, just wanted to offer some condolences.
I hope Unity reconsiders. Probuilder is great for adjusting models in editor, but it's a sorry tool for level design compared to good CSG.
Damn. As someone who has been around since the beginning this is sad to see.
Best of luck at Unity and thanks for the great tool!
Maybe joining the Godot Engine project would work out for you. I don't know if they would be able to pay you but you might find it rewarding in other ways. They're working on adding CSG tools now:
One of my favorite tools for Unity, leagues better than probuilder. Sad to see you having to put it on the back burner logicalerror. I am still glad I bugged you to put out a trial version though! Not sure if it helped?
Have you considered making the existing version free and eventually releasing your improve version later? It would potentially provide more visibility to your work, especially if you convince Unity to sorta spot light it as a powerful free CSG tool. Donno just an idea.
Has anyone else had issues with collider generation? I'm not sure when it's started but it was present on LTS Unity 2017.4.3 at the very least, and it's still an issue with RTCSG 1.529 on 2018.2 beta - meshes won't generate colliders no matter the settings I try.
Luckily there's a workaround by going to the model after generation and ticking Generate Colliders within Unity's model import settings, however, this setting gets overwritten after exporting the model a subsequent time and so it's a minor hassle to workflow to have to go to each model and check this box.
Just wondering if anyone else has run into this or if it could be something withing my project only. I'll investigate further in that case.
Yep, in the normal edit mode you can't middle-click on the mesh to orbit around that point either. I guess that has to do with the missing collider as well?
@matteumayo no colliders are generated at all? do you see any errors in the console? Can you send me a repro?
@CrazeDevelopment If anything the trial version lowered sales, I'm really not sure why (could just be coincidence) .. but I've done a bad job at sales to be honest. Should've made more videos, articles etc. all of which would've taken time away from development .. both SabreCSG and ProBuilder being free kind of made it impossible to do this without putting loads of time into marketing, since people would just rather though it out with very basic tools rather than pay a couple of bucks for something better (I mean, in general, not trying to diss SabreCSG/ProBuilder). It's a very uphill battle against that attitude. I didn't start out working on Realtime-CSG to essentially become "a marketing person". I just wanted to build this vision I had what a level editor could be like.
I haven't decided yet what I'll do with realtime CSG or my CSG algorithm long term, I'm still kind of taking a break from it before I make any real decisions (I'll fix any big problems like the collision mesh thing in 2018.2 though, once I know what's going on) At the very least I'll make sure It'll keep working on the latest versions of Unity.
We used ProBuilder for a very long time, but after finding out about RealtimeCSG we can not even imagine going back to ProBuilder. After your May 30th message we were afraid of getting in trouble (we're using RealtimeCSG on a pretty big project) because of you possibly terminating support for RealtimeCSG, so we tried Sabre CSG, but it just doesn't come close and everyone on the team didn't get the results we were getting with Realtime CSG.
I just want to say we've been using RealtimeCSG for quite some time now and still are completely in love with it. It is for a big part of the team the main tool they work with every day. We honestly believe it is extremely powerful for lots of different things, so I can only hope Unity would consider implementing it as a part of their core features. Since it has very different functionality and results as ProBuilder, I believe they could easily exist together inside of Unity.
We don't understand why Unity chose for a polygon-based editing tool instead of a csg-based editing tool (like the Unreal BSP tools). If there is anything we can do to make Unity aware of this, please let us know.
Also, let me offer my help. It's the least I can do in return for how your tool has helped us. Just send me a PM if you need any help with promotion or creating any promotional assets!
@Geert I PM'd you
Just to be clear, I'm not planning on letting RealtimeCSG bitrot .. I will keep it working on the latest version of Unity, so if you're running into issues please let me know! (repros are very much appreciated)
I just wanted to echo what a lot of people on here have already said - Realtime CSG is leaps and bounds above Probuilder and you should be extremely proud of the product you have created. It is a pleasure to work with, it's fast and fluid, it lets me express the level ideas I want and iterate really well. Just building a simple interior with probuilder is a pain in the ass. If you want to move the door or add a window, good luck - if I want to work in that way, I'll just use Blender because the workflow is a lot smoother that way and it has ALL of the features I need in a 3d modeling package. Level design works MUCH better with CSG. Sabre CSG is something that I evaluated a long time ago but it just lacks a lot of the features that your product has.
Thank you very much for providing this great asset to us. Wishing you the best of luck in your future endeavors.
Yeah, this is my favorite level design tool. You did a great job. Too bad it wasn't selling enough to keep you going.
Just a question to all: How are you handling splats/details with this plugin? I've tried every painting app, but most of them don't suit my needs (or bug out on on the second UV map). Painting on UV1 (albedo/normal) is my current way to add some details, but it's a bit clumsy without decent tools.
After banging my head against the wall with ProBuilder's CSG tool i stumbled upon this plugin and just played with the trial. Your CSG is the best i have seen.
Is there a way to run your operations at run-time? i would pay for a lightweight CSG asset for a player modifiable world project i am working on - for example: animating cylindrical holes being dug into the ground (an intersection and subtraction to a new game object, which that is then animated).
You have some amazing code here, possibly the only thing that comes close is the new Godot CSG - so i really hope you continue to work on it for run-time operations.
Is there source code available in the full version?
Can I use this programatically? I am trying to integrate on my terrain editor
I ended up purchasing because this is the best CSG solution out there. Here's a preview of the progress I've made with run-time operations:
To do this i used pb_objects for the shape generation, and wrote a converter to BrushMesh so that they can be used with RealtimeCSG. This is running with around 1-4ms update times which is astounding. I still have some work to do yet, particularly around UV but i wanted to stress that this is a great product that id love to see developed further. If the author is interested in using any of this let me know and i'm happy to share.
Sorry for not responding to messages lately, the last couple of months have been kind of crazy with vacation mixed with needing to travel for work *a lot*. I've barely been home these months.
@morphinegames thanks for the kind words
@kaaJ , Realtime CSG generates MeshRenderers/MeshFilters/MeshColliders with the appropriate meshes and materials.
How splats are added/removed is very specific to whatever tool you use to generate them .. so I can't really comment on how they do or do not work.
Realtime CSG does not have built-in support for this unfortunately.
@Guedez depends on what you mean with 'programatically'? There is no runtime support, but in the editor there is an API that's available.. CSG itself is perfect for procedural geometry since you don't really need to care about geometry intersecting other geometry + being able to add holes where you want them trivially
@tarahugger the C# code is available in the full version, but not the native (C++) code which contains the algorithm itself. There's an API that communicates with the native code. (but you know this already since you purchased it!)
It's pretty cool that you managed to create a pb_object <-> realtimeCSG converter / make it work @ runtime
1-4ms actually is a lot slower than I would expect for a simple scene like that, I'm wondering what the bottleneck is ..?
I'd love to see what you did
As for using the editor dll @ runtime, strictly speaking this is not allowed .. but considering the circumstances I'll publicly say here that;
You're allowed to use realtime-CSG @ runtime as long as it's only used as part of a game, or as an in-game editor.
Anything besides that you'll need to talk to me about it first, and we'll work something out. I'll see if I can update the license about this.
I updated Realtime-CSG to version 1.531
(a couple of small fixes)
@logicalerror k, I've tried nearly all and most present problems. (most common problem: unable to draw on the UV2 directly, although UV2 works for splats).
When/if I find some spare time, I'll try to implement splatmaps for realtime-CSG myself. It's currently the only feature I'm really missing.
@kaaJ Since the UV2 channels are part of the meshes that are generated by Realtime-CSG then these will be overwritten every time they are updated .. so I can imagine that this will be tricky ..
I just updated realtime CSG to 1.532 .. I discovered that my build pipeline for the mac was broken, and it made RealtimeCSG not work on the mac in previous versions .. oops, sorry!
Yeah, that's the tricky part, I need to save positional info and remap it to the new UV's when they are updated.
Or I could go for projected decals that respond directly to surfaces made by realtime CSG, easier and extendable but comes with a performance cost. The biggest hurdle is free time. ;-)
Yeah, it might be tricky to remap things when the geometry changes .. might be better to use some sort of shape, detect what geometry intersects with it, and then project on to that geometry (by creating the uv coordinates)
I just released version 1.533
It has the following fixes
Deleting enough points from a brush so that it would no longer be a valid shape would delete the brush component, when it should have destroyed the GameObject (issue #253)
Fixed having surfaces with Receive and Cast toggled would not create a MeshRenderer that is ShadowOnly (issue #251)
Fixed having surfaces with Cast or Receive not toggled would not create a MeshRenderer that is Visible
Drag-duplicate would register two undo's, one for creation, one for movement .. this is now collapsed into one undo operation
Drag-duplicating a prefab will actually clone a prefab instance, instead of creating a copy of the contents of the prefab (issue #265)
I just released version 1.534
Fixed prefab API warnings in 2018.3 (issue #271)
Fixed csg objects not showing anything in prefab isolation mode (issue #270)
Fixed models in prefabs causing all kinds of errors and problems because prefab behavior has changed & you can't delete a gameobject in the scene anymore, and realtimecsg removes and creates gameobjects w/ MeshRenderers & MeshColliders on changes (issue #272)
Some render pipelines (like the HDRP) don't play nice with the default-diffuse material, which was used for rendering shadow only meshes.This has been changed to use the renderPipeline's default material when available (2017.2 and up), otherwise it'll use an Unlit material which seems to work on all renderpipelines. (issue #267)
Fixed errors in 2018.3 where it was complaining that shadow only meshrenderers do not have normals, which are required for "lightmapping"? These shadow-only meshrenderers are now always set to never be lightmap/reflection-probe static
Fixed when hovering over the surfaces section of a brush, in the inspector, showing the wrong tooltips
Renamed Object mode to "Place" mode
Renamed Mesh mode to "Edit" mode
Edit mode now has the ability to optionally select vertices/edges and surfaces using toggles (issue #252, suggestion by @PartyBoat )
Edit mode now has the ability to be able to select hidden surfaces (or not) with the rectangle selection, using a toggle (suggestion by @PartyBoat )
in the selection section of the helper window you can enable/disable vertex, edge or surface selection,
or enable/disable selecting hidden (backfaced) vertices/edges/surfaces