Dolphin, the GameCube and Wii emulator - Forums

Full Version: Global Illumination
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
BONKERS Wrote:As for Ambient Occlusion, Nvidia actually recently switched their built in SSAO method to HBAO+. Which is much nicer, more accurate(though still an approximation), and other things.


If you find the right flag though, many games actually will work with HBAO+.

As far as I know HBAO+ is only used when you select the "high quality" mode under the NVCP/NVINSP ambient occlusion setting. Which for me gives me such a massive performance penalty that I can only use it on old games.

BiggestFZeroXFan

My intent of my post was to find out if anyone else was interested in adding ray tracing to the Dolphin Emulator or if it was just me (I had searched throughout the site and was surprised that the topic of ray-tracing specifically hadn't even been mentioned).

Dolphin is very sophisticated at this point, and I was just thinking about what The Big Plan for Dolphin is.
Let's theorize that in the near future, Dolphin is revised so that the compatibility rating for each GameCube/Wii game is 100%.
So does Dolphin then have its final release, or is there something else that can be done?
Since there are already features (such as higher resolution support, per-pixel lighting, free camera movement, etcetera) of Dolphin that enable you to play GameCube and Wii games in a way that surpasses the limits of those systems, I just wanted to see if anyone else was interested in adding one more feature that the GameCube/Wii didn't have.
GameCube is a great console but it does have limitations (as does everything); one was displaying of shadows. In Super Mario Sunshine, some shadows are actually just dark circles drawn beneath an object. I thought adding Global Illumination would make it look better.

Addressing what others wrote about how a scene can look great with rasterization and be drawn much faster than with raytracing, I agree. In my ignorance, though, I just don't know what is planned for Dolphin for the future to make games look even better. For example, I could building myself a quad-SLI system so that I could play Dolphin games with 128x antialiasing (I hate jaggies!), but is there anything planned for Dolphin software to make it look better in some other way? For example, could a tessellation or geometry shader be added, to take existing vertices and normals and create even more geometry (in Mario Kart Double Dash, there is a Chomp-Chomp which is mostly just a sphere; with a geometry shader, the Chomp-Chomp could be rendered with more vertices so it'll appear rounder, and with lighting, it'll look more realistic; the Chomp-Chomp is just an example--this technique could be universally applied to every object in every GameCube/Wii game). Another example is the GameCube's bumpmap support--could Dolphin take bumpmaps and create the geometry that the bumpmap is attempting to mimic (that way it looks correct from any viewing angle)?

Dolphin is awesome and I just wanted to share my ideas of how I think Dolphin could be made to be even better.
(I've only thought of a few ideas--I'm sure that everybody has a few ideas of how to make Dolphin better; maybe there should just be a forum dedicated to suggestions/ideas for future versions).

Here's one of my more ambitious ideas that would require a ridiculous amount of effort for very little payout (so don't try this anytime soon unless you really want to challenge yourself). In some GameCube/Wii games, there's a "demo" of its gameplay (like after the title screen, if you don't press any buttons). Sometimes instead of displaying graphics that's rendered on-the-fly, it displays a pre-recordered video file (perhaps out of concern that it plays exactly the same each time). When you play a GameCube game on a high-resolution display, the movie is upscaled to match the display's resolution; of course, this doesn't look anywhere near as good as if the scene was rendered natively at the higher-resolution. So Dolphin could have a feature that tries to recreate that scene using the game's geometric objects. To make it easier, the user can play the game normally and "click" on the screen where a relevant object is currently being displayed. Then Dolphin could do its best to try to "fit" the object in the scene. Eventually, every object would be found, transformed, and lit appropriately to match the movie, and it would be rendered on-the-fly at the display's native resolution.

