Author Topic: Figure Print Process [Arcanaville]  (Read 62112 times)

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Figure Print Process [Arcanaville]
« Reply #80 on: April 26, 2016, 05:38:25 PM »
Age of the model doesn't really have anything to do with it, other than some of the pieces of the Atlas Park revamp are much larger (entire city blocks as a single model), so they're easier to pick out of the jumble. The older assets tend to be much smaller pieces that are assembled in the map editor.

The game itself puts the models themselves into vertex buffer objects and uploads them to the GPU. The vertex program on the GPU handles transforming the models into their final positions, as well as deforming the meshes of models with bones. That allows the game to take advantage of hardware acceleration for geometry transformation.

I've never used GLintercept, so I'm not sure what it does exactly, but it sounds like it's pulling the models out of the VBOs. That makes sense -- I can't think of a reasonable way for a software intercept hook to get the final transformed verticies short of emulating a video card and running the vertex program itself.

I'm actually kind of surprised you were able to get a complete costume, as costume pieces are drawn and transformed separately. I guess it makes sense that the untransformed 'resting' position of various costume pieces would align with each other.

Turning off the "Use Geometry Buffers" option in the advanced graphics settings menu may help you get a cleaner capture. That will disable the use of VBOs and vertex programs entirely and force the game to perform all of the transformations in software and send the final vertex positions in the draw calls. It just depends on how good GLintercept is at capturing non-VBO data from the fixed function pipeline.

If you're using icon, you can also intentionally choose an invalid map name. Then you'll have nothing but the player character and the skybox to deal with.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Figure Print Process [Arcanaville]
« Reply #81 on: April 26, 2016, 07:11:13 PM »
The game itself puts the models themselves into vertex buffer objects and uploads them to the GPU. The vertex program on the GPU handles transforming the models into their final positions, as well as deforming the meshes of models with bones. That allows the game to take advantage of hardware acceleration for geometry transformation.

I've never used GLintercept, so I'm not sure what it does exactly, but it sounds like it's pulling the models out of the VBOs. That makes sense -- I can't think of a reasonable way for a software intercept hook to get the final transformed verticies short of emulating a video card and running the vertex program itself.

GLintercept is an OpenGL shim: it catches the OpenGL rendering commands and basically spits the primitives out to a file in OBJ format.

It actually *doesn't* do a good job (or any job) with transforms, which is why the only way to run it effectively is to disable ultra mode and to disable those ARB extensions in the opengl config file as mentioned in my instructions.  That forces the client (I presume) to render without vertex transformation programs.  If you don't do this step, you end up with models showing up in the OBJ file as a set of disassembled parts at the origin stretched out like someone ax-murdered the Vitruvian Man.

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Figure Print Process [Arcanaville]
« Reply #82 on: April 26, 2016, 07:35:02 PM »
Oh, ok, I didn't read the full directions. Disabling GL_ARB_vertex_program will have the same effect as turning off the geometry buffers option, so sounds like that's already being done. GLintercept must just not take the worldview matrix into account when dumping objects.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Figure Print Process [Arcanaville]
« Reply #83 on: April 26, 2016, 07:48:50 PM »
Oh, ok, I didn't read the full directions. Disabling GL_ARB_vertex_program will have the same effect as turning off the geometry buffers option, so sounds like that's already being done. GLintercept must just not take the worldview matrix into account when dumping objects.

As I understand it, GLintercept attempts to create a literal translation of the rendering commands to your dump file.  In fact, configured correctly it will, if you leave them on, dump the ARB translation commands into the file itself.  Which does you no good, but there it is.  I think the only translations it does are transliterations converting OpenGl draw commands into OBJ format, but not much less.  This can cause weirdness: sometimes the OBJ files contained illegal or other strangeness, like NaNs, which I always assumed were due to rendering errors caused by City of Heroes itself that were being dumped as-seen into the OBJ file.  Most OBJ readers didn't like those much.

