Geometry Editor 2.0 suggestion thread

Geometry Editor 2.0 is going to happen , this thread is a central place to post your suggestion - this thread is not for people who want to debate about whether Geometry Editor 2.0 is a waste of time or not. With that said - what do you really want? Be as detail as you want about any features or workflow!

I created a mockup of how the GUI could look like, its pretty straight forward. You can select vertices,edges,poly,mesh,group. There’s also workplane, world/local space action center. Geometry Editor 2.0 is on the left, with a bunch of modeling tools in left side, and a tool properties on the right. One thing though I move the existing brush tool in UE4 into Geometry Editor 2.0. Tools i’d like to see ,which are heavily base on Source Engine 2.o hammer editor workflow/UI. The new Hammer is a polygonal modeling app within Source 2. Read about that here: Level Design - Valve Developer Community

Here’s the Geometry Editor 2.0 mock up:

  1. Extrude - Select Polygon hold Shift + translate
  2. Inset group - Select a bunch of polygons ,hold shift with scale tool with global action center turn on, scale inward to quickly inset the group
  3. Inset local - Select one or more polygons, hold shift with scale tool with local action center turn on, scale inward to quickly inset locally.
  4. Creating a new brush(i.e. box) should automatically be created on top of a existing brush(no need to press END key, only applies to the perspective view):


  1. Boolean operation - subtraction,intersection,union for brush and polygonal mesh.
  2. Revolve tool
  3. Bevel tool(bevel edge,point,poly). For poly bevel, LMB = extrusion,MMB = inset . Most of groups of polygons.
  4. Thicken tool, for create walls really quick.
  5. Push/Pull tool ala SketchUp:

being able to select ring,loop,etc would be handy. hotkeys and UI. double click on edge to select loop.

  1. Pivot tool - used to change the pivot of a mesh. Insert key ala Maya
  2. Freeze Transform, zeros out X,Y,Z coordinate to the origin(0,0,0)
  3. Connect tool, depending on the selection mode(i.e. vertices,edges,polygons.) Select 2 vertice, run Connect will create a edge between them. Select 2 edges , run Connect will create a perpendicular edge between them. Select a single edge, will loop slice.
  4. Repeat Last command
  5. Changing Grid space with hotkey(i.e. and ])
  6. Hard/Soft edges ala Maya
  7. Right Click context menu gear toward modelling
  8. Quick Duplication - Select mesh , turn on translate hold shift, drag to duplicate :wink:
  9. Rectangle Selection
  10. Lasso Selection
  11. Instancing
  12. Support Ngon, quads,triangle
  13. Merging mesh
  14. Separating mesh
  15. Creating material base on polygon selection
  16. UV tools.
  17. Dissolve Edge - select edge press backspace
  18. Bridge tool ala Source Engine 2 hammer with twist option.
  19. Subdivide - Ala modo Catmall clark …not asking for subdivison surface here.

I was able to model this in Source 2 hammer(I’d love to do the same thing with Geometry Editor 2.0!):


Being able to create or place geometry via animation is always nice… presuming it doesn’t already. <— new guy. :slight_smile:

The ability to Fit or Tile Material to a face of the mesh/geometry/brush would be nice.

If the new geometry tool provides a good way to assign UVs inside the editor I would consider it mission accomplished! :slight_smile:

All I need is geometry to be a bit less taxing on the system.

Thanks for starting the thread!

~ Jason

Thanks, SonKim, for combining these all in one place. It’s certainly a lot easier to get a look at :slight_smile: As mentioned in JoeWintergreen’s post, we don’t currently have a timeline for Geometry 2.0, however, this helps us to better understand what’s important to you all when approaching future changes to geometry tools.

Thanks again! :cool:

Pretty much agree with everyones ideas in the thread, there’s no need to change the existing 3D artist / production workflow but just offering some of us old bsp farts the choice to use and texture simple geometry would be great :stuck_out_tongue: valve seems to have already implemented this in the new Hammer and you would be quite surprised with what is able to be achieved with that old way of doing things.

Oh yes I remember asking if Epic Games can include geometry for decals in Unreal Engine 4 because I saw it in Source 2.

Here is the topic I made like months ago.

I would like to see that in Unreal Engine 4.

Yeah ideas are great really. But the most important thing for me is the performance. Modifying the brushes and wait for them to happen is a waste of time while working with bsp. A massive improvement on performance is a must for me.

Icing on the cake, but this feature would be extremely useful within UE4 Geometry Editor 2.0. MatchPhoto:

Haven’t played with BSP in ages so I’m outa touch a bit on the subject, but I’ve never heard of editing bsp brushes as being that dif than poly editing in any 3d software. I’ve never encountered performance issues when creating new bsp brushes or had to wait for them to ‘happen’? This is alien to me… what game engine or program is like this that you used?

I’m talking about UE4. In some maps, working with bsp is… “ok”. But in most of my maps; for example I created a bsp and modified it’s height, width or put texture. But then I hit ctrl+Z and I wait for couple of minutes, most of the time more. So I quit working with them. I’m putting thousands of rocks as foilage, detailed meshes from Maya but the system can’t handle a couple of bsp brushes’ histories.

