Ian Curtis
|
bf4d725970
|
Smooth texture repeat makes no sense for alpha/contour textures with pixel dilate. HW seems to treat them as non smooth anyway. Also implement some line of sight stuff, used by Scud. Really need to check the threading/synchronisation of the register reads but it basically works.
|
2018-10-19 20:59:46 +00:00 |
|
Ian Curtis
|
3eeec35e7c
|
Correctly emulate the real3d pro-1000 texture modes in our shader.
|
2018-10-13 13:29:45 +00:00 |
|
Ian Curtis
|
b5f9ad9651
|
Quad rendering engine. Set QuadRendering = 1 in the ini file to use, or -quad-rendering at the end of the command line to use.
|
2018-09-13 12:50:34 +00:00 |
|
Ian Curtis
|
e4f5f0bcaf
|
Sega bass fishing is starting some off the meshes with a shared vertex. Without having a previous vertex to share with, the values were just uninitialised and junk. The hardware itself seems to hold the value from the previous mesh, and sega bass fishing relies on this undefined behaviour to function correctly. Storing the cached vertices as member variables instead of locally to the function means it holds the values from the last mesh, and uses those values instead of random garbage.
|
2018-09-02 21:36:24 +00:00 |
|
Ian Curtis
|
c7ffd0a808
|
Draw transparent polys to separate layers and composite at the end. This solves a tonne of transparency errors we had been battling with for a long time. The model3 is strange in the fact it only supports a max of two translucent overlapped polys. They are not blended into the frame normally. Doing this means the topmost translucent polys only are visible in the scene, the equivalent of doing a depth pass first, but without the added cost.
|
2018-06-16 21:31:29 +00:00 |
|
Bart Trzynadlowski
|
3f9b1b76e5
|
Added a stretch mode (-stretch) and modified new renderer's viewport code (hopefully correctly) to handle aspect ratio correction and widening the way the legacy one does.
|
2018-05-03 03:46:44 +00:00 |
|
Ian Curtis
|
8266eecabb
|
Parse out line of sight position. Only known to be used by scud.
|
2018-01-15 21:27:21 +00:00 |
|
Ian Curtis
|
eb798ed15e
|
Star wars is the only game to pass unsigned fixed shaded values (per vertex brightness) to the renderer. Originally we thought that the specular flag would turn on unsigned values since it's the only game to set specular with these polys, but this logic turned out to be incorrect. The JTAG interface seems to config the GPU to turn on this functionality. (Harry Tuttle)
|
2017-10-05 19:15:00 +00:00 |
|
Ian Curtis
|
2786d95795
|
add interface for sun clamp
|
2017-09-02 14:54:16 +00:00 |
|
Ian Curtis
|
0efd4dac39
|
Finish fixed shading for 2.0 hardware. I'm pretty sure it actually works identically to step 1.5 hardware. The oddball is LA machine guns where the viewport ambient doesn't seem to effect the brightness. But the ambient works differently in this game because it uses the unclamped light model. Still need to investigate if the diffuse factor effects fixed shading.
|
2017-08-15 23:21:57 +00:00 |
|
Ian Curtis
|
c12e4c3215
|
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 |
|
Bart Trzynadlowski
|
a315627401
|
Added support for loading shaders from files for new engine and tile renderer. Changed help text to reflect new engine being default.
|
2017-08-11 00:41:10 +00:00 |
|
Ian Curtis
|
b00315b072
|
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 |
|
Ian Curtis
|
9b226ed478
|
parse out some culling node values
|
2017-04-17 10:40:07 +00:00 |
|
Bart Trzynadlowski
|
f34e25dfc7
|
Massive internal change: removed CConfig object and replaced it with a hierarchical config object system (Util::Config::Node). Games are now defined in an XML file. Hopefully I didn't break too many things :/
|
2017-03-27 03:19:15 +00:00 |
|
Ian Curtis
|
ff624afb4d
|
The mipmap data in some games seems to being sent behind the base textures, and when the base textures are bound and created the mipmap chain is not yet valid in memory. To fix this, we invalidate the base textures, when the mipmap chain is updated.
|
2017-03-25 00:06:24 +00:00 |
|
Ian Curtis
|
5b9741bd5d
|
Support high priority polygons. They are treated as a separate overlay plane by the h/w. Fixes some missing fx in harley.
|
2017-02-20 17:22:32 +00:00 |
|
Ian Curtis
|
24cbeed526
|
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 |
|
Ian Curtis
|
c82dc55485
|
cosmetics
|
2016-12-22 22:11:19 +00:00 |
|
Ian Curtis
|
72dd0dbf98
|
only need to cull against 4 clipping planes
|
2016-12-22 22:09:13 +00:00 |
|
Ian Curtis
|
da8b63b44b
|
The model3 shares vertices between polygons. But it also seems to do this for polygons with different textures. This means the texture coordinate for potentially different sizes textures is shared. Currently this was broken leading to some corrupted looking textures. The fix is to simply cache the old texture coordinates, and recalculate the normalised coordinates in the new texture coordinate space.
|
2016-12-06 14:39:46 +00:00 |
|
Ian Curtis
|
10a5d2c0e1
|
refactor
|
2016-12-06 12:25:34 +00:00 |
|
Ian Curtis
|
fe60d115d2
|
Revert changes .. if we clip against the real3d clipping planes, our wide screen hack won't work anymore.
|
2016-11-26 01:19:51 +00:00 |
|
Ian Curtis
|
665fa90425
|
Get clipping planes directly from the viewport data. Also no need to clip against a far plane
|
2016-11-26 01:12:08 +00:00 |
|
Ian Curtis
|
f0a15febd1
|
implement scroll fog, fixes a tonne of missing fx
|
2016-10-09 16:34:12 +00:00 |
|
Ian Curtis
|
85c4d85562
|
refactor
|
2016-06-19 21:43:09 +00:00 |
|
Ian Curtis
|
c2b1db11f8
|
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 |
|
Ian Curtis
|
5081ee99dc
|
Add code to convert the 16bit float format used by the hardware back into float 754 format. 16bit floats are used for the culling radiuses in the nodes.
|
2016-06-03 00:01:34 +00:00 |
|
Ian Curtis
|
36074d9fd5
|
Y texture offsets are just 5 bits. Texture coordinate wrap around happens in the same texture sheet, not into the next one. Fixes various texturing bugs in sega rally.
|
2016-05-30 13:25:00 +00:00 |
|
Ian Curtis
|
ff8d311dcc
|
support colour table pointer
|
2016-05-18 23:06:41 +00:00 |
|
Ian Curtis
|
43add90d2f
|
Fix bad texture seems
|
2016-05-09 16:26:34 +00:00 |
|
Ian Curtis
|
ded3168060
|
Split face colour from per vertex poly colour. Fixes colour bleeding between connected polys in harley.
|
2016-05-07 15:28:04 +00:00 |
|
Ian Curtis
|
58d187e59a
|
parse viewports in normal order
|
2016-04-19 22:05:12 +00:00 |
|
Ian Curtis
|
057ee94210
|
simplify
|
2016-04-18 14:06:10 +00:00 |
|
Ian Curtis
|
aee89390ba
|
add LOD table data. Maybe we can get clipping planes out of these
|
2016-03-28 20:11:46 +00:00 |
|
Ian Curtis
|
4992e59673
|
Cache rom models, for better performance.
|
2016-03-26 22:44:26 +00:00 |
|
Ian Curtis
|
0327db246f
|
WIP
|
2016-03-24 13:17:17 +00:00 |
|
Ian Curtis
|
f031e5d095
|
finish front/back face culling code based on matrix determinant. Optimised opengl to avoid redundant state changes.
|
2016-03-22 23:39:59 +00:00 |
|
Ian Curtis
|
e7eb912eaa
|
add maths functions
|
2016-03-22 13:47:28 +00:00 |
|
Bart Trzynadlowski
|
34301e97e1
|
Adding new 3D engine by Ian Curtis. Old engine moved to Graphics/Legacy3D/.
|
2016-03-21 04:10:14 +00:00 |
|