Another idea is to have 3-D printer support (which I haven't worked with myself), so you can print out the various ships in F-Zero GX, for example. I wouldn't use this feature any time soon (since I don't have a 3-D printer), but in the distant future I might (so it could be on the list of things to to after every game has a 100% compatibility rating).
With enough hacking, Dolphin could support normal mapping on games which never used it (by adding the relevant information to shaders at runtime), but tessellation would be harder, and maybe impossible without reprogramming each game's engine to support it.

As for the 3D printing, there is a plan to enable the dumping and loading of meshes at some point, so these could then be opened in blender/Solidworks etc to be sent to a 3D printer. Also, when custom meshes can be loaded, tessellation becomes less important.

Everything else you've suggested would require basically the whole of each game to be rewritten, and by that point it would be easier to make an unofficial PC port than to run a modified game dump in Dolphin. That's hundreds of hours of work for a team of programmers for each game.
I now await for neobrain to yell at you
What I wrote is based on Neobrain-sourced info. At some point he said it wouldn't be too hard to just tag a normal map onto each shader as it is compiled (but it would break compatibility with any of the games which use normal or bump mapping already, and isn't something he's ever going to implement). There was also talk a few months ago of mesh dumping and loading, but it's been postponed until there's nothing more interesting to do.
AnyOldName3 Wrote:At some point he said it wouldn't be too hard to just tag a normal map onto each shader as it is compiled (but it would break compatibility with any of the games which use normal or bump mapping already, and isn't something he's ever going to implement).

This is pointless.

Normal maps are a very very very recent addition to Nintendo's development. VERY few wii games use them - I believe skyward sword is the first (and used sparingly at that), though I have some suspicions on wii sports resort and maaaaybe new super mario bros wii. Anyway, bump maps are even worse off. Excluding tech demos, there is only one game that I know of that uses bump maps, and it has bigger problems. That leaves us with a massive gulf: from 2001 to ~2010, we have pretty much ZERO use of either bump maps or normal maps.

That means starting from scratch. Even IF there was a way to add bump or normal maps to a game's rendering via Dolphin, every single bump map would have to be created and added by hand, which is an obscene huge amount of work. And developing full-blown normal maps that bake higher polygon details onto lower polygon geometry? REALLY REALLY HARD. It would make 3D Printing the models look like a cakewalk. Ripping with UV mapping intact (hard), repairing the inevitable ripping and UV mapping errors (not fun), tesselating and fixing the errors you missed in the previous step plus errors that the original model had that tesselation exposes (really not fun), then baking the normal map and trying it out and hoping you didn't break something. Repeat the process for every single model. YUCK. There is a reason we do this during initial development and not after the fact: you really need to develop the model with this in mind, and you need access to all of the original materials used in the creation of the model.

There is the slim possibility of easy conversions by going from bump map to normal map. A normal map is depth + angles, and a bump map is just depth. So they are related, so "tagging" in the shader is a possibility. But... while you can make a normal map from a bump map, it would still just be a height map, and give a result that has none of the benefits of normal mapping. The amount of data a full-blown normal map contains is enormous, and can only be achieved by baking from a higher polygon model. And that's the process I outlined above. So there really is no point in converting bump maps to normal maps.


Long story short - even excluding the voodoo required to add bump or normal maps into a game, even if you could just press a neobrain and MAGIC HAPPENS - this is still an obscene amount of work, and you can't do any shortcuts. I would not recommend it.




BiggestFZeroXFan Wrote:GameCube is a great console but it does have limitations (as does everything); one was displaying of shadows. In Super Mario Sunshine, some shadows are actually just dark circles drawn beneath an object. I thought adding Global Illumination would make it look better.

BiggestFZeroXFan Wrote:For example, could a tessellation or geometry shader be added, to take existing vertices and normals and create even more geometry

BiggestFZeroXFan Wrote:Sometimes instead of displaying graphics that's rendered on-the-fly, it displays a pre-recordered video file (perhaps out of concern that it plays exactly the same each time). When you play a GameCube game on a high-resolution display, the movie is upscaled to match the display's resolution; of course, this doesn't look anywhere near as good as if the scene was rendered natively at the higher-resolution. So Dolphin could have a feature that tries to recreate that scene using the game's geometric objects

[Image: 86597_v0_460x.jpg]
(02-21-2014, 07:34 AM)MaJoR Wrote: [ -> ]
AnyOldName3 Wrote:At some point he said it wouldn't be too hard to just tag a normal map onto each shader as it is compiled (but it would break compatibility with any of the games which use normal or bump mapping already, and isn't something he's ever going to implement).

This is pointless.

Normal maps are a very very very recent addition to Nintendo's development. VERY few wii games use them - I believe skyward sword is the first (and used sparingly at that), though I have some suspicions on wii sports resort and maaaaybe new super mario bros wii. Anyway, bump maps are even worse off. Excluding tech demos, there is only one game that I know of that uses bump maps, and it has bigger problems. That leaves us with a massive gulf: from 2001 to ~2010, we have pretty much ZERO use of either bump maps or normal maps.

That means starting from scratch. Even IF there was a way to add bump or normal maps to a game's rendering via Dolphin, every single bump map would have to be created and added by hand, which is an obscene huge amount of work. And developing full-blown normal maps that bake higher polygon details onto lower polygon geometry? REALLY REALLY HARD. It would make 3D Printing the models look like a cakewalk. Ripping with UV mapping intact (hard), repairing the inevitable ripping and UV mapping errors (not fun), tesselating and fixing the errors you missed in the previous step plus errors that the original model had that tesselation exposes (really not fun), then baking the normal map and trying it out and hoping you didn't break something. Repeat the process for every single model. YUCK. There is a reason we do this during initial development and not after the fact: you really need to develop the model with this in mind, and you need access to all of the original materials used in the creation of the model.

There is the slim possibility of easy conversions by going from bump map to normal map. A normal map is depth + angles, and a bump map is just depth. So they are related, so "tagging" in the shader is a possibility. But... while you can make a normal map from a bump map, it would still just be a height map, and give a result that has none of the benefits of normal mapping. The amount of data a full-blown normal map contains is enormous, and can only be achieved by baking from a higher polygon model. And that's the process I outlined above. So there really is no point in converting bump maps to normal maps.


Long story short - even excluding the voodoo required to add bump or normal maps into a game, even if you could just press a neobrain and MAGIC HAPPENS - this is still an obscene amount of work, and you can't do any shortcuts. I would not recommend it.

I forgot to mention that bit. It would require reworking of the entire of each mesh. I must have just assumed OP knew this, although that might have been a stretch.
(02-21-2014, 07:34 AM)MaJoR Wrote: [ -> ]snip

Correct me if I'm wrong, but I thought normal maps were a type of bump mapping? What you're saying doesn't contradict that but seems to imply otherwise.

Also, this poll is silly. I voted no. Tongue
Bump mapping tells the GPU to draw the surface above the mesh, but in the same plane. Normal mapping draws the surface in any direction from where the mesh originally starts, and also changes the surface normal to point in another direction so that reflections and specular highlights show up as if the mesh was that shape.
Lol Major's Post is pretty much spot on XD Before you can even consider normal maps you would need a VERY good ripping system to get meshes with their UV's and without flaws that would impede or completely screw up subdividing the mesh to sculpt with XD. The only times I THINK I have seen bump/normal maps in Nintendo games are in Skyward Sword and SMG1.

Also, if a game is using Normal Maps, could thse normal maps be seen when dolphin dumps textures, or would you need to make modifications to the dump code to do that (and no, Im not implying that we should edit normal maps, I was just curious)?
Pages: 1 2 3