Supermodel Latest Builds for Download (currently SVN 722)

Discuss Supermodel and your favorite Model 3 games. Show off your latest threads, this is the place to see and be seen.
Forum rules
Keep it classy!

  • No ROM requests or links.
  • Do not ask to be a play tester.
  • Do not ask about release dates.
  • No drama!

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby HarryTuttle » Mon Nov 06, 2017 5:32 am

Ian wrote:It has a lot of transparency errors.


The problem of transparent polygon sorting and therefore the ugly contour around the trees I think is shared with other games, so once the db traversal logic is understood that should hopefully fade away ;)

Regarding the "hole" on the car's back windshield, it's the corrupt transformation matrix that plagues also Ocean Hunter, in my build I've fixed that with a patch-hack posted time ago (near/far planes patch). By the way, I've tested it for many months and not found any regression so far... I could be good as a temporary fix until a real solution is found.
User avatar
HarryTuttle
 
Posts: 624
Joined: Thu Mar 09, 2017 8:57 am

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby Ian » Mon Nov 06, 2017 6:35 am

You sure it's a bad matrix? A bad matrix would effect the entire mesh, not just make a hole in the middle :p
It must be some depth testing fail, although I am not quite sure what exactly
Ian
 
Posts: 1402
Joined: Tue Feb 23, 2016 9:23 am

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby HarryTuttle » Mon Nov 06, 2017 6:44 am

Ian wrote:You sure it's a bad matrix?


Not that sure... :) I remember what you wrote about Ocean Hunter in response to someone that noticed sometimes all objects disappeared leaving the game in an unplayable state. I thought it could be the same issue because my patch fixed that case and other similar ones (Star Wars Trilogy, Le Mans 24, etc.). Just a guess. ;)

EDIT:

I must add Ski Champ, during the intro there's a similar problem. In general, when it happens, I noticed that Near and Far values are passed to CNew3D::CalcViewport as std::numeric_limits<float>::lowest() or std::numeric_limits<float>::max()
User avatar
HarryTuttle
 
Posts: 624
Joined: Thu Mar 09, 2017 8:57 am

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby Ian » Mon Nov 06, 2017 7:03 am

Ocean hunter is caused by the fact we are drawing right in the middle of the culling nodes being updated, so it's an incomplete frame
I think upping the clock speed fixes it
Ian
 
Posts: 1402
Joined: Tue Feb 23, 2016 9:23 am

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby Ian » Mon Nov 06, 2017 9:09 am

Well i figured out the hole in the car
my evil stencil buffer hack

Code: Select all
   if (ph.Layered() || (!ph.TexEnabled() && ph.PolyAlpha())) {
      currentMesh->layered = true;
   }


I wonder if a depth only pass for translucent polygons, followed by a regular colour write pass would fix a lot of the issues we still see with shadows z fighting
Ian
 
Posts: 1402
Joined: Tue Feb 23, 2016 9:23 am

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby HarryTuttle » Mon Nov 06, 2017 12:53 pm

Ian wrote:Well i figured out the hole in the car
my evil stencil buffer hack

Very interesting, maybe I didn't have that (also) because I used some more "targeted" stencil hack, i.e. toward specific shadow cases so resulted, incidentally, correct. This is an except (spaghetti code ahead :) ):
Code: Select all
// Additional layered textures
bool layeredBlackShadow, layeredSpikeShadow, layeredShared, layeredCommon, layeredVS2, layeredSpike;

layeredBlackShadow = p.faceColour[0] + p.faceColour[1] + p.faceColour[2] == 0;
layeredSpikeShadow = (p.faceColour[0] == 0) && (p.faceColour[1] == 25) && (p.faceColour[2] == 15);
layeredShared = !ph.Layered() && ph.PolyAlpha() && !ph.SpecularEnabled();

// Virtua striker 2 & variants
layeredVS2 = layeredShared && layeredBlackShadow && currentMesh->format == 7 && !ph.AlphaTest() && !ph.TextureAlpha() && ph.LightEnabled();

// Spikeout
layeredSpike = layeredShared && layeredSpikeShadow && !ph.TexEnabled() && !ph.LightEnabled();

