Supermodel/Src/Graphics/New3D
2017-08-10 15:43:03 +00:00
..
Mat4.cpp Adding new 3D engine by Ian Curtis. Old engine moved to Graphics/Legacy3D/. 2016-03-21 04:10:14 +00:00
Mat4.h Adding new 3D engine by Ian Curtis. Old engine moved to Graphics/Legacy3D/. 2016-03-21 04:10:14 +00:00
Model.cpp We were force normalising the result of matrix * normal, which looked correct in most cases. But this didn't preserve the scaling of the matrix, or the scaling of the model normals which resulted in many over bright areas. On it's own this generally worked, but games like Star Wars looked quite broken. Harry correctly figured out if you scale these normals by the scaling value that is sometimes present in the culling nodes the lighting looks correct. Still more work to do to correctly figure out the model3's lighting model. 2017-07-29 16:30:30 +00:00
Model.h Sometime ago I managed to work out that specular on the model3 is not real specular, and really is just an extension of diffuse lighting. But attempts were derailed by corner cases and the fact we were not handling the normals correctly. Anyway Harry managed to successfully come up with an algorithm, and coefficients that give an almost perfect match to specular on the model3, based soley on observations from video footage! He also worked out that the lighting on hardware 1.5 onwards appears to be unclamped (ie greater than 1). This quite radically changes the brightness of some of the games, but much better matches the original hardware. 2017-08-09 16:56:56 +00:00
New3D.cpp use generic vertex attributes 2017-08-10 15:43:03 +00:00
New3D.h Revert previous fixed shading changes. Implement new logic for fixed shading on step 1.5 hardware based upon Harry's findings. 2017-06-20 20:13:42 +00:00
Plane.h Dynamically calculate near/far frustum planes for each viewport priority layer by clipping the overlapping meshes with the 4 frustum planes. A bit brute forcy, but the results are great. 2017-02-07 14:05:03 +00:00
PolyHeader.cpp Sometime ago I managed to work out that specular on the model3 is not real specular, and really is just an extension of diffuse lighting. But attempts were derailed by corner cases and the fact we were not handling the normals correctly. Anyway Harry managed to successfully come up with an algorithm, and coefficients that give an almost perfect match to specular on the model3, based soley on observations from video footage! He also worked out that the lighting on hardware 1.5 onwards appears to be unclamped (ie greater than 1). This quite radically changes the brightness of some of the games, but much better matches the original hardware. 2017-08-09 16:56:56 +00:00
PolyHeader.h There are 2 bits in the polyheader labelled discard. When both are set ie in sega rally, the polygons are totally discarded. Scud seems to set bit 1 which seems halve the opacity. 2017-04-15 19:00:46 +00:00
R3DData.h add LOD table data. Maybe we can get clipping planes out of these 2016-03-28 20:11:46 +00:00
R3DFloat.cpp refactor 2016-06-19 21:43:09 +00:00
R3DFloat.h Virtua fighter has a few massive polys that shouldn't be visible. It looks like these polys have a bad matrix, but the node distances are all zero. This means the bounding box that encapsulates them is of size zero. Skipping over these entirely seems to fix the issue. 2017-04-12 15:47:57 +00:00
R3DScrollFog.cpp use generic vertex attributes 2017-08-10 15:43:03 +00:00
R3DScrollFog.h Rewrite the spot light code, and implement the missing fog logic. (HarryTuttle) 2017-04-02 21:03:59 +00:00
R3DShader.cpp use generic vertex attributes 2017-08-10 15:43:03 +00:00
R3DShader.h use generic vertex attributes 2017-08-10 15:43:03 +00:00
Texture.cpp remove debug code 2017-06-20 19:46:06 +00:00
Texture.h Originally to do mipmapping, I just used the base texture and then let the h/w automatically generate the mipmap chain. I wasn't sure the real3d api even exposed to the programmer the ability to directly set the mipmap data. Anyway, as pointed out by HarryTuttle scud actually uses darker mipmaps for an effect on the water. This patch uses the uses the actual mipmap data from the real3d memory. Only tested scud, so hopefully I didn't cause any cataclysmic errors :) 2017-03-24 13:38:20 +00:00
TextureSheet.cpp Just use 1 hash map for the textures, instead of 1 for each format. Should greatly speed up texture invalidation. TODO invalidate texture mipmaps .. the h/w actually seems to stream the mipmap data separate from the base textures in some cases. 2017-03-24 20:54:12 +00:00
TextureSheet.h Just use 1 hash map for the textures, instead of 1 for each format. Should greatly speed up texture invalidation. TODO invalidate texture mipmaps .. the h/w actually seems to stream the mipmap data separate from the base textures in some cases. 2017-03-24 20:54:12 +00:00
VBO.cpp Cache rom models, for better performance. 2016-03-26 22:44:26 +00:00
VBO.h WIP 2016-03-24 13:17:17 +00:00
Vec.cpp Fixes for non-Windows builds: Makefile updated and fixed header files in Vec.cpp 2016-04-05 04:30:52 +00:00
Vec.h Cull geometry based on the culling distances in the nodes. Should give some sort of speedup on lower end pcs where the CPU is predominantly the bottle neck. 2016-06-16 20:05:29 +00:00