Announcement

Collapse
No announcement yet.

Is there a brush limit?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Is there a brush limit?

    If there is a limit for the maximum number of BSP brushes on a map, what is it? I have seen one map for UT2K4 that had over 1,000 of them, and I am just wondering how high you can go before the editor decides to put a stop to your progress. (The huge single player map I am working on has about 986 brushes.)

    #2
    I don't know what is the brush limits but if you have plenty of them that are similar you can always turn them into static mesh so you can cull them. I post that just in case you didn't know that.

    Comment


      #3
      There isn't exactly a set limit, but you will reach a point where it becomes very frustrating as the build times increase to insanely ludicrously long times and performance is seriously impacted.

      Comment


        #4
        Brushes are tessellated and AFAIK rendered as a whole. The idea for this engine version is to use the static meshes instead of brushes. Unfortunately these are the brushes that effectively culls the static meshes not otherwise so we have to use them anyway.

        Comment


          #5
          Thanks for the input, guys. I can now continue editing with confidence that the editor will not crash on me when I add the next brush.

          Comment


            #6
            Originally posted by mslaf View Post
            and AFAIK rendered as a whole. The idea for this engine version is to use the static meshes instead of brushes. Unfortunately these are the brushes that effectively culls the static meshes not otherwise so we have to use them anyway.
            I think I remember reading something that brushes aren't rendered as a whole brush. This is why you can apply the "RemoveSurface" material, which essentially doesn't render it. That being the case, then supports the notion that BSP can be partial rendered.

            Static meshes on the other hand are either completely rendered or not. Static meshes can cull other actors as well in the new engine, so if you build your map correctly, there is no reason why you couldn't use all static meshes and no BSP.

            To the OP, I think it's more important that you build your BSP with care as it's relatively easy to mess things up (compared to meshes).

            Comment


              #7
              Yea, I once move a corner the slightest bit and the whole brush, well, kind of exploded like the character models do from time to time

              Comment


                #8
                Originally posted by Odedge View Post
                so if you build your map correctly, there is no reason why you couldn't use all static meshes and no BSP.
                Performance reasons, only. The optimization based on meshes is still much worse that the optimization based on brushes. Don't know the technicalities of auto-culling feature, I assume it's a kind of ray casting routine but as far as I can see in case of meshes, it is very ineffective and also very difficult to predict. In geometry dense environment, brushes don't have to be visible but must exist to provide the optimization than meshes cannot.

                Create 2 simple test maps and add the geometry that will have about 2-3 million of polygons. On the first map put the brush in front of this geometry and on the second put mesh plane instead. Then you will see the difference.

                Engine doesn't render the brushes as you see them in the editor. These are the control objects that are used to generate brush geometry. In the times of BSP optimization, the particular triangles where rendered depending on the current camera position. The problem is, I don't think the BSP optimization still exists and if it doesn't, then there entire geometry should be rendered as a whole.

                Comment


                  #9
                  Originally posted by mslaf View Post
                  Performance reasons, only. The optimization based on meshes is still much worse that the optimization based on brushes.
                  Is this a guess or have you read this some where? I am not disagreeing with you, just wondering where the info came from?

                  In geometry dense environment, brushes don't have to be visible but must exist to provide the optimization than meshes cannot.
                  If your talking about a quality of optimization, I can see that. But, assuming meshes and BSP can cull objects behind it the same, then BSP isn't needed.

                  Create 2 simple test maps and add the geometry that will have about 2-3 million of polygons. On the first map put the brush in front of this geometry and on the second put mesh plane instead. Then you will see the difference.
                  LOL, simple? 2-3 million polys would take time to add to the map! Though it would be an interesting test. You would have to use the same shaped BSP and mesh. I am wondering if a plane is the best thing to use as it technically only has 2 dimensions to it.

                  Comment


                    #10
                    Originally posted by Odedge View Post
                    Is this a guess or have you read this some where? I am not disagreeing with you, just wondering where the info came from?
                    - After I've read how the auto-culling works in UDN, I've made an assumption, that there is no way it can work efficiently. Then compared how it has been solved in other game engines like CryEngine2 for example, that only confirmed my assumption.
                    - I've made a very simple test, described earlier, that has proven my assumption.

                    So my opinion is of 'proven guess' type

                    Originally posted by Odedge View Post
                    If your talking about a quality of optimization, I can see that. But, assuming meshes and BSP can cull objects behind it the same, then BSP isn't needed.
                    Meshes cull objects when you don't move - when the camera don't move to be precise, while brushes do it all the time. This is my guess that the collision required by this process is performed on actual mesh shape, which is highly inefficient and inaccurate. There could be at least three reasons of that I could think of.

                    LOL, simple? 2-3 million polys would take time to add to the map! Though it would be an interesting test. You would have to use the same shaped BSP and mesh. I am wondering if a plane is the best thing to use as it technically only has 2 dimensions to it.
                    Is it difficult? How difficult it could be, to import a 50k sphere and duplicate it 20 or 40 times in a square room? The test is very simple because you check the fps that is either low or high. One or two indicators (inc the poly cont) to check, for about 30 secs.

                    Besides, this is an example. You can add 100 polygons, if you think you will able to notice the difference. If you'd made the test you would see that brushes can cull this enormous geometry while meshes cannot. In have used a flat cube like a wall with a valid collision primitive assigned - just to see if the auto-culling collision wasn't based on actual mesh collision but it wasn't.

                    Comment

                    Working...
                    X