Quake/Hexen 2 Map compiling tools - branch of http://disenchant.net/utils
Go to file
Eric Wasylishen aa3b8479b4 qbsp: shrink node_t from 280 to 208 bytes
- contentflags_t from 80 to 8 bytes
2024-03-09 19:37:23 -07:00
.github/workflows ci: fix windows release upload 2024-02-04 16:33:01 -07:00
.vscode vs code: put 3rdparty dir in search exclude list 2022-11-05 15:14:20 -06:00
3rdparty 3rdparty: update fmt to latest release (10.1.1) 2023-11-04 16:11:40 -06:00
bspinfo build: get rid of "bin" subdirectory 2024-02-04 19:52:16 -07:00
bsputil qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
cmake docs: build and package new Sphinx docs on macOS 2022-01-29 17:09:15 -07:00
common qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
docs light: q2: opaque lit liquids receive light from both sides by default 2024-02-15 23:51:28 -07:00
include qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
light qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
lightpreview optimize Q2 brush info by using world-aligned defaults if they exist 2024-03-05 11:11:20 -05:00
maputil qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
qbsp qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
testmaps tests: add test for current behaviour of unknown q2 content/surface flags 2024-03-08 21:03:53 -07:00
tests qbsp: shrink node_t from 280 to 208 bytes 2024-03-09 19:37:23 -07:00
vis style: replace (void) with () 2024-02-26 21:07:22 -07:00
.clang-format .clang-format: update some things reported by linter 2023-05-07 21:44:29 -06:00
.gitattributes
.gitignore testmaps: add e3m4.map test case from LibreQuake 2024-01-05 12:32:01 -07:00
.gitmodules build: remove unused subprocess.h dependency 2022-12-19 00:36:04 -07:00
.readthedocs.yaml docs: pin dependencies to fix build error 2023-05-06 12:43:23 -06:00
CMakeLists.txt build: get rid of "bin" subdirectory 2024-02-04 19:52:16 -07:00
COPYING
README.md docs: add warning about Ubuntu embree package 2023-04-22 16:23:56 -06:00
appveyor.yml CI: Enable Qt5 + lightpreview (#406) 2024-01-08 20:16:41 -07:00
build-appveyor.ps1 appveyor: enable packaging lightpreview 2023-05-22 13:10:24 -06:00
build-linux-64.sh CI: Enable Qt5 + lightpreview (#406) 2024-01-08 20:16:41 -07:00
build-osx.sh CI: Enable Qt5 + lightpreview (#406) 2024-01-08 20:16:41 -07:00
build-windows.ps1 CI: Enable Qt5 + lightpreview (#406) 2024-01-08 20:16:41 -07:00
clang-format-all.sh
gpl_v3.txt
testmaps.hh.in imglib: fix wad3 loading (thanks to erysdren for the fix) 2023-07-18 17:57:51 -06:00
time_compilation.sh build: add compile time benchmark 2023-07-02 17:03:44 -06: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?), Sphinx (for building manuals)

Ubuntu

NOTE: Builds using Ubuntu's embree packages produce a significantly slower light (i.e. over twice as slow) than ones released on Embree's GitHub. See build-linux-64.sh for a better method.

sudo apt install libembree-dev libtbb-dev cmake build-essential g++
sudo apt install python3-pip
python3 -m pip install sphinx_rtd_theme
export PATH="~/.local/bin/:$PATH"
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

# creates a python virtual environment in the directory `sphinx-venv`
# and install sphinx (for building the docs)
py.exe -m venv sphinx-venv
.\sphinx-venv\Scripts\Activate.ps1
py.exe -m pip install -r docs/requirements.txt

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 -DSPHINX_EXECUTABLE="$(pwd)/../sphinx-venv/Scripts/sphinx-build.exe"

macOS 10.15

brew install embree tbb
python3 -m pip install sphinx_rtd_theme
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.