Skills

EQ2Emulator Development forum.

Moderator: Team Members

SAweb
Retired
Posts: 60
Joined: Wed Jul 25, 2007 11:14 pm

Post by SAweb » Mon Aug 13, 2007 5:07 am

LethalEncounter wrote:maybe, but that is up to someone else that wishes to devote the time to such a task. I have my hands full with this project so that one is definately not in my hands :P
Best of luck to anyone that is able to attempt something like that. I doubt I would be up to a challenge like that. :)
If you are interested in the 3D format, I suggest you take a look at the VeRenderMesh code first. That's the class that represents a raw mesh as stored in .draw files. The format is quite straightforward (if you ignore the likes of 'autoDropVertexIndices' and 'noPolygonShadowTriangleIndices', which I have no clue as to what they are), and you can probably have a simple DirectX or OpenGL app that renders these meshes in little time.
If you want to render the mesh with textures, it is more complex. You get the texture coordinates from the VeRenderMesh object, but you don't get the information on which textures to assign to each stage.
The process would be as follows. You would first parse the script with the definition for the object, for example:
clientvdl/appearances/accessories/wieldable_items/weapons/axe/battleaxe/battleaxe001_plain.vdl
And get the path to the VOC file with the "visual definition" of the object:
composed/characters/accessories/wieldable_items/weapons/axe/battleaxe/battleaxe001_plain.voc
You would then decode that file and end up with an object of the VeMeshGeometryNode class (or some class derived from it). This class contains information on each of the LODs of the object. For each LOD, you get the path to the render meshes that represent the object and the path to the "shader palette":
cooked/characters/accessories/wieldable_items/weapons/axe/battleaxe/battleaxe002.sp
This .sp file contains an object of the VeShaderPalette class, which in turn contains a list of scripts that define the shader palette:
shaders/characters/accessories/wieldable_items/weapons/axe/battleaxe/battleaxe001plain.vdl
Finally, this script defines the textures to apply to the object and has a reference to the shader code that is used to render the object:
shaders/templates/bclr_t2_bmp1_spwm.vdl
The problem with this approach is that there is no easy way to integrate all this script and shader code stuff in an existing 3D engine. You'd probably be better off exporting all the data you need to your own format and working with that.
If you want to work with animations, the classes to refer to are VeAnimMeshGeometryNode, VeSkeleton (.skeleton files) and VeAnimation (.anim files).
Info from www.eq2interface.com

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests