105 Commits (4e39f28228e57b7f6c5e8552d6fac9bb2b3569e6)
 

Author SHA1 Message Date
Nico de Poel 4e39f28228 Made use of the fact that we use monochrome lighting to combine light and UVs into a single lerp 3 years ago
Nico de Poel 07f87c4ca2 Made a custom vertex lerp macro using pure GTE assembly code 3 years ago
Nico de Poel 909b32f4c0 Some rearrangement that will hopefully allow single light values to be lerped right alongside UVs, saving on one lerp per vertex. 3 years ago
Nico de Poel d7ec9a85a4 Interpolate vertex color and UV values using GTE instructions as well 3 years ago
Nico de Poel cdc205f59a First successful experiment with vertex interpolation using GTE intpl instructions. 3 years ago
Nico de Poel 7888f44bb8 Revert "Intersperse GTE instructions with vertex lerping and quad building code to mask load/store delays." 3 years ago
Nico de Poel 4f886bd40c Intersperse GTE instructions with vertex lerping and quad building code to mask load/store delays. 3 years ago
Nico de Poel e0e43d6e39 Reordered some vertex code to allow for optimized GTE load/stores 3 years ago
Nico de Poel 58b2e8dc20 Wrapped vertex copying code into a macro to make the quad drawing code more readable. 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 c08858eb90 Updated map files with lighting issues fixed 3 years ago
Nico de Poel 9474739c26 Sort faces for brush models into the overall faces list. 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 090cde5f89 Included face area value in tessellation LOD level calculation. 3 years ago
Nico de Poel 4f92d4c7e3 Getting close to a formula for determining tessellation LOD that takes camera position, direction, face normal and distance into account. 3 years ago
Nico de Poel 916d20a5db Display PAL and NTSC on the debug status text, making it easier to distinguish what we're outputting when. 3 years ago
Nico de Poel 5442b2d4c9 Added a draw function for flat colored quads, useful for debugging 3 years ago
Nico de Poel 21101b3287 Added a special case for drawing faces that are single triangles. 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 ef0d2ad723 Changed dot product and point-plane distance functions to use vector pointers as input. 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 de12e4269f Minor stuff 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 26d541e48f Eliminated recursion from the BSP traversal, using fast RAM to hold the node stack. Yet another appreciable speed boost. 3 years ago
Nico de Poel 520e62922c Perform backface culling early to save on a bunch of needless linked list iterations. 3 years ago
Nico de Poel 32237fc6ec Fixed a few issues and further optimized the quad drawing code. 3 years ago
Nico de Poel 4f2d70cc82 Added some macros to make the optimized drawing code more readable, and applied the same optimization to water drawing. 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 314b52e99e Added a separate CLUT for transparent surfaces, and set semi-transparency mode on water polygons. 3 years ago
Nico de Poel ae080953f7 Rewrote the other face drawing functions to ditch the vertex copying stage too. 3 years ago
Nico de Poel be7eb87685 Ditched the copy-to-scratch-RAM step for drawing textured faces, which apparently is no longer needed to run on real hardware. 3 years ago
Nico de Poel ba83d78aa8 Removed the need for global variables for sorting leafs and faces 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 812bcb6a63 Some micro-optimizations in the face drawing code. The PS1 really does favor simple counters over pointer arithmetic. 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 ec0eebce3c Fixed frustum calculation and implemented point and sphere tests. Now also tested and looking decent. 3 years ago
Nico de Poel 0f450cf6b1 Added initial frustum calculation based on screen parameters and view matrix. 3 years ago
Nico de Poel b1e568e5c3 Added check to backface culling to see if the face is behind the camera. 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 c9bee9d500 Draw water surfaces as unlit textured polygons 3 years ago
Nico de Poel 73903474e4 Moved polygon drawing routines into a separate header file 3 years ago