Hi all.
I just wanted to add a place where people can post their own ideas about what they'd like to eventually see in Dolphin REGARDLESS of technical difficulties. Some could be implemented and run in real time on existing hardware, some twenty years from now. This is a forum for presenting new features--NOT to discuss how a feature wouldn't work on existing hardware, wouldn't work at all in a million years, etcetera. This is a forum for sharing which features you would like to have added.
This is a place to discuss what new features you'd like to have added once Dolphin is 100% compatible with ALL GameCube and Wii games. How can Dolphin exceed the abilities of the original GameCube and Wii in other ways?
To help, here are just a few features of Dolphin not in the GameCube and Wii consoles. Arbitrary frame rates. Arbitrary resolutions. Arbitrary anti-aliasing. Arbitrary controller support. Stereoscopic 3D support. Pause/resume support. Save/restore state support. Per-pixel lighting.
Here are a few ideas to get this forum started (and in parentheses how it could be done).
In all of the below examples, no "hacking" or "tweaking" is needed for specific games--they are features that would enhance any game, just as the above examples are applied to every GameCube/Wii game.
Ambient occlusion. This would be to make the game look better. (Ambient occlusion calculations can be based solely on vertices, so normals and light sources don't necessarily need to be present. This could be added to games that don't have lighting sources by calculating the ambient occlusion for each vertex and adding that value to or subtracting it from the material color of each vertex.)
Shadow maps. This would be to make the game look better. (All that's needed is vertices and light sources).
Shadow volumes. This would be to make the game look better. (All that's needed is vertices and light sources).
Phong shading. This would be to make the game look better. This is per-pixel lighting with the vertex normals interpolated. Forgive my ignorance if it's already implemented as part of per-pixel lighting. To make it look more accurate--at a computational cost--normalize the interpolated normals. (All that's needed is vertices and their normals.)
Tesselation or geometry shader. This would be to make objects look more realistic/complex. New vertices can be added to existing objects so that they look less like a polygonal mesh and more like an object in the real-world. (All that's needed is vertices and their normals. The easiest way--not necessarily the best way--is to interpolate the vertices and their normals like with Phong shading, normalize the new normal--an interpolated normal isn't automatically a length of one--, then add the length difference in the normalizing process to the new vertex. Viola! A flat surface is now a curved surface! This isn't the most accurate way, as I said before--you can make the shader more complex for even better, more accurate results.)
Ray-tracing. This would be to make objects look more realistic. This is computationally expensive, so it could be used when you have Dolphin paused (unless you have ridiculously fast hardware to render the game in real-time), so that you can preview what the same game would like in the future. (All that's needed is vertices, normals, material properties, and light sources. In the absence of light sources, object in the scene whose material property is emissive can act as light sources.) (Remark: you can go to Google images and search for "Windwaker raytrace" to get an idea of what at least one GameCube game could look like.)
Replacing bumpmaps with geometry. This is to make an object look more realistic/complex. Bumpmaps were used on GameCube games to simulate complex geometric objects with a simple texture. One problem with a bumpmap is that they are viewing-angle-dependant--a bumpmapped object may look complex from directly above, but from the side, it looks completely flat. (All you'd need is the vertices and the bumpmap).
PLEASE! PLEASE! PLEASE! IF YOU HAVE YOUR OWN IDEAS, PLEASE POST IT! DOLPHIN IS AWESOME! LET'S MAKE IT AWESOMER! :-)
I just wanted to add a place where people can post their own ideas about what they'd like to eventually see in Dolphin REGARDLESS of technical difficulties. Some could be implemented and run in real time on existing hardware, some twenty years from now. This is a forum for presenting new features--NOT to discuss how a feature wouldn't work on existing hardware, wouldn't work at all in a million years, etcetera. This is a forum for sharing which features you would like to have added.
This is a place to discuss what new features you'd like to have added once Dolphin is 100% compatible with ALL GameCube and Wii games. How can Dolphin exceed the abilities of the original GameCube and Wii in other ways?
To help, here are just a few features of Dolphin not in the GameCube and Wii consoles. Arbitrary frame rates. Arbitrary resolutions. Arbitrary anti-aliasing. Arbitrary controller support. Stereoscopic 3D support. Pause/resume support. Save/restore state support. Per-pixel lighting.
Here are a few ideas to get this forum started (and in parentheses how it could be done).
In all of the below examples, no "hacking" or "tweaking" is needed for specific games--they are features that would enhance any game, just as the above examples are applied to every GameCube/Wii game.
Ambient occlusion. This would be to make the game look better. (Ambient occlusion calculations can be based solely on vertices, so normals and light sources don't necessarily need to be present. This could be added to games that don't have lighting sources by calculating the ambient occlusion for each vertex and adding that value to or subtracting it from the material color of each vertex.)
Shadow maps. This would be to make the game look better. (All that's needed is vertices and light sources).
Shadow volumes. This would be to make the game look better. (All that's needed is vertices and light sources).
Phong shading. This would be to make the game look better. This is per-pixel lighting with the vertex normals interpolated. Forgive my ignorance if it's already implemented as part of per-pixel lighting. To make it look more accurate--at a computational cost--normalize the interpolated normals. (All that's needed is vertices and their normals.)
Tesselation or geometry shader. This would be to make objects look more realistic/complex. New vertices can be added to existing objects so that they look less like a polygonal mesh and more like an object in the real-world. (All that's needed is vertices and their normals. The easiest way--not necessarily the best way--is to interpolate the vertices and their normals like with Phong shading, normalize the new normal--an interpolated normal isn't automatically a length of one--, then add the length difference in the normalizing process to the new vertex. Viola! A flat surface is now a curved surface! This isn't the most accurate way, as I said before--you can make the shader more complex for even better, more accurate results.)
Ray-tracing. This would be to make objects look more realistic. This is computationally expensive, so it could be used when you have Dolphin paused (unless you have ridiculously fast hardware to render the game in real-time), so that you can preview what the same game would like in the future. (All that's needed is vertices, normals, material properties, and light sources. In the absence of light sources, object in the scene whose material property is emissive can act as light sources.) (Remark: you can go to Google images and search for "Windwaker raytrace" to get an idea of what at least one GameCube game could look like.)
Replacing bumpmaps with geometry. This is to make an object look more realistic/complex. Bumpmaps were used on GameCube games to simulate complex geometric objects with a simple texture. One problem with a bumpmap is that they are viewing-angle-dependant--a bumpmapped object may look complex from directly above, but from the side, it looks completely flat. (All you'd need is the vertices and the bumpmap).
PLEASE! PLEASE! PLEASE! IF YOU HAVE YOUR OWN IDEAS, PLEASE POST IT! DOLPHIN IS AWESOME! LET'S MAKE IT AWESOMER! :-)