The way to tell it to dump the geometry is with a hotkey: hitting the hotkey signals GLintercept to kick in on the next rendered frame: everything rendered within that frame gets dumped to the file, then GLintercept goes back to sleep.  So GLintercept doesn't so much pull geometry out as it siphons geometry as OpenGL draws it.

Mister Hassenpheffer

  • Boss
  • ****
  • Posts: 126
    • 3D printouts?!
Re: Figure Print Process [Arcanaville]
« Reply #84 on: April 26, 2016, 10:38:58 PM »
Costume editor would definitely be the way to go, unless you want all the poses. I need to see if I can capture a katana there.

Navigating any zone capture will be crazy. You'll want a clear frame of reference to locate the pc. I was trying to put my guys under the statue of Atlas, but since I'm losing ALL TRANSLATION (Animation, position, even relative placement of costume parts) it was a waste of time for me.  The results were pretty freaky, though. Despite the lack of character position data, I was getting crazy rotations on multiple iterations of the geometry. It's like a scene from Inception.



That's Atlas Plaza with the Statue and City Hall near the center of the image. The newer buildings that got a face-lift during the graphics upgrade are also captured. The bulk of the level was apparently built inside the game engine, as I would expect for a game of this age, and is not included in the GLintercept grab. So putting you're character away from landmarks might help isolate the model, but it could also leave you with no frame of reference for finding your hero. FYI to new users, none of this geometry is exported with meaningful names, so you're searching visually.

I'm wondering if my version of GLintercept is causing issues. I wasn't able to run using V 0.5. It prevented the client from running. I grabbed the latest version I could find (1.6 something?) and it seemed to work, but since I'm getting weird translation, I'm wondering what version others are using?

Something going on here worth mentioning... it looks like there are multiples being generated. I see at least three Atlas globes.

It seems to be in that one second keyframe there is enough time to generate multiple layers.

That would explain why some models were so difficult to work with, laggy, choppy, system intensive... super combative during subtraction/addition sculpting.

Although they were simple constructs, they had numerous layers and I have no way to discern how many.

Interesting...

 

Dreadnaught

  • Underling
  • *
  • Posts: 8
Re: Figure Print Process [Arcanaville]
« Reply #85 on: April 27, 2016, 02:27:43 AM »
MH, yes, the duplication is interesting, not sure what to make of it. It's consistant, every time I try a grab of Atlas, I get this. I also tried your tip on capturing inside the costume editor. I was able to grab weapons that way, but I couldn't get any poses or even costume geometry.

Codewalker, thanks for the invalid map tip. That certainly simplifies finding character parts.

Arcana, I did follow the instructions for disabling GL_ARB_vertex_program, GL_ARB_fragment_program, and GL_ARB_vertex_buffer_object, but still have the static costume parts stacked at world origin.

I'm using GLintercept v1.3, but whether that matters, I don't know.


Mister Hassenpheffer

  • Boss
  • ****
  • Posts: 126
    • 3D printouts?!
Re: Figure Print Process [Arcanaville]
« Reply #86 on: April 27, 2016, 05:08:17 AM »
As far as the duplicates are concerned- I don't think it's your GLintercept. This might be hardware/driver related. My zero length files definitely were.

Another thing to consider; seeing as how duplicates are being generated, that's in the outer areas, where only two or three passes get stacked.

One step further means any captures done inner area, like the costume editor, might actually generate many more stacked copies due to not having to render anything else.

I thought I was the only one dealing with multiples. Seems it's a Glintercept thing. <---guessing

Once you do get the geometry you are after you will need to "flatten the image" not just the additional points but the polys as well.

I'm not familiar with blender so I'm unaware of the tools you may have at your disposal.

Stacked geometry, kludged geometry confuses printers.
« Last Edit: April 27, 2016, 09:10:45 AM by Mister Hassenpheffer »

Garble

  • Boss
  • ****
  • Posts: 104
  • Shy Weirdo
