OGLE: OpenGLExtractor by Eyebeam R&D | OGLE and the WoW Modelviewer

OGLE and the WoW Modelviewer

Awesome Sourceforge and OGLE user rameir has done some great work recently with OGLE and the World of Warcraft Modelviewer. This is one of those applications that does work with OGLE, but takes a bit of tweaking to get there. rameir has been kind enough to write a tutorial, which I publish below:

This was my experience getting models from ModelViewer to LightWave 3D 8.5.

Lets start with the process.

I've recently purged myself of playing WoW. Even so I still like the world and the content so even though I'm not playing I dink around with it. I happened upon http://www.merciless-gilde.com/charplaner/en/?show=planer Character Planner app. while searching for 3D WoW resources. It's a typical char stat page except for the extras section where you can export your stats to WoW-ModelViewer. This option generates an .eq file that can be imported into Modelviewer.

This led me to find and download the ModelViewer app. First I tried ver .50 alpha build. This barely loaded. There was another version which had the tier 4 & 5 armour sets. I don't have any beta files so it didn't work. I settled
on ver .48d and that worked as advertised. After playing in this nice sandbox for a bit I looked for a way to export the 3D data. Enter OGLE.

First thing OGLE tells you to do is download GLIntercept, install and read ALL the documentation. The included readme.txt is enough. Step 1, copy the opengl32.dll and gliConfig.ini to the program directory of the app you are trying to work with. The rest deals with editing the gliconfig.ini file to get it to perform the way you want. This is a good read to get familiar with it but not necessary.

OGLE has a prebuilt gliconfig.ini file that is just about perfect. This file is gliConfig_OGLE.ini and is in the zip from OGLE. Rename it appropriately. Even with the prebuilt file its a good idea to read the changes on the website
to understand what is being configured. In it's default operating mode GLIntercept captures every frame of animation once its activated. ModelViewer usually starts in the default stand animation so you can capture a huge amount of data in a very short time. One of the main changes to the OGLE config is the Ctrl+Shift+F keystroke. This triggers the capture and only grabs one frame. Much easier and more precise.

This seemed to be working fine, for the most part it worked like it said until I loaded the resulting "ogle.obj" into LW modeler. The object was smushed around the center point. After a few tweaks and retries I found the answer. The very last line of the Instructions, copy that into the Plugin section where it says. I hadn't noticed it at first so I had tried the 2 previous lines. You want the one with 3 removed extensions: vertex, fragment and vertex_buffer. What I don't know is if this is machine dependent. It may just work for my configuration or everyone so it needs to be tested.

Anyway once the file was edited as stated in the instructions and that last line was added, the object captured fine. One more time, EVERY suggested option is important to make this work. Try them all for your own results.

Once in LightWave you have a few options. The .obj format typically doesn't come with surface data. Instead when its imported to LW you get parts. The most important thing though is that you do get a UV map. So you can assign
a default surface to the whole model and assign the UV map in the normal method, or you can use 8.5's arts-to-surface plug-in to convert the parts to surfaces and then assign the UVmap. Either way works. The images captured to the Frame_xxxx directory match up perfectly to the UV map and you get a perfect preview in texture mode.

Lets compare this method with the built in export. Yes, I noticed the export function in ModelViewer after I got OGLE working. The export says it supports .obj and .lwo formats. It may but I couldn't figure out how to get what I wanted. It does output the mesh and sometimes it outputs the texture but it doesn't output a UV map along with it. This is where OGLE has a leg up. ModelViewer does have some cool view options. You can disable things like hair and underwear. This makes it much easier when trying to create a base model to build off of.

ex.

One thing to notice in LW. Many of the models have effect polygons added to them. These would be flat polys that a texture is applied to to create a special effect. After looking at the Shaman warlord gear, I see that the glow from
the shoulders is nothing more than swirls maped to a flat poly that float up. This speeds up gameplay but looks pretty odd when you try to add some real details to it. The nightelf eyes are the same way. There are 4 polys layered in front of the eyes to give it the glow look. With a little 3D know how you can easily correct that, for example.

Hope this helps and have fun,
Wyatt

Update:

The .5 alpha version of ModelViewer works pretty good. I just hadn't updated WoW to the latest patch.

The best part is if you missed the beta you can preview all of the Burning Crusade data early.

Check it out.

Update:

After successfully mapping the other models I had a thought. The UV info for the armour and accessories must be handled the same way, and so it is. Assign the UV map to all the parts, and simply point the different pieces to the different image maps. The UV data is perfectly preserved using OGLE.

Check it out:

This will be my last update for this topic unless something specifically comes up. I'm going to start converting some of the assets to high-rez and I'll show the results once I've accomplished something.

Some closing thoughts:
1. Make use of the Parts-to-Surfs plug-in in LW 8.5. It was made specifically to read the parts from .obj files and convert them to LW surfaces. In the default install it is tucked away under Utilities->Plugins->Additional. If you don't see it you may need to use the Add Plugins button to get it. If you are using a previous version then convert the parts manually, its a pain but its the best way to utilize the UV data.

2. Merge points. All the polys come in separated from the rest. If you attempt to smooth or subdivide the mesh you will get a mess. One merge has worked for me every time so far.

3. Remove the effect polys and create some volumetric effect yourself. This includes eye shine, weapons glow from enchants, glowing armour etc. In game effects just aren't made for prerendered scenes. For one, the effects follow
the moving camera around so that they look solid (old technique thats been used for years). Once you capture your frame, your effects are locked into position facing whatever angle the camera was at. Better to just make some real effects using high-rez techniques. My only thought now is how to translate them as some are curlicue shaped, others are moving slashes and various others. Not sure now but I'll figure something out.

Well I hope this was all helpful,
Good luck and have fun,
Wyatt