Giter VIP home page Giter VIP logo

sdhlt's Introduction

Banner

Half-Life engine map compile tools, based on Vluzacn's ZHLT v34 with code contributions from various contributors. Based on Valve's version, modified with permission.

New features include shadows from studiomodels, new entities, additional tool textures, ability to extend world size limits, portal file optimisation for J.A.C.K. map editor and minor algorithm optimization.

How to install

  1. Open the configuration dialog of your map editor or batch compiler.
  2. Set CSG, BSP, VIS, RAD tool paths to sdHLCSG.exe, sdHLBSP.exe, sdHLVIS.exe, sdHLRAD.exe, use the _x64.exe editions if running on 64-bit.
  3. Add sdhlt.wad into your wad list. This is required to compile maps.
  4. Add sdhlt.fgd into your fgd list.

The main benefit of the 64-bit version is no memory allocation failures, because the 64-bit tools have access to more than 2GB of system memory.

Features

Studiomodel shadows

Entities with a model keyvalue, such as env_sprite or cycler_sprite, support the use of zhlt_studioshadow 1 to flag the studiomodel as opaque to lighting. Additionally, zhlt_shadowmode n is used to control the shadow tracing mode.
The default 1 will trace for each triangle and supports transparent textures.
Setting 2 doesn't support transparency, but it traces the planes bbox for each triangle, the slowest but usually higher quality for some models.
Setting 0 disables tracing and uses the mesh bbox instead.

To implement these into your own fgd file for SmartEdit, use the template at the top of sdhlt.fgd. If the new shadow covers the origin and makes it too dark, set a custom light_origin on the entity or move the mesh origin point externally.

Entities

  • info_portal and info_leaf ared used to create a portal from the leaf the info_portal is inside, to the selected leaf the info_leaf is inside. Forces target leaf to be visible from the current one, making all entities visible.
  • info_minlights used to set minlights for textures, works on world geometry too. Works similarly to _minlight but per-texture.

Textures

  • Support for % texture flag, sets the minlight for this texture. %texname alone is equivalent to _minlight 1.0, while %#texname where # is an integer in a range of 0-255.
  • BEVELHINT texture, which acts like SOLIDHINT and BEVEL. Eliminates unnecessary face subdivision and bevels clipnodes at the same time. Useful on complex shapes such as terrain, spiral staircase clipping, etc.
  • SPLITFACE texture. Brushes with this texture will subdivide faces they touch along their edges, similarly to zhlt_chopdown.
  • cur_tool textures, which act like CONTENTWATER and func_pushable with a speed of 2048 units/s in -Y. This texture is always fullbright.

Compile parameters

  • -pre25 RAD parameter overrides light clipping threshold limiter to 188. Use this when creating maps for the legacy pre-25th anniversary engine without worrying about other parameters.
  • -extra RAD parameter now sets -bounce 12 for a higher quality of lighting simulation.
  • -worldextent n CSG parameter. Extends map geometry limits beyond +/-32768.
  • Portal file reformatting for J.A.C.K. map editor, allows for importing the prt file into the editor directly after VIS. Use -nofixprt VIS parameter to disable.
  • -nowadautodetect CSG parameter. Wadautodetect is now true by default regardless of settings.
  • -nostudioshadow RAD parameter to ignore zhlt_studioshadow on studiomodels.

Planned

  • BLOCKLIGHT texture, cast shadows without generating faces or cliphulls.
  • Optimization for BuildFacelights and LeafThread
  • Res file creation for servers
  • Split concerns into their own libraries instead of repeating infrastructure and util code
  • Full tool texture documentation

sdhlt's People

Contributors

goodusername123 avatar khanghugo avatar seedee avatar solokiller avatar toodles2you avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sdhlt's Issues

compilation on linux?

hello guys, i use the linux version of jack and would like to try this and compare it to Vluzacn's ZHLT v34 which i used before, can you add support for compilation with gcc like make files etc maybe?

CSG -worldextent, Outside World error

When building with the -worldextent flag in J.A.C.K. 1.1.1064, it fails. Every brush and entity that exist in my world are reported as outside the world no matter where they are, inside or outside vanilla world bounds.

Add ubuntu binaries to release

Currently you can get the Ubuntu binaries through the artifacts of completed workflows in Actions, but is not an easy way to access as it requires a github account

A problem with brush entity blocking light

This is decompiled cs_estate. I recreated this bush brush just to be sure everything should be fine.

It appears that one side isn't blocking light at all.
Tried either func_wall, func_illusionary, with clipping without clipping, with blocking light etc.
It only works right if this is a world brush.
cs_estate_hm_shot0000
cs_estate_hm_shot0001

Fix TEX_SPECIAL assignment for liquids

When Valve changed the character that defines liquids from * to !, they left the check for assigning the TEX_SPECIAL flag as asterisk, resulting in liquids always getting 240tx subdivision and lightmaps, unlike Quake.

if (bt->name[0] == '*'

This is a bit wasteful in vanilla renderers, since they don't support lightmapped water, so the check should be changed to set the flag for ! textures as well, unless you pass a -litwater param to CSG (for use with custom renderers). I suppose * textures should still receive this flag, for consistency with vanilla behavior, but I'm not sure if that's too important (idk what happens if a non-liquid gets this flag).

(Also, the length defined for env_sky's strncasecmp should be 7, not 5.)

CSG -worldextent not extending map limits

I'm using J.A.C.K 1.1.3773 with SDHLT, and when I add the parameter "-worldextent 100000" for example, but I place a scientist for example outside the +-32768 bounds, the scientist follows me beyond the limit, but his model is rendered within the bounds.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.