// All other games
layeredCommon = layeredShared && layeredBlackShadow && !ph.TexEnabled() && !ph.LightEnabled();

// Using 'OR' logic operator because we've already set currentMesh->layered before
currentMesh->layered |= layeredVS2 || layeredSpike || layeredCommon;

Ian wrote:I wonder if a depth only pass for translucent polygons, followed by a regular colour write pass would fix a lot of the issues we still see with shadows z fighting

I remember I tried something like that before, paying attention to VF3 and ECA. It should fix some of that but not all, I think it's still affected by something else. Anyway it's worth an attempt, because what I really did was some quick hack and I'm not sure that was done properly.
User avatar
HarryTuttle
 
Posts: 624
Joined: Thu Mar 09, 2017 8:57 am

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby Bart » Tue Nov 07, 2017 8:46 am

Model 2 actually sorted every polygon by depth and I think it had a few different modes for determining the depth value of a polygon. It did not have a z-bufffer, if I remember correctly. As you know, sorting polygons by distance from camera in general does not work because polygons can overlap in such a way that there is no correct rendering order, hence the need for a z-buffer (Quake famously got around this by employing BSP trees). The "depth value" on Model 2 could be selected from among a few different options, I think (average of the vertices, a particular vertex, etc.)

Anyway, I'm only mentioning this because I'm wondering whether Model 3 had a sorting pass as well. I don't know how much more geometry Model 3 can display over Model 2. Both systems rendered at 57.5 Hz. I don't think Model 3 has an order of magnitude more triangles per frame but I could be wrong. Given that it has a z-buffer, it seems most likely that either the scene graph was traversed in a particular way or that the polygon header was indeed used to sort polygons into buckets that were then rendered in separate passes. The sorting method used by Model 2 (described in the leaked Model 2 manuals) involves a table of lists. If Model 3 employs a similar approach, appending polygons to lists that are dependent on polygon state, then scene graph traversal may still matter in determining the ordering of polygons within a bucket.
User avatar
Bart
Site Admin
 
Posts: 2145
Joined: Thu Sep 01, 2011 2:13 pm
Location: New York City

Re: Supermodel Latest Builds for Download (currently SVN 673

Postby Ian » Wed Nov 08, 2017 4:42 am

I thought originally the hole in the car was caused by the fact we were drawing in a different order to the real hardware. But nope. That one threw me somewhat with my understanding how database traversal might be happening.

I don't know much about the model2 design but hardware sorting like that is extremely bizarre and unique to the model2. I noticed some Z order related issues in daytona on the model2 emulator. Wasn't sure if this was due to incomplete emulation, or a flaw in the design of the hardware.

The model3 had a 24bit depth buffer though, so there is no need for Z sorting hardware. It also wouldn't surprise me if the model3 was rendering 10x the number of polys as the model2, so z sorting wouldn't be scalable. You'd also need temporary memory to hold all these polys.

My current best guess is, the hardware might be doing some sort of sorting of top level sorting of culling nodes. Since each node has a bounding box it would be quite simple to do. We see overlap of textures with transparency, but as far as I can see (could be wrong here) there is no overlap of polygon translucency, and we never see Z fighting of co-planar polys, so they must have done a depth pass first before drawing these.
Ian
 
Posts: 1402
Joined: Tue Feb 23, 2016 9:23 am

Re: Supermodel Latest Builds for Download (currently SVN 680

Postby Jiterdomer » Tue Dec 12, 2017 10:25 pm

13 days before Christmas (first page updated).
Feel the heartbeat of my machine through this tight seat. I feel every motion of my machine
Image
User avatar
Jiterdomer
 
Posts: 492
Joined: Mon Sep 26, 2011 6:37 pm
Location: Los Angeles, CA

Re: Supermodel Latest Builds for Download (currently SVN 680

Postby Joaquim Gonçalves » Thu Dec 14, 2017 3:56 pm

Jiterdomer wrote:13 days before Christmas (first page updated).


Image

Merry Christmas to all.
Waiting...
User avatar
Joaquim Gonçalves
 
Posts: 451
Joined: Wed Dec 10, 2014 5:12 pm
Location: Portugal

PreviousNext

Return to The Catwalk

Who is online

Users browsing this forum: No registered users and 7 guests