Skip to main content
GameDev.net gamedev.net
🔒 Locked

Is there any way to force wireframe mode in games from the driver? (nVidia)

Started by irreversible Aug 1, 2011 at 6:14 PM 8 replies 12.7k views
Original Post
irreversible
irreversible
The topic says it all. As best I understand this feature was available for a short while, but was pulled by nVidia due to negative feedback from the community. Is anyone aware of a way to override this regardless? Quite simply I'd like to force it to analyze geometry in games - a single-keypress toggle option would be wonderful.
irreversible
irreversible
Still curious about this - what's the best option? Don't tell me no one's wanted to do this until now...
dpadam450
dpadam450
Yea It is unfortunate, but what geometry are you wanting to look at? How they are doing trees/grass? Characters? It's probably not going to help you that much. You can always in game go up to objects and walk around to see their silhouettes and judge fairly well the geometry.
NBA2K, Madden, Maneater, Killing Floor, Sims 
kauna
kauna
If you want to go the hard way, you can create a hook to capture the d3d calls - that way you should be also able to set wireframe mode instead of solid fill mode.

Don't ask me how to do it since I never tried it. Google direct3d and hook. You should find some pointers how to do it.

Best regards.
irreversible
irreversible
Indeed, hooking driver calls is the only way to tap into the driver itself; however, I'm guessing there are already utilities out there that do it reliably. Currently I'm most interested in examining Fallout 3 in more detail - it's hard to tell on the highest setting where the line between geometry and textures runs, especially since there's constantly a lot of streaming going on.
kauna
kauna

Indeed, hooking driver calls is the only way to tap into the driver itself; however, I'm guessing there are already utilities out there that do it reliably. Currently I'm most interested in examining Fallout 3 in more detail - it's hard to tell on the highest setting where the line between geometry and textures runs, especially since there's constantly a lot of streaming going on.


Correct me if I am wrong, but I think it is more like question of hooking Direct3D calls. So practically you are able to catch (or implement your own version of) those SetRenderState or [font=Consolas, Courier, monospace][size=2]RSSetState [/font]calls (etc) and you are able to modify the states before being passed to the API.

Bet regards!
MJP
MJP
There's no general way to do it in a driver, because in any modern game/engine turning on wireframe fill mode for all draw calls will give you a black screen (due to deferred rendering, full screen effects, and other intermediate passes). It would have to be be built into the engine, or the driver would need to have specific knowledge of how the game structures its draw calls. Hacking it in yourself through a driver hook would be very difficult, since you would have absolutely no context to the API calls you receive and thus would have to make educated guesses as to where to change the fill mode.

Instead you might want to try just running the game in PIX. There's an API call that allows a game to disable PIX analysis and I would assume most games use it, but if they don't then you could inspect each individual draw call and see the number of triangles or the wireframe view of the mesh.
LancerSolurus
LancerSolurus
Why not simply use GECK (Fallout 3's map editor), it has a wireframe mode when editing the cells. That way you can examine everything including spawn points, nav maps etc...
******************************************************************************************
Youtube Channel
irreversible
irreversible
Thanks for the replies, guys! I was more hoping to be able to see LOD and the loading process in action in-game, but I'll definitely check out the editor for a more generic overview. I'll also look into PIX (as I'm not sure what it is yet ) when I get home!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.