Supermodel/Src/Graphics/New3D
2017-09-06 13:07:39 +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 Optimise vertex data to cut down on unnecessary copying 2017-08-30 21:45:25 +00:00
New3D.cpp add interface for sun clamp 2017-09-02 14:54:16 +00:00
New3D.h add interface for sun clamp 2017-09-02 14:54:16 +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 Fixed shading (per vertex poly colours) on step 1.5 hardware have the viewport ambient value added to them. This fixes various shading on scud. To do this had to switch the maths to the vertex shader. 2017-08-14 09:14:06 +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 Fix attribute locations. glBindAttribLocation must be called linking 2017-08-11 11:59:41 +00:00
R3DScrollFog.h Fix attribute locations. glBindAttribLocation must be called linking 2017-08-11 11:59:41 +00:00
R3DShader.cpp Calculating the length of the vertex results in quite broken values for fogging when the vertices are traversing the view frustum. The hardware also wouldn't have been doing a square root per vertex for fogging. Simply using the z values is enough. Todo check clamping of values for the near/far planes. 2017-09-06 13:07:39 +00:00
R3DShader.h Modern hardware does backface culling in window space by calculating the face normal for the polygon, then doing a dot product against the view vector. The real3d pro-1000 on the other hand passes a pre-calculated face normal for each polygon which is used for culling. We were using this face normal to rewind the polygons so that regular backface culling would work. This worked 99.9% of the time. However this was failing on some models in Virtua Striker. The reason was because the pre-calculated face normals being passed were actually completely different to the actual face normals for the poly (not just inverted like you would expect). This broke our code. The solution was to emulate face culling directly in the vertex shader using the pre-calculated face normals directly. Only minimally tested this but hopefully there are no obvious regressions. 2017-08-29 10:27:29 +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