Ooh-videogames
Regular
I 'm hoping that ERP, will respond before the thread ends up on the next page of threads. I can never get a answer thats say's that it can't be done, impossible or can.
Ooh-videogames said:I 'm hoping that ERP, will respond before the thread ends up on the next page of threads. I can never get a answer thats say's that it can't be done, impossible or can.
hupfinsgack said:Ooh-videogames said:I 'm hoping that ERP, will respond before the thread ends up on the next page of threads. I can never get a answer thats say's that it can't be done, impossible or can.
First of all , if you want an answer from ERP then I'd be a good idea to include his name in the title since it increases the chances of him dropping in.
Secondly, I believe Flipper can't do it without the help of Gekko, so you'll have to use the CPU.
ERP said:The reason EMBM doesn't require CPU intervention is that it is hardcoded into the T&L.
That's why Nintendo likes to call it "indirect texturing".Kristof said:EMBM remains one of the worst named functionalities ever, its a full dependent read operation which can be used for a lot more than just bumpmapping.
K-
ERP said:FWIW I haven't actually tried to do it, but it ought to be possible although not very practical (read slow) with multiple combiner stages. You would also have to so the per vertex setup on Gekko.
The reason EMBM doesn't require CPU intervention is that it is hardcoded into the T&L.
Err - I haven't looked at the docs in a long time, but from what I recall Flipper's dependant read performs a 3x2 matrix transform. So isn't all you'd need to do, set the appropriate vector in first row and clear the other on per vertex basis, and use a 1d luminance map as the target for resultant lookup.ERP said:No it's capable of per pixel, however the combiner doesn't have a dp3 operation, so you would have to do the multiplies and adds seperately.
Li Mu Bai said:I have heard that it can be done through cascading TEV stages, but the resultant vertex data must all be offloaded onto the Gekko. (processor intensive) So technically feasible, but problematic to implement. (& ultimately, fillrate limited) I hear much talk about "overloading" the Gekko with vertex instructions, (in discussions) yet have never really seen any examples of, or developers saying that this was a porting impediment so to speak.
This was supposed to cause or limit the GC's ability for displaying complex geometry & smooth animations. (RE4, MP, MP:Echoes are obvious examples of this being untrue) It ultimately depends on how capable the Gekko is at balancing the various processing tasks. The devs. proficiency with the architecture also comes into play.
Fafalada said:Err - I haven't looked at the docs in a long time, but from what I recall Flipper's dependant read performs a 3x2 matrix transform. So isn't all you'd need to do, set the appropriate vector in first row and clear the other on per vertex basis, and use a 1d luminance map as the target for resultant lookup.ERP said:No it's capable of per pixel, however the combiner doesn't have a dp3 operation, so you would have to do the multiplies and adds seperately.
I imagine the per-vertex stuff wouldn't be cheap, but it's still using just one combiner stage - no?
Potential Algorithms
Technically many shading methods work on current generation hardware as on the Nintendo Gamecube. These methods include (but are not limited to):
dynamically lit polygons with global and local lights specular highlights
illumination maps
reflection mapping
emboss mapping (shift and subtract of a height field)
bump mapping (per pixel calculations for diffuse, specular and reflective components)
projected shadows
self-shadowing
shadow volumes
projected reflections
layered fog
polynomial texture mapping
displacement maps
multiple texture mapping
custom dithering
Yeah I just saw it too - wondering though, if you kept changing that constant matrix memory with every primitive, what kind of speed impact would that have?ERP said::Edit: Scratch that I remember what the issue is, only one of the inputs can be set up in the shader, the other one comes out of constants.