I found that there are other people who suffer the same. Simply, bsp editing maybe very system specific thing which is bad for it. I don’t know.

Yea we really need a new workflow for BSP or something to replace it. As a artist myself I always build BSP first to get the feel and size of my level inside UE4 but with how slow it is in UE4 to just build a basic level/scene it gets annoying. Hammer 2 looks great with them tools but dont have live playing unlike UE4 :slight_smile:

I cant wait to work with the new BSP tools when they come out!

I think its quite fascinating how quickly people are able to throw a good tool away. There are so many people complaining about this tool even getting a little attention and i don’t quite understand why. CSG is one of the best tools we have to date, a well developed CSG tool set is a essential one, especially for game development. Games still use csg. infact it’s quite normal for an engine to still support and use CSG. CSG is far from dead.

CSG have amazing qualities. for example;
static lighting’s light-maps are quickly allocated to CSG brushes, with volume intersections it can quickly choose which object do not cast shadows onto a surface.

Dynamic lighting needs a good occlusion system to work well, something like portals, where they separate the scene in to large chunks (portal zones) and they are connected by doorway portals. this allows the render-er to skip entire chunks of geometry that is not only off screen but occluded by other objects in the foreground. This is vastly complicated if not impossible without CSG.

BSP is a way of optimizing a static scene by splitting the geometry into a recursive hierarchy of bsp leaves forming a bsp tree, the bsp can be used to optimize collisions, occlusion, and many other calculations by excluding vast regions of scene that is irrelevant to the scene being rendered. Performance gained using bsp are exponential.

  • Necessities

    • Convex, Intersecting Co-planar faced geometry.

    • Concave can be made with multiple convex solids.

  • Basics

    • Distance between point and plane. get whether or not a point is in-front or behind a plane.

      • Distance between point A and plane B =

        • (Bd – Bnx * Ax – Bny * Ay – Bnz * Az)

    • Equation for ray plane intersection get the intersection point of a line in 3d space with a plane

      • Intersection of ray AB with plane C:

        • u = (-Cnx * Ax – Cny * Ay – Cnz * Az + d) / (-Cnx * (Ax – Bx) – Cny * (Ay–By) – Cnz * (Az – Bz))

        • x = Ax + (Bx-Ax) * u

        • y = Ay + (By-Ay) * u

        • z = Az + (Bz-Az) * u

    • Point/Sphere-Solid Intersection

      • Check if a point/sphere exist behind every face of the solid, if it does it lies in side the solid.

    • Ray-Solid Intersection

      • If a ray’s intersection point and any of the planes in the solid are behind all other planes, the ray is intersecting solid.

    • Solid-Solid Intersection

      • If any vertex of either solid is within the other solid, the solids intersect

      • If any of the edge of one solid intersect the other solid, the solids intersect

    • Find the silhouette of a solid from a point or vector

      • Each edge lies between two face. If one face points towards the point, and theother points away, that edge is part of the outline. The silhouette of a convexobject is always convex.

    • Extrude solid from point or vector

      • Find the silhouette of the solid, then extrude away from the point or along thevector. This creates a solid that defines the shadow volume of the original solid.If a point or solid is within this volume, that object is completely occludedby the original solid. These kinds of extrusions are used frequently in lighting andportal occlusion.

    • Solid Slicing

      • A solid can be sliced in half with an arbitrary plane. This is used frequently inportal and BSP occlusion systems.

    • Texture mapping

      • u = (unx * x + uny * y + unz * z + ud)

      • v = (vnx * x + vny * y + vnz * z + vd)

      • Can be done real-time. generated texture mapping axes per face, can be user controlled with params like scale, rotation, position, shearing.

    • Linear and Circular extrude.

    • Union, Intersection, Difference.

Actually, the developers have said before that BSP gives less performance than using Static Meshes. The only benefits to it is that it’s already in the engine and you don’t have to deal with lightmap UV’s.

CSG* (i guess tomato tomoto but really its csg with bsp) and They are generally right, static meshes are faster than csg per triangle.

however with the benefits of what i said, true dynamic lighting is a huge possibility with csg, imo.

There is no one fits all tool. If there were we would be using it. A combination of CSG and static meshes is the best way to ensure a properly optimized scene.

People need to stop with the “CSG is significantly slower than Static Meshes” angle. It’s true in current (probably all?) versions of Unreal, but

-that is because optimisation of CSG has never been prioritised
-unless you’re on mobile, you’re never bottlenecked at csg anyway
-in a well-designed CSG solution, performance issues would likely be outweighed by increased efficiency/agency to level designers in most cases

My moved post from BSP & Volumes update & workflow request (Based on my experience in engines) - Feedback for Unreal Engine team - Unreal Engine Forums
BSP & Volumes update & workflow request (Based on my experience in engines):

