⬅ Go Back to Master Guide List

Shoutout to Shadept for figuring out the process and explaining it to me, and for cchr11 and Kalathan for providing the savegames. I wouldn't have been able to write this guide without their help. Thank you!

<aside> 💡

Note: All tools used are linked at the bottom of the post.

</aside>

Install DXVK .dll files

Invisible War needs to be rendered with Vulkan to be captured with RenderDoc. Luckily, there exists a Direct3D to Vulkan translation layer that can be easily installed.

  1. To do this, all you need is to download and extract the .zip file for DXVK. Within it should exist two different folders, 64bit and 32bit.

  2. Invisible War is a 32bit application, so you need to grab d3d8.dll, d3d9.dll and dxgi.dll from the 32bit folder, and then place them within the System folder in your game installation location.

Capture 3D assets with RenderDoc

  1. Open RenderDoc. Under the Program section, set the Executable path to DeusEx2.exe from your game installation location. The Working Directory will automatically be filled afterwards. If you don’t have this .exe file, please check the optional tools section below for help.

  2. Under the Capture Options section, check the "Capture child processes" box. This is necessary because IW opens new processes every time a level is loaded, causing the capture to stop.

  3. Click the Launch button and wait for the game to start. If the game launches with white text displaying on the top left corner that says “Capturing Vulkan”, then RenderDoc is successfully debugging the application

  4. Load a savegame with the specific model you want to rip. In this case I wanted Ava Johnson dancing, which appears at one of the game endings.Note: Due to the nature of the capture (it’s literally like a 3D screenshot), you ideally need the model, if it's a character, to be standing still and not animating. In this example, loading a savegame with Ava talking to the player using the holocommunicator would’ve been a better choice as she is standing still. When you capture, try to get the character you want to finish talking/moving animations first so they're in a normal position.

  5. Once the game is loaded position your camera onto the model, wait for the position you want, and either hit Print Screen or F12 to capture. It should display at the top left that a capture has been taken.Note: F12 seemed to cause a bit of a problem in game as it's the quick-load button, and if you're doing this from the Steam version it might take a screenshot. If you have any screenshot software running that uses Print Screen, it's probably best to turn it off so it doesn't interfere with the capture process.

  6. The RenderDoc captures are stored by default (unless you saved them elsewhere) in your User folder > AppData > Local > Temp > RenderDoc. Load the capture you want into RenderDoc via File > Open Capture > select the .rdc file via the file browser. You may need to do multiple captures and load them to check each time if you’re struggling getting the character in the right position.

  7. When the capture is loaded, select the Texture Viewer tab so you can view snapshot of the screen when you took it. On the left is an event timeline that contains all the rendering steps that were saved from the capture, each assigned an EID (Event ID).

  8. You can expand ColourPass1 and ColourPass 2 to cycle through them. There can be hundreds of steps, so be patient. If you have difficulty interpreting them, you can go back into the Texture Viewer output and it should grey/blacken out the area on screen that graphical asset was associated with.

  9. If it's a character, the mesh is usually divided on different EID steps, one for the body, one for the head, and sometimes one for the eyes (not all character meshes have eyes for some reason). I didn't confirm this but it's likely any items the character was holding would be a fourth step following the character model. The character meshes tend to have larger numbers in the brackets compared to general environment geometry, listed beside the vkCmdDrawIndexed events.

  10. Once you find the asset, go into the Mesh Viewer tab where you will be able to view, rotate, zoom it within the preview panel to confirm it’s the one you wanted. Finally, you can export the selected mesh as .csv. Click the floppy disk icon to save it as .csv, and do this for every relevant mesh part.

Install the Import CSV Blender add-on

  1. Open Blender, and then open the Preferences (Edit > Preferences). Within the next window, click Add-ons on the left, and click the downwards-pointing arrow at the top right. There, the Install from Disk option comes up. In the file browser, select the ImportCSV.py file that was in the GitHub .zip file. Once loaded in Blender, check the box to enable the add-on.