Shadow projection tech name?

Discussion in 'Game Development General Discussion' started by emuler, Jun 5, 2019.

  1. emuler

    emuler Rapidly Rising Member

    Joined:
    May 23, 2014
    Messages:
    86
    Likes Received:
    27
    I remember it being the standard method after Biohazard blob-shadow type.
    It looks like it's using a second, less-detailed, mesh for texture rendering but I'm not sure and it would be interesting to read further details on it.
    Oddly enough, you can see Clock Tower featured softer shadows with transparency while Tekken 3 didn't. Weird if you take in account the studios sizes and funds.
    EDIT: I hope someone tell me the name for this shadow projection technique before this site closes.
    [​IMG]
    [​IMG]
     
    Last edited: Jun 6, 2019
  2. accel99

    accel99 Spirited Member

    Joined:
    May 27, 2008
    Messages:
    193
    Likes Received:
    19
    I dunno but if you look for post mortem Tony hawk pro skater on Dreamcast article they found a way to make a cheap precursor to real time shadow mapping. I might not be remembering well but they drew ovals for each body segment and rendered that to a texture. Afterwards they use the lights position/distance to calculate how the shadow will fall and render the shadow via multitexture around the skater giving them a softshadow that will conform to any slope. Maybe they used a similar technique?
     
    emuler likes this.
  3. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,373
    Likes Received:
    785
    It looks like it's just a shadow volume approach to me - just project the (possibly simplified) geometry onto the floor and assign a black texture to it. You wouldn't even need to Z-sort it, since you could just stuff the primitives into the display list so they are rendered immediately after the polys for the floor. The most expensive thing would be the projection - but the GTE is pretty good at that sort of stuff.
     
    emuler likes this.
  4. emuler

    emuler Rapidly Rising Member

    Joined:
    May 23, 2014
    Messages:
    86
    Likes Received:
    27
    Thanks for the replys! You're confirming my initial thoughts: it's a fake shadow projection and pre-dynamic shadows. It really did the trick, did it? I recall saying "look at those shadows! cool!".
    So every object projecting this kind of shadows actually has an additional simplified mesh (looking a little like Mokujin for human meshes) which it's there but not rendered.
    Shadows would cast from this submesh instead of the visible one with a sort of "render to texture" (I mispelled as "texture rendering" in first post). Did I understood you people correctly?

    TriMeshoihoi-san (neat obscure PS2 game ;)), it seems to me after a few readings about the GTE itself and interviews made to many ex-PS1 devs that this processor was a hell of a nightmare to get used but very rewarding at mastering it. Can we say that it was a good bad hardware concerning 3D game development?
    I learned that the initial set of games (for almost 2yrs) were made without full access to hardware, but the things devs were achieving at the console-life's end was remarkable.
    I talk of course about the software shading in Crash Bandicoot, blur in Dino Crisis 2, Breath of Fire IV, Tenchu 2... heck, didn't soul reaver had anti-aliasing implemented by software? Lot of good memories arises. sniff.
     
  5. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,373
    Likes Received:
    785
    Yeah - it's a guess, but I think that's the way it works. Make a copy of the object geometry (this could be a full copy, but would probably be simplified for performance reasons) then project it onto the same plane as the floor using the light location as the origin. In fact, you don't need to use any texture at all - just shade it flat black (this also improves the performance). If you are using solid shadows, you're done - if you want semi-transparent shadows then you need to cull the transformed polys so they don't overlap since otherwise the background would look strange.

    Compared to the other systems (I.E. Saturn) that were on the market at the same time, the PSX was very accessible - you can get a good idea of what the early developers had access to by looking at the Yaroze documentation, since that's basically Lib 2.0 with a few functions removed. The biggest problem with the GTE is simply that's it's a co-processor and has some quite complex and time consuming instructions, so for best performance you have to interleave GTE instructions with the ones for the main CPU. In the later library versions, Sony provided a tool that did this in a semi-automatic manner, but in the older libs they just provided a bunch of calls that invoked the various GTE functions without providing any details of how it worked internally at all.

    Even at the end, Sony had the official position that you should only use the libraries, although there were some developers that ignored this. In fact, even right from the start there were developers like Psygnosis that wrote stuff that directly hit the hardware and Sony generally turned a blind eye to it - this is part of the reason that certain titles had compatibility problems when running on the later PS2s with the Deckard semi-emulated IOP.
     
    emuler likes this.
  6. emuler

    emuler Rapidly Rising Member

    Joined:
    May 23, 2014
    Messages:
    86
    Likes Received:
    27
    That's... nuts. I suppose 3D hardware was companie's in-house secret back then, because the novelty (translating industrial spionage)
    but it sounds so like "throwing rocks over your own roof", like here's the beast (psx) but don't unleash it.
    The unreleased ICO prototype for PSX surely had some truly amusing scenes rendered in realtime, that's a clue for PSX full power in a manner similar to Saturn's Shenmue (if it really was running in real saturn, which it's heavily discussed).
    It's been a pleasure reading through your post, TriMesh. Thanks a lot for all the info provided.
     
  7. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,373
    Likes Received:
    785
    I think it's more a question of support than secrecy. If you restricted people to using the libraries then if you subsequently changed the hardware you just had to make sure that it behaved correctly in the cases that represented what the libraries did, rather than for every possible thing that some developer might have thrown at the hardware, which could in extreme cases prevent you from making any changes at all.

    By saying "we only support the library" Sony were effectively saying "if you decide to bypass the libraries and something breaks later as a result, it's your problem not ours" - an example of this is some of the PSX WipeOut games hard crashing at the start of the race when run on a PS2 because Psygnosis had decided to hit the hardware directly.
     
    emuler likes this.

Share This Page