KatsBits Community

[Blender] brush-based structures

kat · 5 · 15001

0 Members and 1 Guest are viewing this topic.

Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits

Can you make a brush based map or structures in Blender? Yes.

Download the 'idTech/Unreal' reference pack

Although the above shows the process applied to a small section, the basic principles apply to larger structures or full levels. A few simple rules;
  • Make sure structures are constructed from blocks rather than planes or open structures.
  • Unwrap/map 'real' textures to objects rather than using 'generated' data blocks (which result in invalid map files).
  • Make sure Blenders grid is set up to properly correspond to Radiant or other *.map based editor.
  • Snap to the grid and use larger increments.
  • Details, lamps, lights, fixture and fittings, are best exported separately as models.
  • Textures assigned in Blender will likely need to be remapped for continuity purpose so shouldn't be of huge importance in Blender
IMPORTANT: make sure to be using a version of Blender that includes the Quake map export script, currently most versions in the 2.6x series up to and including 2.70.




Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits

Example of what can be done using the above approach to building .map format levels in Blender. Shown is a section of a much larger level being blocked-out in Blender, i.e. structure is made using primitive 'convex' shapes which are eventually exported as solid volumes. For more read the Make a Simple Level tutorial.


Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits
Working with 'planes' (single-sided surfaces and panels) is problematic because of the way the export script create 'volume' by extruding surfaces backwards - whilst this generally works fine for flat surface, where intersection occur, at corners for example, it creates issues where extrusions overlap (when separate panel are used) or distort based on angled extrusions.





Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits

Ensuring relatively complex shapes are correctly prepared for export as brush volumes.

As models, even the simplest of shapes can trip the process when exporting content to the *.map format. This happens because brush volumes can only be convex and as such requires concave shapes be broken down into discreet collections of 'primitives' to properly conform to the volume requirement used by .map/BSP level editors. Shown in the above for example, a simple 'stepped' object (shown in Blender) has to be broken down into a set of very basic shapes so each can be exported properly for use in GtkRadiant - without doing the the final *.map file will be incomplete (the read/write process essentially stops at a problem structure even though the export appears to complete).


Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits

Exporting maps from Blender
Make sure complex structures are made from individual blocks that are basically water-tight. Brushes can be part of larger selections but it's best not to export entire levels to keep the amount of data parsed to manageable sizes, and it makes tracking down errors easier. Surfaces should be UV mapped and images applied as materials are based on image assignments (as long as materials are clearly defined it should then be a simple matter of 'find and replace' once the file is loaded). "Open" the resulting text file rather than using 'Load' then re-save using Radiants options to ensure map data is fully and correctly formatted and structured.

Face Thickness: when exporting blocks and volumes, i.e. the level has been constructed from primitive solid volumes, this setting can generally be ignored. To ensure proper output compatibility however, it can be set with "8" as a minimum value. Essentially this setting forces single sided elements (faces rather than blocks) to be extruded by a certain value generating valid *.map volumes - for general construction this should be at minimum "8" but may be better using higher 'power-of-two' values (16, 32, 64) depending on circumstance.

Scale: ideally, because Radiant uses a grid-based system, it's preferable to work at actual size, i.e. the default Scene cube is 2 x 2 Blender Units, in Radiant this would be 2 x 2 units, which is too small for general construction. With "Scale:" (set to "100.00") applied, this small cube becomes a 200 x 200 unit block. Although this is much larger, and a better size for use in Radiant, it's not a power-of-two value - ideally major structures are best built using that system, doing so might mean a wall being 256w x 256h x 32d. When working 1:1 "Scale:" should be set to "1.00".

Note that level design using Blender typically results in one or two "MeshTexturePoly [...] use_twoside" errors.