Well I have some good news today, I now know exactly why Shenmue One produces broken models during the extraction process using 3d Ripper DX. I have hypothesized that Shenmue One's core engine hides polygons to help performance and today I can now confirm that it is true after speaking with an actual game developer. The concept is known as Back-face culling, and it simply means that the engine determines whether or not a polygon of a graphical object is visible, if the polygon is not visible to the user the engine does not draw the polygon. This is the technique that is being utilized in the Shenmue One Engine.
The Shenmue Two engine on the other hand does not use Back-face culling it uses a different culling technique. Which is why we are able to produce full models in Shenmue Two. After speaking with the game developer that I am in contact with, we talked about solutions on how to fix this issue. It turns out that there may in fact be a solution. Here is what he said.
Developer:
"I think that ripping from Shenmue 1 may remain difficult (as I think the issue is that Shenmue 1 has better culling of backfaces, so you'll always encounter the issue of faces not visible to the camera not being captured), but likely there is a way to hack this out of the emulator directly (the emulator relies on DX for the backface culling, most-likely, and normally you can force-override DX settings for an application and disable it). That's just a guesstimation from similar experiences on other (non-DC) emulator based model ripping"
I then go on to ask him what exactly we need to modify in order for this to work.
Developer:
"Well, Direct X has configuration settings per instance, so the changes would need to be effected on NullDC (3D Ripper DX merely talks to the instance of DirectX as set-up by NullDC and scraps the vertex / texture information from there).
So the two choices are really either hack the DX PVR plug-in from NullDC to disable backface culling, or use a tool to override the setting once the application is already running (The DirectX SDK used to ship with such tools, but I'm not sure if it still does)."
We are hoping that we can use the DirectX SDK to achieve this rather than have to modify the PVR plugin. Lastly he did mention we could run into one final problem, which we hope does not happen.
Developer:
"The bigger issue may be if the Shenmue code itself performs a pre-render calculation of visible faces before it sends vertex data to DirectX (in that case, 3D Ripper will never be able to rip it, as DirectX never get's sent the relevant data). Overriding that behavior would be quite out of scope of my abilities (I've dabbled in hacking DC games before, but never something so complex)."
I will keep you guys posted on the issue, if we can disable the culling feature we will be able to ripp full Shenmue One models with ease