Re: Figure Print Process [Arcanaville]
« Reply #87 on: April 27, 2016, 03:14:41 PM »
I've actually had better luck doing grabs inside of buildings because it limits how much extra info is captured. It's kind of like a paint bomb going off and everything that gets touched gets captured.

If I do it inside City Hall I just have to remove the building parts and some statues in order to get my toon. If I do it outdoors everything gets grabbed. Even buildings beyond the war walls.

Mister Hassenpheffer

  • Boss
  • ****
  • Posts: 126
    • 3D printouts?!
Re: Figure Print Process [Arcanaville]
« Reply #88 on: April 28, 2016, 10:00:59 PM »
Inside city hall would probably be the best place to do captures.

Location, familiarity, navigation... yeah I'll vote for that.

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Figure Print Process [Arcanaville]
« Reply #89 on: April 29, 2016, 02:24:28 AM »
There are zones in the game that are test zones that are essentially empty.  I believe you can get to them within Icon.  If you can make GLintercept work with Icon, you should be able to zone into one of them and be able to capture geometry where the only things that exist are your character and perhaps the bounding boxes of the zone.

Dyne

  • Lieutenant
  • ***
  • Posts: 54
  • Gluer of Gears
Re: Figure Print Process [Arcanaville]
« Reply #90 on: May 01, 2016, 04:02:35 PM »
 I used this some time ago to try capturing my characters, but I was getting weird scaling issues on parts back then.  My most recent round with Icon a few years ago resulted in frequent crashes due to a dying motherboard, so I didn't get very far.

Having recently got a printer, I'm hoping to do some friends' characters for gifts (I already have costume files).  Unfortunately, I now have an NVidia card with Shadowplay, and I don't have onboard video on my current motherboard.  Installing an old GPU for this seems like a less than optimal solution.

