Quake/Hexen 2 Map compiling tools - branch of http://disenchant.net/utils
Go to file
Jonathan eaa86c71c6
Q2BSP + QBSP (#313)
* Add QBSP - the BSP2-esque variant to Q2BSP - to bspinfo, and all of its accompanying structures.

* pass around ident, since Q2 needs it - admittedly it's a bit ugly, but it works for now.
conversion for QBSP

* Fix light

* _qbsp_ -> _qbism_

* Introduced bspversion_t, a struct that holds pertinent information about different BSP versions and also acts as a tagged pointer type for direct comparisons. This makes a lot of code paths simpler. I'm not entirely set on the wordings or usages yet, and maybe we can stuff boolean flags inside of them for different behaviors (for instance Q2, QBism and HL would have the "colored lightmap" boolean set to true, which replaces the check-for-all-three in the lightmapper)
Swapped arguments to ConvertBSPFormat to have the conversion target last instead of first
Finished rename of qbsp -> qbism
Tested:
 - bspinfo on various BSPs I had laying around (Q1, Q2, Qbism)
 - bsputil converting between Q2 and Qbism, and that they loaded in engine/roundtripped properly
Not tested:
 - vis/rad on anything major (I still can't run rad due to embree being weird)
 - bsputil conversion of Q1-esque maps
2021-08-23 09:56:33 -06:00
3rdparty build: upgrade googletest 2021-02-07 14:42:12 -07:00
bspinfo build: upgrade googletest 2021-02-07 14:42:12 -07:00
bsputil Q2BSP + QBSP (#313) 2021-08-23 09:56:33 -06:00
cmake build: restore mingw support 2016-08-05 04:07:01 -04:00
common Q2BSP + QBSP (#313) 2021-08-23 09:56:33 -06:00
include Q2BSP + QBSP (#313) 2021-08-23 09:56:33 -06:00
light Q2BSP + QBSP (#313) 2021-08-23 09:56:33 -06:00
lightpreview lightpreview: tweak ui file 2017-04-29 10:42:06 -06:00
man docs: remove _no_bbox_rotation_expansion from qbsp docs, key was removed 2020-10-04 18:08:37 -06:00
qbsp qbsp: add -nothreads debug option 2021-08-23 00:12:38 -06:00
qbsp3 cleanup: remove "byte" typedef 2021-02-07 14:02:35 -07:00
testmaps light: update testmap 2021-05-21 20:47:20 -06:00
vis Q2BSP + QBSP (#313) 2021-08-23 09:56:33 -06:00
.gitignore bsputil: decompiler wip 2021-01-30 14:49:18 -07:00
.gitmodules build: add google test v1.10.0 submodule 2021-02-07 14:09:39 -07:00
CMakeLists.txt common: fix build of bsputils.cc with double == vec_t 2021-08-22 15:12:19 -06:00
COPYING Import initial sources 2006-08-28 23:58:10 +09:30
README.md build: add vcpkg instructions for windows 2021-08-22 13:29:04 -06:00
appveyor.yml appveyor: tweak yml 2021-02-07 00:34:55 -07:00
build-linux-64.sh CI: install TBB on linux/macOS 2020-02-01 17:41:05 -07:00
build-osx.sh CI: install TBB on linux/macOS 2020-02-01 17:41:05 -07:00
changelog.md docs: update changelog, convert to markdown 2020-02-25 01:06:10 -07:00
gpl_v3.txt docs: add license note 2016-06-17 23:07:17 -06:00
travis.yml.bak disable travis 2021-02-07 14:57:47 -07:00

README.md

ericw-tools

Original tyurtils:

Build status

About

ericw-tools is a branch of Tyrann's quake 1 tools, focused on adding lighting features, mostly borrowed from q3map2. There are a few bugfixes for qbsp as well. Original readme follows:

A collection of command line utilities for building Quake levels and working with various Quake file formats. I need to work on the documentation a bit more, but below are some brief descriptions of the tools.

Included utilities:

  • qbsp - Used for turning a .map file into a playable .bsp file.

  • light - Used for lighting a level after the bsp stage. This util was previously known as TyrLite

  • vis - Creates the potentially visible set (PVS) for a bsp.

  • bspinfo - Print stats about the data contained in a bsp file.

  • bsputil - Simple tool for manipulation of bsp file data

See the doc/ directory for more detailed descriptions of the various tools capabilities. See changelog.md for a brief overview of recent changes or https://github.com/ericwa/ericw-tools for the full changelog and source code.

Compiling

Dependencies: Embree 3.0+, TBB (TODO: version?), groff (for building manuals)

Ubuntu

sudo apt install libembree-dev libtbb-dev groff cmake build-essential g++
git clone --recursive https://github.com/ericwa/ericw-tools
cd ericw-tools
mkdir build
cd build
cmake ..

Windows

Example using vcpkg (32-bit build):

git clone --recursive https://github.com/ericwa/ericw-tools
cd ericw-tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat

# NOTE: vcpkg builds for 32-bit by default
# NOTE: takes 30+ minutes
.\vcpkg\vcpkg install embree3
mkdir build
cd build

# PowerShell syntax for getting current directory -
# otherwise, replace with absolute path to "vcpkg/scripts/buildsystems/vcpkg.cmake"
cmake .. -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../vcpkg/scripts/buildsystems/vcpkg.cmake" -DCMAKE_GENERATOR_PLATFORM=Win32

macOS 10.15

brew install embree tbb
git clone --recursive https://github.com/ericwa/ericw-tools
cd ericw-tools
mkdir build
cd build
cmake .. -GXcode -DCMAKE_PREFIX_PATH="$(brew --prefix embree);$(brew --prefix tbb)"

Credits

  • Kevin Shanahan (AKA Tyrann) for the original tyrutils
  • id Software (original release of these tools is at https://github.com/id-Software/quake-tools)
  • rebb (ambient occlusion, qbsp improvements)
  • q3map2 authors (AO, sunlight2, penumbra, deviance are from q3map2)
  • Spike (hexen 2 support, phong shading, various features)
  • MH (surface lights based on MHColour)
  • mfx, sock, Lunaran (testing)
  • Thanks to users at func_msgboard for feedback and testing

License

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Builds using Embree are licensed under GPLv3+ for compatibility with the Apache license.