Nico de Poel
764f2a8a0f
Optimized lightmap uploads by converting the raw byte pointer from Quake to a NativeArray (unsafe code required) and passing that directly to SetPixelData. This does away with the extra copying step and removes garbage created by Texture2D's implementation.
The old code path is still kept around since the NativeArray version doesn't work inside the Editor for some reason, but it does in standalone builds.
5 years ago
Nico de Poel
fc051df6da
Added support for point sampling and affine texturing to the custom Quake shader, both of which can be enabled/disabled through the visual style. Also changes all of the keywords into multi_compile, so they aren't stripped during builds (all of these are controlled through code).
5 years ago
Nico de Poel
2460110525
First experimental shader using lightmaps, based on URP's Unlit shader. Needed to change the project's Color Space to Gamma for the lightmapped output to look correct.
5 years ago
Nico de Poel
c9a3d0430c
First implementation of dynamically updated lightmap textures. These are uploaded from the Quake engine to Unity on map load, and whenever a lightmap texture changes.
It has been tested and found (mostly) working by manipulating the UVs on surface meshes, applying the lightmap as main texture, and using an unlit shader. This is not part of the commit.
5 years ago
Nico de Poel
a52b497ccb
Reworked entity renderer assignment: both MeshRenderer and SkinnedMeshRenderer are created at the same time on init, and are enabled/disabled on demand.
Also: destroy overridden textures, and disable lerping on alias model animator by default.
5 years ago
Nico de Poel
5390483b0b
Upload non-world brush models and allow them to be assigned to entities. It's not terribly pretty but it (mostly) works. There still seems to be an issue with texture assignment on subsequent map loads.
5 years ago
Nico de Poel
0dc5c1a14b
Create world submodel game objects and link them to entities, allowing doors and buttons and such to work properly. Also don't bother linking the view entity to a model.
5 years ago
Nico de Poel
e6fd7b83ae
First bits of entity logic: assign alias models, update transform and animation, remove entity. Still lots of problems to solve, but it's starting to do something.
5 years ago
Nico de Poel
453664031c
Moved creation of game objects for the world to GameState, which is where the bridge between Quake's game logic and Unity's game objects will happen. Also includes destruction of said game objects, so that the world is properly destroyed and recreated on map change.
5 years ago
Nico de Poel
2c6f5bed1c
Destroy game assets when the game is shut down. We can still inspect assets in-editor by using the Pause function.
5 years ago
Nico de Poel
a886f3d993
First steps in reorganizing the project, so that assets and game state are managed separately from the interop modules. This will allow for a clearer picture of where gameplay-related interactions should take place, and how entities and such should be linked to their associated assets.
5 years ago