(PS: I'm still alive.  Just been very busy with other things.)
-= Virtue Server - 2004-06-13 to 2012-11-30 =-
hortis publicis gemini in aeternum

Usurper Dyne, Still Heart, River Elemental, Saul Invictus, Grim Grinner

TimtheEnchanter

  • Elite Boss
  • *****
  • Posts: 1,466
  • There are some who call me... Tim?
Re: Figure Print Process [Arcanaville]
« Reply #91 on: May 01, 2016, 10:06:10 PM »
There are zones in the game that are test zones that are essentially empty.  I believe you can get to them within Icon.  If you can make GLintercept work with Icon, you should be able to zone into one of them and be able to capture geometry where the only things that exist are your character and perhaps the bounding boxes of the zone.

Or just make your own empty map.

http://www.cohtitan.com/forum/index.php/topic,7551.0.html

Dyne

  • Lieutenant
  • ***
  • Posts: 54
  • Gluer of Gears
Re: Figure Print Process [Arcanaville]
« Reply #92 on: May 02, 2016, 01:33:35 PM »
I stupidly missed the part where you should choose gLIntercept (I grabbed both arcana's dropbox version and the latest from github) based on the application, not the operating system.  CoH is a 32 bit app.  The 64 bit gLIntercept wasn't responding at all. 

Fixing that made it work.  Sort of.  It was hiccupping for a few seconds and putting Frame folders in the Paragon Chat directory (rather than in the COH folder, where I expected it to put them, and where the config and opengl32.dll are located).  Those folders contained Images and Shaders subfolders, but no object.  But at least it was responding.

Briefly.  Then I realized that I'd forgotten to fix the plugin path in the gliconfig.ini, so it wasn't using Ogle at all.  After fixing that, I can't get ParagonChat to start COH.   All it says is "Failed to launch client".

If I deliberately break the plugin path, it starts opening CoH and creating folders again, but (obviously) not saving an object.  I don't think it likes ogle.  This happens with both the 0.5 version of gLIntercept and the current 1.3.3 version from github.  I "reinstalled" ogle to no effect.

I tried to figure out how to pass -useTexEnvCombine to CoH.  Unless Paragon Chat passes any unrecognized command line switches to the client (which it might, but I can't recall), I can't see any way to use that option.  Either way, putting it in the PChat properties doesn't help.

I also tried putting the system's opengl32 into the game directory and setting GLSystemLib, but that didn't help either.

Unless the lack of -useTexEnvCombine is the problem, I'm stumped.  Given that the DLL and config files are in the COH directory and the Frame folders are ending up in the Paragon Chat directory, maybe something is confused?
-= Virtue Server - 2004-06-13 to 2012-11-30 =-
hortis publicis gemini in aeternum

Usurper Dyne, Still Heart, River Elemental, Saul Invictus, Grim Grinner

Pengy

  • Badge Badger
  • Elite Boss
  • *****
  • Posts: 1,132
Re: Figure Print Process [Arcanaville]
« Reply #93 on: May 02, 2016, 02:34:40 PM »
I tried to figure out how to pass -useTexEnvCombine to CoH.  Unless Paragon Chat passes any unrecognized command line switches to the client (which it might, but I can't recall), I can't see any way to use that option.  Either way, putting it in the PChat properties doesn't help.

I also tried putting the system's opengl32 into the game directory and setting GLSystemLib, but that didn't help either.

Unless the lack of -useTexEnvCombine is the problem, I'm stumped.  Given that the DLL and config files are in the COH directory and the Frame folders are ending up in the Paragon Chat directory, maybe something is confused?
I'm pretty sure you need -useTexEnvCombine to keep your character from appearing as a pile of miscellaneous parts at the origin.

Dyne

  • Lieutenant
  • ***
  • Posts: 54
  • Gluer of Gears
Re: Figure Print Process [Arcanaville]
« Reply #94 on: May 02, 2016, 03:02:07 PM »
I'm pretty sure you need -useTexEnvCombine to keep your character from appearing as a pile of miscellaneous parts at the origin.

Back in post number four, voodoogirl quoted this:

Quote from: Arcanaville
Apparently if you try to disable those extensions [nb. referring to a GLIntercept setting] without the -useTexEnvCombine flag the client doesn't autodetect they are gone and tries to use them anyway, causing a crash.

I cleared the "Use Geometry Buffers" otion in CoH that was mentioned upthread, so it may not be needed.  But since I'm out of ideas otherwise, I figured it couldn't hurt to try it.

Hm.  Maybe I can convince someone that has it working with Paragon Chat to do some character captures and put them on dropbox or whatever for me, for the time being.
-= Virtue Server - 2004-06-13 to 2012-11-30 =-
hortis publicis gemini in aeternum

Usurper Dyne, Still Heart, River Elemental, Saul Invictus, Grim Grinner

Mister Hassenpheffer

  • Boss
  • ****
  • Posts: 126
    • 3D printouts?!
Re: Figure Print Process [Arcanaville]
« Reply #95 on: May 02, 2016, 08:00:49 PM »
Sharing my experience, Confirmed: Nvidea's shadowplay breaks capture.

Iv'e had success with an older ATI, a laptop onboard, and my desktop onboard (intel hd same as laptop).
« Last Edit: May 02, 2016, 08:19:51 PM by Mister Hassenpheffer »

saipaman

  • Elite Boss
  • *****
  • Posts: 921
Re: Figure Print Process [Arcanaville]
« Reply #96 on: May 02, 2016, 11:03:23 PM »
Is OGLE .3b (the version in link in the first message of the thread) the last version?


Dyne

  • Lieutenant
  • ***
  • Posts: 54
  • Gluer of Gears
Re: Figure Print Process [Arcanaville]
« Reply #97 on: May 03, 2016, 03:55:11 PM »
Sharing my experience, Confirmed: Nvidea's shadowplay breaks capture.

Yeah, I saw that.  I was just wondering if any progress had been made in the meantime.


Is OGLE .3b (the version in link in the first message of the thread) the last version?

As far as I can tell, yes.

I'm a little surprised nobody has put OGLE up on github, actually.  It is open source, after all (GPL v2).  While there are a number of github repos for projects called "ogle" on there, none of them appear to be the same program (OpenGL Extractor).

Maybe I shouldn't be too surprised.  While I could easily put it there myself, it'd just be something that others could download or fork.  I don't have the skills or time to do anything to maintain it.

There is a sourceforge page, but it doesn't seem to have any files.  It just has a link to http://ogle.eyebeamresearch.org/ (OGLE's Eyebeam Research download page, which is a dead link).  And, well, it's Sourceforge. 

The no-longer-updated Eyebeam research project page has the same dead link to the download page.


I came across this while looking for the correct link to the Eyebeam page.  Might try to fiddle with the other two programs mentioned there (the fourth bullet point is a dead link and the program wasn't named, so it's hard to figure out what that one was).
« Last Edit: May 03, 2016, 04:49:41 PM by Dyne »
-= Virtue Server - 2004-06-13 to 2012-11-30 =-
hortis publicis gemini in aeternum

Usurper Dyne, Still Heart, River Elemental, Saul Invictus, Grim Grinner

Arcana

  • Sultaness of Stats
  • Elite Boss
  • *****
  • Posts: 3,672
Re: Figure Print Process [Arcanaville]
« Reply #98 on: May 03, 2016, 06:18:21 PM »
I came across this while looking for the correct link to the Eyebeam page.  Might try to fiddle with the other two programs mentioned there (the fourth bullet point is a dead link and the program wasn't named, so it's hard to figure out what that one was).

I should point out that the OGLE distribution I linked for people is actually a combination of GLintercept and the OGLE plugin.  GLintercept is the OpenGL shim that intercepts OpenGL commands and OGLE is the plugin that takes those commands and converts them into OBJ format and spits them into a file.  Technically they are two different pieces of software but they work together: OGLE can't do anything without GLintercept.  3D Ripper is another program I discovered when I was originally researching this, but I believe it is DirectX only and I found it to be even more finicky than OGLE.  Of course, my information on that software is several years old at this point.

Dyne

  • Lieutenant
  • ***
  • Posts: 54
  • Gluer of Gears
Re: Figure Print Process [Arcanaville]
« Reply #99 on: May 03, 2016, 08:21:52 PM »
I should point out that the OGLE distribution I linked for people is actually a combination of GLintercept and the OGLE plugin.

Yeah, I've used it in the past as mentioned upthread.  At the time, it worked (sort of -- at least it captured obj files).  But that was not while using Paragon Chat, and not on my current motherboard or GPU.

Quote
Technically they are two different pieces of software but they work together: OGLE can't do anything without GLintercept

On my system it apparently can't do anything with GLintercept, either.  :)

More accurately, GLintercept works fine, but Ogle does not.  As soon as OGLE is brought into the mixture as a plugin, Paragon Chat will no longer launch the COH client after logging in.

If I start the client myself (using -project "cohtest" on the commandline to skip the ncsoft launcher) without involving Paragon Chat, it doesn't crash; I just get the typical CoH "Loading" on the screen for about a second, then it exits silently.  I'm not sure if that says anything useful or not.

When I get a chance, I'll try testing with Icon and see if that fares better.

Quote
3D Ripper is another program I discovered when I was originally researching this, but I believe it is DirectX only and I found it to be even more finicky than OGLE.  Of course, my information on that software is several years old at this point.

Yeah, I have an installation of it on my machine from 2012, and at the time it was DirectX only (indeed, the program is actually called "3DRipperDX").  Apparently the page I that linked was incorrect, because they were discussing it in the context of OpenGL and claimed it did both, but the website they link to still says OpenGL isn't supported.
-= Virtue Server - 2004-06-13 to 2012-11-30 =-
hortis publicis gemini in aeternum

Usurper Dyne, Still Heart, River Elemental, Saul Invictus, Grim Grinner