Home Technical Talk

How To Tackle Inset Geometry In BSP?

polycounter lvl 13
Offline / Send Message
TychoVII polycounter lvl 13
Hello all, a fine day to get some work done isn't it?

I'm working on a scene which involves large, flat surfaces that are perfect for BSP. The problem is that I'd like to be able to 'puncture' these surfaces with inset geometry such as damage and small windows and things.

So now I'm stuck trying to figure out how exactly to go about doing this. The only way I can think of would be to hollow out a square and then fill it with a static mesh. As illustrated below, that can be a problem:

InsetGeometry.jpg

So I ask, are there any other methods to go about getting this to work? Assassin's Creed seems to pull it off pretty well.

AC-Example.jpg

Granted, 95% of the indented geometry is surrounded by protruding geometry. But, there's gotta be a way though, right?

Replies

  • Muzzoid
    Offline / Send Message
    Muzzoid polycounter lvl 10
    you do know you can scale and move the textures right?
  • Mark Dygert
    Trim everything?
    Opacity maps?
  • ajr2764
    Offline / Send Message
    ajr2764 polycounter lvl 10
    Why dont you build the static mesh to the same grid settings that you BSP lies on? Like if you have a wall texture that has patterns like hoirzonatal lines or whatever when making them in photoshop align them on the grid, so say there 64 units apart then cut your hole into your BSP wall 64 units in width and make your mesh the same size, it will fit right into the area.
  • TychoVII
    Offline / Send Message
    TychoVII polycounter lvl 13
    I appreciate the responses guys. I think I did a bad job of phrasing my question though...

    I found a better example of the kind of thing I'm trying to achieve. So, how would you guys recreate this:

    MW2-2.jpg
    MW2-1.jpg

    The trail of debris cuts into the geometry of the ground. Now, I'm guessing that the parking lot ground is made of some kind of BSP or terrain. It wouldn't all be one huge static mesh would it? The surface detail is extremely clear. They would need a gigantic texture for that. So that means the trail of debris is a static mesh laid into a terrain/BSP that has a repeating texture covering it. There is a seamless integration though between the debris trail and the terrain. Sometime I feel like idiot and that I missed something very basic and this is one of those times. Any ideas how someone might go about creating this?
  • glib
    Why are you discounting the possibility of a static mesh with a tiling texture?
  • TychoVII
    Offline / Send Message
    TychoVII polycounter lvl 13
    How exactly do you tile a texture on a uniquely unwrapped static mesh?
  • Peris
    Offline / Send Message
    Peris polycounter lvl 17
    by not uniquely unwrapping it. bsp is also essentially geometry with a texture mapped to it, it's thesame thing. I'm almost 100% sure that mw2 example is just a big static mesh.

    bsp should really not be used anymore though imo, it's an old tech designed for 90ies era engines. Since we can now render millions of triangles in realtime bsp becomes kinda useless.. except for maybe mocking up levels, but then still its restricting tech. I'm pretty sure they didn't use bsp on assasins creed.
  • TychoVII
    Offline / Send Message
    TychoVII polycounter lvl 13
    So static meshes for everything then? The way I was brought to understand level design (in the UT3 engine anyway) was to lay out a level in BSP and then sort of decorate it with static meshes. I guess I'll just use more static meshes then.

    I'm not the best at unwrapping and understanding all the concepts behind it. Is there a tutorial out there for unwrapping static meshes in a way so that some parts of it can be tiled and other parts can be unique?
  • ZacD
    Offline / Send Message
    ZacD ngon master
    The UDK has a new lighting system so BSP is basically dead.

    You just overlap parts of the uv map, its not too hard, or make a seamless texture and scale up the UV's so its hanging off the edges.
  • Cubik
    Offline / Send Message
    Cubik polycounter lvl 18
    I'm not sure what you mean. The tarmac texture is just tiled over the flat surface and cracked pieces alike and the gravel underneath is probably either; a separate mesh where they hide the edges with the cracked parts geometry ; blended in with vertex colors ; or using a second uvlayer and a uniquely unwrapped masktexture that is used in the material to define which parts of the model is gravel and what is tarmac.

    The white lines are decals, overlays or some form of in-engine model-deforming splines.

    As for tutorials, search polycount for terrain texturing threads.
  • glib
    ZacD wrote: »
    The UDK has a new lighting system so BSP is basically dead.

    Huh?
  • Xoliul
    Offline / Send Message
    Xoliul polycounter lvl 16
    Another reason to avoid BSP is that it's worse for performance than Static Meshes.
  • DarthNater
    Offline / Send Message
    DarthNater polycounter lvl 10
    TychoVII wrote: »
    So static meshes for everything then? The way I was brought to understand level design (in the UT3 engine anyway) was to lay out a level in BSP and then sort of decorate it with static meshes. I guess I'll just use more static meshes then.

    Yes, make a mock up level in BSP, then replace all the BSP with static meshes. BSP is only used now to prototype level flow and such...
  • rumblesushi
    Xoliul wrote: »
    Another reason to avoid BSP is that it's worse for performance than Static Meshes.

    Just curious, how do static meshes outperform BSP in modern technology? Is it because the hardware does z-sorting for you?

    I know in old school 3D engines BSP is good because dividing the geometry into convex groups and rendering group by group, is faster than sorting a render list of however many polygons according to depth every frame, the basic painter's algorithm.

    The problem I'm encountering with a theoretical BSP tree is integrating moving objects into the tree without rebuilding it each frame, and thereby nullifying the performance gained by not sorting poly by poly.
  • sprunghunt
    Offline / Send Message
    sprunghunt polycounter
    The problem I'm encountering with a theoretical BSP tree is integrating moving objects into the tree without rebuilding it each frame, and thereby nullifying the performance gained by not sorting poly by poly.

    In unreal the latest renderer treats BSP as a giant static mesh. A BSP box is the same overhead as a static mesh box. The difference being that a big complicated bsp surface won't be culled by line-of-sight culling where a group of smaller static meshes might get culled.

    But as far as I remember, from talks on the subject, the assassins creed engine just doesn't use BSP at all.
Sign In or Register to comment.