39 Commits (5bd322d33b57dbf8842c43a3cc5a1fe6d5ffbf62)

Author SHA1 Message Date
Nico de Poel 5bd322d33b Use texture windows to allow repeating textures on select faces. 3 years ago
Nico de Poel 2122ae3421 Use face bounding quad to check if it may be partially inside the frustum, and force tessellation if it is. 3 years ago
Nico de Poel 02b19a67dc First implementation of near-camera polygon tessellation, which surprisingly actually worked on the first try! 3 years ago
Nico de Poel ba1e384f69 Keep track of the leaf a model is in, so that it doesn't need to be looked up every frame but instead only when the model moves. 3 years ago
Nico de Poel fd77b80afc First implementation of dynamic world object (model) rendering. 3 years ago
Nico de Poel 3b89d01ec1 Embedded the texture atlas data inside the .ps1bsp file and name those files after the actual map. 3 years ago
Nico de Poel 4146238e1e Moved frustum planes to fast scratchpad RAM for another appreciable speed boost. 3 years ago
Nico de Poel a7e29ee420 Fixed issue with model data memory alignment, officially using model #0 now to draw the static world geometry. 3 years ago
Nico de Poel 2cb5bcb856 Added support for setting the clear color to a generic sky color. 3 years ago
Nico de Poel 32237fc6ec Fixed a few issues and further optimized the quad drawing code. 3 years ago
Nico de Poel 74a36f0938 Found a 10% performance boost by simply reordering data access when filling in polygon data, and by blitting UV and RGB values with a single copy. 3 years ago
Nico de Poel 38e91f4c3a BSP file now includes model data for dynamic world objects 3 years ago
Nico de Poel 97d23f0bc9 Removed unused texture metadata fields. Only the texture page and precalculated per-vertex UVs are needed to draw textured polygons. 3 years ago
Nico de Poel 542a81b68c Draw lava, slime and teleporters as liquids, but not transparent. 3 years ago
Nico de Poel 4d138b4199 Added an extra face sorting step so we can draw faces in front-to-back order: 3 years ago
Nico de Poel a8d3bf567b First pass at leaf-based rendering order: 3 years ago
Nico de Poel 5e738340b8 Added box-frustum test code, used to experiment with more accurate per-leaf bounding box frustum culling. 3 years ago
Nico de Poel b0893a902d Added support for leaf-based frustum culling, but leaving it disabled for now. 3 years ago
Nico de Poel ea2b963653 Implemented per-node frustum culling based on bounding spheres. 3 years ago
Nico de Poel 7232e061d7 Added a fast face drawing routine, which is basically what we had before: 3 years ago
Nico de Poel 85a8b332c5 Some reorganization of face drawing code; allow better separation between drawing methods, and require the "enable texturing" check only once ahead of drawing. 3 years ago
Nico de Poel 8b34fb1950 Small tweaks: made background black to cover up seams, defined a few flags 3 years ago
Nico de Poel 3b5a59dae6 Geometry, textures and lighting now all working correctly. 3 years ago
Nico de Poel ebbc01c672 Overhaul of geometry representation, with correct UV'ing and more finely tesselated surfaces. 3 years ago
Nico de Poel 297ae187f6 Fixed some issues with texture atlas generation. 3 years ago
Nico de Poel 76a6dc92d5 First pass at implementing texturing of face polygons. 3 years ago
Nico de Poel c8c44b352f A bit of cleanup ahead of attempting to make textures work 3 years ago
Nico de Poel 59d838f501 Small optimization to BSP tree traversal, by making the child node selection branchless 3 years ago
Nico de Poel b0d36ab11b Sped up plane calculations by making use of axis-aligned properties 3 years ago
Nico de Poel bbf87bbf58 Implemented backface culling per face, by adding plane and center point fields to the face struct and checking the plane's normal against the camera vector to the center point. 3 years ago
Nico de Poel ddffc8860e Fixes to make things work on real hardware again: 3 years ago
Nico de Poel a05a800da0 Implemented PVS decompression, leaf visibility check using PVS data, and front-to-back traversal of the BSP tree. 3 years ago
Nico de Poel 337406c03f Use the node and leaf data to traverse the entire BSP tree and draw all attached faces. 3 years ago
Nico de Poel 37f619dc94 Load plane, node and leaf data, and iterate through leaves to draw faces. 3 years ago
Nico de Poel 0e1bb7a5bf Reworked PS1BSP format to use dentry-style header info 3 years ago
Nico de Poel 7606d89998 Implemented triangle strip topology for drawing faces 3 years ago
Nico de Poel 3167f1474e Faces can now carry their own per-vertex lighting data, instead of sharing all vertex data with adjacent faces. 3 years ago
Nico de Poel f8a4d171a3 Faces now have a vertex index list, which is more space-efficient and allows easy rewrites of polygon topology. 3 years ago
Nico de Poel 5a3b6aac46 First implementation of world loading and rendering. No BSP logic or optimizations in here yet, but something is being displayed! 3 years ago