Nico de Poel
|
15e3faa753
|
Added callback function to allow Quake to send the view parameters to Unity, and apply them to the main camera. This makes actual movement through the map in Unity possible.
|
5 years ago |
Nico de Poel
|
ebfce9863b
|
Allow additional arguments to be passed from debug UI, giving me a few more testing options
|
5 years ago |
Nico de Poel
|
32897138b5
|
Build a single giant mesh for every texture-lightmap group of surfaces. Greatly improves rendering performance.
|
5 years ago |
Nico de Poel
|
5598ceeeed
|
Group surfaces based on texture and lightmap, while keeping them grouped inside each brush submodel
|
5 years ago |
Nico de Poel
|
8fcbac51a4
|
Fixed some minor issues related to Unity update
|
5 years ago |
Nico de Poel
|
bb51a24080
|
Updated project to Unity 2020.3.7
|
5 years ago |
Nico de Poel
|
e753e1cc34
|
Recreate the BSP tree structure through a GameObject hierarchy. This gives a bit more insight into the structure of the map data.
|
5 years ago |
Nico de Poel
|
a615495c25
|
Recursively traverse the BSP tree and create surface meshes per node
|
5 years ago |
Nico de Poel
|
11c3b2d826
|
Defined structs for BSP SubModels and Nodes, which will allow for a more systematic conversion to Unity meshes. Also moved more marshalling code into the data classes, which seems like a more natural place.
|
5 years ago |
Nico de Poel
|
211c64a879
|
"Fixed" coordinate conversion from Quake to Unity, by swizzling Y and Z coordinates during vector conversion. There seems to be a lot of confusion and disagreement about Quake's coordinate system, but this setup is simple and looks correct both in-game and in-editor, and the world isn't mirrored anymore either.
|
5 years ago |
Nico de Poel
|
9ce90431f4
|
Reapplied model origin offset, which now actually makes sense
|
5 years ago |
Nico de Poel
|
403e7d0eb4
|
Added struct definitions and marshaling code to obtain texture numbers for brush model surfaces
|
5 years ago |
Nico de Poel
|
05731a8e09
|
Removed redundant division in QTriVertex conversion, and scaled up the rest of the test scene to match. Fixes scale of imported alias models when compared to the world brush model.
|
5 years ago |
Nico de Poel
|
89f3600608
|
Reconstruct brush model data based on glpoly_t data generated by GLQuake. We can now successfully display BSP maps in Unity!
|
5 years ago |
Nico de Poel
|
3988db5f8e
|
Defined a bunch more data for brush models and initial marshaling of model data
|
5 years ago |
Nico de Poel
|
9dc4eb17d0
|
Added URP Unlit shader to shader variants collection
|
5 years ago |
Nico de Poel
|
e0302d2389
|
Added more cruft to the ignore list
|
5 years ago |
Nico de Poel
|
a052c43342
|
Renamed stub_vidgl to vid_uniquake because it contains more than just some stubs (and will get more things added in the future)
|
5 years ago |
Nico de Poel
|
02a8e6b844
|
Fixed non-smoothed animations not actually landing on the key frames
|
5 years ago |
Nico de Poel
|
eaaac619b3
|
Change the Z-position of models in the test scene every time a RenderModule is instantiated, so that subsequent runs of Quake don't cause all of the uploaded models to overlap
|
5 years ago |
Nico de Poel
|
4a7155bb1b
|
Fixed marshaling of multi-dimensional arrays of QGLTextures, and add a second unlit material layer with additive blending for models that use fullbright textures
|
5 years ago |
Nico de Poel
|
e8e04b666d
|
Allow run-time switching between lerped animations and keyframe-only animation, and made the playback speed configurable
|
5 years ago |
Nico de Poel
|
3da2d4ba59
|
Made a few tweaks to make texture uploading work properly in headless mode
|
5 years ago |
Nico de Poel
|
e70d363998
|
Implemented uploading of skin texture data to Unity, and linking loaded alias models to their primary skin texture
|
5 years ago |
Nico de Poel
|
10e54f10ca
|
Added a separate code path for converting frame group animations, and renamed some variables to use the correct frame/pose terminology
|
5 years ago |
Nico de Poel
|
ba691ce326
|
Fixed vid and modestate not being visible in SDL+OpenGL builds
|
5 years ago |
Nico de Poel
|
428eebb941
|
Pass along alias frame type and correctly count the total number of poses in a model, so that the correct number of pose vertices are marshaled and we can identify models that use group frame animations instead of typical single frames. Quake's model formats are weird.
|
5 years ago |
Nico de Poel
|
0978e0490e
|
- Added the option to shut down a UniQuake instance from outside of Quake itself. Useful for when Quake is running headless.
- Added shader variant collection to allow use of the URP simple lit shader in a standalone build
|
5 years ago |
Nico de Poel
|
3361ea2114
|
Added some missing lines and made a few tweaks to allow Quake to run headless without crashing
|
5 years ago |
Nico de Poel
|
a2e16eaf89
|
Fixed division by zero caused by uninitialized vid struct
|
5 years ago |
Nico de Poel
|
d271f9b7e2
|
Stubbed out the remaining OpenGL calls, disabled everything SDL, ifdef'ed out OpenGL 2.0-related code, and added a new stub for remaining VID_ and GL_ calls. Portable configuration compiles now, though it still crashes at run-time.
|
5 years ago |
Nico de Poel
|
47f6de732d
|
Merge branch 'master' into stubs
# Conflicts:
# engine/Windows/VisualStudio/uniquake.vcxproj
|
5 years ago |
Nico de Poel
|
2fc928907b
|
Added empty implementation of input module for UniQuake, to take over duties from SDL
|
5 years ago |
Nico de Poel
|
00c397868b
|
Merge branch 'master' into stubs
# Conflicts:
# engine/Windows/VisualStudio/uniquake.vcxproj
# engine/Windows/VisualStudio/uniquake.vcxproj.filters
|
5 years ago |
Nico de Poel
|
2e53e62ef8
|
Removed Windows-specific IPX and TCP/IP LAN drivers from the project and replaced them with a UniQuake net implementation that doesn't actually have any LAN drivers, i.e. only local loopback connections will work.
|
5 years ago |
Nico de Poel
|
56bc6c7ba6
|
Added empty stub implementations of OpenGL calls used by Quake, as an alternative way of removing the dependencies on SDL & OpenGL
|
5 years ago |
Nico de Poel
|
c2f105a604
|
Fixed a rather embarrassing pointer error, which by sheer luck just happened to not cause any issues
|
5 years ago |
Nico de Poel
|
96d2a1fe7b
|
First setup to upload brush models (specifically: the world model) from Quake to Unity. Updated the QWorld class to include the fields added by QuakeSpasm.
|
5 years ago |
Nico de Poel
|
dec2be66c6
|
Keep track of already duplicated vertices and reuse those for triangles that need them. Fixes vertex counts being way too high because seam vertices would get duplicated multiple times.
|
5 years ago |
Nico de Poel
|
a19d9b546e
|
Added disposal code for alias models
|
5 years ago |
Nico de Poel
|
08c16f71a1
|
Moved importing and conversion of mesh data into AliasModel class. Also:
- Do not create blend shapes if a model does not have any animations
- Handle cases when mesh does not have any blend shapes
|
5 years ago |
Nico de Poel
|
4d974bf6cd
|
Solved the UV correcting problem for backside triangles by pre-processing the model input data, whereby vertices on the seam are duplicated and adjusted. The rest of the mesh conversion process then remains as it was.
|
5 years ago |
Nico de Poel
|
ab880f9cfb
|
Added a custom marshaler to decode screen texts received from Quake, which uses single-byte characters and a non-standard character set. Fixes string conversion errors and a fatal exception whenever the "ö" character is printed in the Zerstörer mod.
|
5 years ago |
Nico de Poel
|
e8a3313d88
|
Some cleanup
|
5 years ago |
Nico de Poel
|
4138290723
|
Further mesh research: create an individual mesh for each animation sequence, with a single blend shape animation per mesh. Added an AliasModel class to manage meshes and find the correct animations. With this we can smoothly animate looped animation cycles.
|
5 years ago |
Nico de Poel
|
61a845338e
|
Further mesh conversion research: animation frames are now converted into blend shape animations, which can be played back either with or without smoothing.
|
5 years ago |
Nico de Poel
|
834ff9a794
|
First test converting models from Quake into Unity meshes, including normals and UVs. It's still far from perfect (back side UVs are not handled at all yet) but it's a good demonstration of what will be possible.
|
5 years ago |
Nico de Poel
|
ccaf57ec02
|
Added some legal text and fixed FMOD callbacks for 32-bit compiles
|
5 years ago |
Nico de Poel
|
7f358f5188
|
Added back in acknowledgements. Seems fair.
|
5 years ago |
Nico de Poel
|
99b09dc854
|
Moved some global variables around for portability
|
5 years ago |