After 6 years more or less making maps in more than 10 different game engines and use BSP tools to create prototypes, make complete or semi complete maps (minus details), this is my complete list of ideas and thinks for update the UE4 BSP tools and workflow:

Create & Move:
Texture Edit & Vertex: (You can select all brush or individual faces)
Brush mods: (…and paths, clip tools, triangulate, optimize…)

*Move brush faces, change the size and move faces without select the faces of the brush.


  1. Move from “Place” tab the BSP & Volumes tabs to “Geometry Editing”.

  2. In “Geometry Editing” create sub tabs like in the “Landscape” tab. (At enter in the “Geometry Editing” tab the viewport editor controls change to other to work better with BSP)
    2.1. General: To select the geometry/shape to place & select the type: (Blocking Volume, GSC Add, GSC Subs, Audio…). Example: Cone + Blocking Volume. (You can change later the type of volume)
    2.1.1. If for example you like create a Cylinder or Cone you can select the number of faces from 3 to x.
    2.2. Edit mode: Here you can translate vertex, move faces, select individual faces and move or rotate or scale (Advanced Edit).
    2.4. UV & Lightmap mode: Here you can edit the lightmaps of the BSP and the UV of the faces. (Rotate, Translate)

  3. Change the Volumes wireframe to Volumes with faces to have transparent textures (You can turn on/off this from project settings or editor or selected actor/BSP)


  • In the edit BSP tab change to General BSP edit and add sub tabs like in the terrain editor to switch to (GENERAL|EDIT|MATERIAL)

  • General Mode:

  • Move, rotate, scale.

  • Move/Scale faces.

  • Extrude.

  • Create shapes

  • Free shape mode.

  • Edit Mode:

  • You can edit the vertex.

  • Move vertex.

  • Move faces.

  • Rotate faces.

  • Scale faces.

  • Material Mode:

  • You can assign the brush material.

  • Assign the faces material.

  • You can select the faces to assign color.

  • Paint of vertex materials.

  • Setup the uv direction, rotation, scale, stretch, shift, tile in individual, or all faces of brush of materials.

  • Setup the uv direction, rotation, scale, stretch, shift, tile in individual, or all faces of brush of lightmap.

  • Edit lightmap. (Full or individual faces)

  • Edit materials. (Full or individual faces)

Main objetive:

  • Faster edition.
  • Realtime edit.
  • Faster controls.
  • Basic structure of maps, levels, houses, models… and triggers, volumes, zones and collisions.
  • To prototype maps or ideas. (And for use of the programmers).
  • BSP edit SPEED BEFORE of features & tools.


  • Select the default brush (triangle, cube, cone…)
  • Editable keys to edit BSP.
  • Box, Triangle, Plane, Cone, Curve, Torus, Cylinder, Pyramid, Sphere, path of curve and terrain (path are like a terrain but small enabling vertex edit and brush like in the terrain editor)
  • Collisions and brushes need faces no like now (you can see the collision what is in and what is out or back, because only see the wireframe)
  • Clip tool realtime with view
  • Improve the layout viewports.
  • Apply material to all faces of selected BSP brush or individual.
  • Hollow tool.
  • Change the number of faces of a shape. (3 to x)
  • Vertex, Faces, UV (Material & Lightmap)(By faces and brush) edit.
  • Change the default Blueprints name to Blueprint Logic and add Blueprint as prefab (the prefabs are explained here: Engine & Editor improvements needed - Feedback for Unreal Engine team - Unreal Engine Forums)
  • All already features in the editor. (Some features are repeated here or have been changed from the original ones).

Fast controls example:

  • With selected brush SpaceBar duplicate brush.
  • With selected brush BlackSpace remove brush.
  • Shift + Click select brush.
  • Drag with mouse to create brush.
  • With selected brush if drag in brush move the brush.
  • With selected brush if drag out brush scale the faces in that dir.
  • With selected brush press r to rotate, and esc to end.
  • With selected brush press w to scale, and esc to end.
  • With selected brush press e to extrude, and esc to end.
  • With selected brush if press v, change to vertex edit mode.
  • With selected brush if press g, change to general edit mode.
  • With selected brush if press f, change to face edit mode.
  • With selected brush if press c, change to material edit mode.
  • Press I invert the selection.
  • In viewport if press shift + tab change the view to next view cycle (A. Top, B. Side, C. Next Front), same keys to change view.

Plus you have csg doing this kind of carp

Thats a single box csg brush, converted to the static mesh you see next to it, both cloned once and rotated. after rotating and moving CSG brushes they add an insane amount of unnecessary geometry. (no vertex movement, purely moved as a whole and rotated as a whole.)

nothing is intersecting either.

No wonder csg is carp in ue4.

ALSO notice how the static meshes do not cull itself behind itself, there is clearly static mesh behind the wireframe, notice the csg ? nothing. Occlusion OP.GG

It’s not occluding, not that it could anyways since that surface would be visible in some part. Since the two boxes are touching it’s merged the surfaces together. When converted to static mesh, it’s not merged since it’s converting the original brushes.