26 Commits (1e948a2dd39ed85fb3b385f0bc5333df5307e0ca)

Author SHA1 Message Date
Nico de Poel 1e948a2dd3 Marshal animation frame names as bytes and manually decode them using QuakeTextMarshaler. Fixes invalid byte sequence exception upon loading QRally. 4 years ago
Nico de Poel 5dc8d2ff78 Rewrote surface grouping method to be iterative instead of tail-recursive. Fixes potential stack overflow issues when loading particularly large and complex maps. 5 years ago
Nico de Poel 15612f7d1c Added missing assignment 5 years ago
Nico de Poel 01a36906a9 Tweaked split tracer trail again, which is a little bit closer to the proper effect now. 5 years ago
Nico de Poel 612dbca12a Improved particle trail management: instead of instantiating many tiny particle effects for each segment of the trail, instantiate a single particle trail effect and attach it to the entity. The particle system is made looping and simulates in world space, to have it create a proper trail. Particle trails are destroyed with a delay when detached from their entity, so that the particles have the time to finish their simulation. 5 years ago
Nico de Poel eefef2097e Implemented split tracer trails for e.g. Scrag projectiles using Unity's radial velocity. Probably the least accurate particle effect recreation so far, but this one is very tricky to accurately emulate as it is in Quake. 5 years ago
Nico de Poel 5b99d8374f Also implemented slight blood and vore ball particles trails 5 years ago
Nico de Poel 4c648a1f5a First version of particle trail, supporting rocket trail, smoke trail and blood trail. 5 years ago
Nico de Poel f668c97b52 Reworked the entity animation system, so that blending between poses is pulled fully to the Unity side. With this we can detect the situation where we are trying to blend from one animation sequence to another. Since this is not possible in UniQuake due to each animation sequence being converted to a separate mesh, we instead hold the poses for a frame as if we're not using animation lerping at all. This fixes the occasional animation glitch where the previous sequence would be animated a bit too far, which can be very noticeable on non-looping animation sequences (e.g. the Chthon's rise animation). 5 years ago
Nico de Poel 05a4de89a1 Minor things that have accumulated over time 5 years ago
Nico de Poel d73d86ce11 Keep hold of surface flag when converting brush model surfaces, and use this to identify liquid surfaces during material creation. Liquids now have their own material with the option to apply alpha blending depending on the type of liquid. 5 years ago
Nico de Poel 59a64473b0 Marshal only one polygon per brush model surface for conversion into a Unity mesh. Any subsequent polygons are pre-tessellated versions meant for the water warping effect, which we won't need as this will be handled by GPU tessellation. Fixed garbled water surface caused by having two polygon meshes overlapping. 5 years ago
Nico de Poel 0899855b51 Updated project to Unity 2020.3.14 and fixed some minor issues after upgrade 5 years ago
Nico de Poel c5cefca10d Minor fixes for compatibility issues with QRally: 5 years ago
Nico de Poel c9271a7772 Cache brush surface texture numbers instead of re-marshaling them on each access. Fixes textures getting mixed up on brush model entities after map switch. 5 years ago
Nico de Poel c12ff0c503 Organize alias model textures into skins and animation frames 5 years ago
Nico de Poel fdaee3321f Start on organization of textures into texture sets, and implemented a basic test for alias model entities, which are now properly textured including fullbright (emissive) textures. 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. 5 years ago
Nico de Poel a2b8d32c00 Implemented automatic animating of group frame alias models, using the existing AliasModelAnimator component. 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 883bc26026 Keep mesh data for alias models in CPU RAM (i.e. read/write) because apparently that's necessary to make them visible on skinned mesh renderers in standalone builds. 5 years ago
Nico de Poel c14faf2666 Dynamically create either MeshRenderer/MeshFilter or SkinnedMeshRenderer based on whether the model being assigned is animated or not. Gets rid of warnings on un-animated SkinnedMeshRenderers, and removes unnecessary components on brush model entities. 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 66c62001d0 Squashed a bunch of bugs in the alias model animation system and integrated transform/animation updates into the alias model lerping system. Entities are now correctly animated, yay! 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 f944b7d4ff Moved some files around 5 years ago