Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Tools

Development::Tools 3rd Party Tools for EQEMu (DB management tools, front ends, etc...)

Reply
 
Thread Tools Display Modes
  #1  
Old 06-19-2014, 11:37 AM
Packet's Avatar
Packet
Hill Giant
 
Join Date: Jun 2010
Location: Omicron Percei-8
Posts: 106
Default

Quote:
Originally Posted by Zaela_S View Post
Hmm? Find material, type in shader name, save? Or did you mean something else? The original texture already had the transparent parts set to 0 alpha.
Ok. So after about 60 accumulative hours of trying to figure out why my transparent materials were not coming in, I finally figured it out. I got the alpha masking in and it looks like I was completely wrong about texture transparency support (as you mentioned above). I imported .png's (4096x4096) with transparency while using the Alpha_VBS.fx shader on the material and it worked however, now my objects can be seen through other objects that share the same material. So I figured it was because my materials were being used on objects that need to be opaque so what I've done is separate the foliage leaves from the tree trunk(s) and created the same material using the default opaque shader. Now the tree leaves are masked and the trees/rocks/etc are no longer obscured (kinda).

With that being said, I've decided to attempt to separate the geometry which is being imported as .ter. Instead, I'd like to import the .mod files now. My terrain model is separate from all of the trees and rocks, etc... I imported the terrain without a hitch. I then navigated to the "Models" tab and right-click->imported the terrain objects obj file.

It seemed to process them all just fine and now I have a terrain_objects.mod in the model list. I then right-clicked the next box and hit "add placement", selected the terrain_objects and left the x y z and scale alone since it should match the terrain (as I didn't move anything from its original location). Now my client crashes. Without the .mod, it works fine.

Here's the eq client error log:
Quote:
2014-06-19 10:51:45 fatal error in main thread Code = c0000005 ADDR=0x02c43713
2014-06-19 10:51:45
2014-06-19 10:51:45 EAX=00000001 EBX=18a96a36 ECX=00000000 EDX=0018d00c
2014-06-19 10:51:46
2014-06-19 10:51:46 ESI=00000000 EDI=18a96a02 EBP=18a96a4e ESP=0018cf9c
2014-06-19 10:51:46
2014-06-19 10:51:46 Process was trying to READ invalid data.
2014-06-19 10:51:46
2014-06-19 10:51:46 Invalid access occurred at virtual address 0x00000000.
2014-06-19 10:51:46
2014-06-19 10:51:46 Fatal error occurred in mainthread! (Release Client #630)
2014-06-19 10:51:46
2014-06-19 10:51:46 Client Version: Oct 31 2005 10:33:37
2014-06-19 10:51:46 Skin Directory: UIFiles\Default\
2014-06-19 10:51:46
2014-06-19 10:51:46 Graphics DLL Loaded: Graphics DLL Version 2.00.0258
2014-06-19 10:51:46 Graphics Build Date: Oct 25 2005 17:11:03
2014-06-19 10:51:46 Video Card: NVIDIA GeForce GTX 570 , 9.18.13.1106
2014-06-19 10:51:46
2014-06-19 10:51:46 Crash (char = Packet, zone = nexus)
2014-06-19 10:51:46
2014-06-19 10:51:46 Local Player's World location at time of crash: -62.000000, 55.625000, -99.250000.
2014-06-19 10:51:47
2014-06-19 10:51:47 Gamestate at crash = 253
2014-06-19 10:51:47
2014-06-19 10:51:47 Processor: 8 of type 586
2014-06-19 10:51:47 Physical memory: 0 Megs
2014-06-19 10:51:47 CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3395837
This is just a note that importing as .mod didn't work for me. Importing it all as terrain did though however, there is another issue regarding UV mapping. When I imported the objs, the UV mapping is off by an inch. It's not precise however if I view my .obj's in a model viewer, the UV mapping is spot on. I can deal with uv mapping not being as precise but I'd prefer it not to be. I did also notice that after importing an obj as terrain, all of the textures were flipped upside down. This didn't effect how they looked (other than the shifting by an inch) however, it's likely the culprit. Any ideas?

Edit: It looks like OBJ exporting via 3ds Max produces obscured UV's. I'm going to try Maya or Blender instead, I'll post results.

__________________
Packet Loss
Current project:
Dark Horizons

Formerly "Richardo"
Reply With Quote
  #2  
Old 06-19-2014, 01:43 PM
Packet's Avatar
Packet
Hill Giant
 
Join Date: Jun 2010
Location: Omicron Percei-8
Posts: 106
Default

Normal maps (bump mapping) working well. Hurray! I added way too much depth to my normal maps for testing.

__________________
Packet Loss
Current project:
Dark Horizons

Formerly "Richardo"
Reply With Quote
  #3  
Old 06-19-2014, 01:44 PM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

Quote:
Originally Posted by Packet View Post
It seemed to process them all just fine and now I have a terrain_objects.mod in the model list. I then right-clicked the next box and hit "add placement", selected the terrain_objects and left the x y z and scale alone since it should match the terrain (as I didn't move anything from its original location). Now my client crashes. Without the .mod, it works fine.
Found bug for MOD import, should be fixed. Last place I thought to look, didn't occur to me until I had just left the house of course ;p

That stuff looks pretty nice!
Reply With Quote
  #4  
Old 06-19-2014, 02:21 PM
Packet's Avatar
Packet
Hill Giant
 
Join Date: Jun 2010
Location: Omicron Percei-8
Posts: 106
Default

Awesome. I'll let you know how it works out. Great job Zaela.

On the triangle editing which allows you to set specific flags on a specific vertex - I have a long list which contains 172852 vertices. It's great to see what material is applied but it's almost impossible to know what vertex is where. Would it be difficult to sort vertexes by what model they're associated with? This would simplify sorting out objects that should be permable and applying other flags. If not, I'm still content with what you've made.

Also on another note, when importing objects - more specifically the object material file (.mtl): There is a part that accounts for bump mapping which causes a nil error and corrupts the eqg archive.

It looks something like this (in the mtl file):

Quote:
newmtl terrain_object_alpha
Ns 10.000000000000
Ni 1.500000000000
d 1.000000000000
Tr 0.000000000000
Tf 1.000000000000 1.000000000000 1.000000000000
illum 2
Ka 0.587999999523 0.587999999523 0.587999999523
Kd 0.587999999523 0.587999999523 0.587999999523
Ks 0.000000000000 0.000000000000 0.000000000000
Ke 0.000000000000 0.000000000000 0.000000000000
map_Ka D:\C:\path_to_zone_source\obj_txr_alpha.png
map_Kd D:\C:\path_to_zone_source\obj_txr_alpha.png
map_bump C:\path_to_zone_source\obj_txr_alpha.png
bump C:\path_to_zone_source\obj_txr_alpha.png

I know it's this because if I remove the lines, it works just fine. So instead, I have to use the EQG Extractor to import the normals and add the texture normals into the material config (in the importer tool) but I have to do it in a specific order. If I already have the eqg file open with the zone importer while I am simultaneously importing new textures with the extractor; if I were to save the new normal modifier (in the importer) using the new texture - it saves the file as is and removes the textures I just imported. So, I have to import the textures and THEN open the eqg with the zone importer so that the texture files are there once I save my changes. It's no big deal but it caused some confusion when my normals weren't working. :p
__________________
Packet Loss
Current project:
Dark Horizons

Formerly "Richardo"
Reply With Quote
  #5  
Old 06-20-2014, 04:22 AM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

Quote:
Originally Posted by Packet View Post
Would it be difficult to sort vertexes by what model they're associated with? This would simplify sorting out objects that should be permable and applying other flags. If not, I'm still content with what you've made.
Technically they are all part of the single model glob that is the TER. The EQG game files don't have the concept of a submesh or anything like that, so I wouldn't be able to read boundaries from them beyond material associations. However, I might be able to whip something up for imported models only -- the .obj file does keep track of different named sections of geometry from the modeller (with the "Objects as OBJ Objects" export option from Blender, for example), so I could keep those in an external file and read from there. Probably worth doing; the list is just way way too long to look at as things are.

(Reminds me I need to add a way to set triangle flags for MOD models. Also I would be interested to see if EnvEmitter particles could be added to zone MODs through the weapon model importer and the particle data editor. Could probably have little fires, falling leaves, stuff like that.)

Quote:
Originally Posted by Packet View Post
Also on another note, when importing objects - more specifically the object material file (.mtl): There is a part that accounts for bump mapping which causes a nil error and corrupts the eqg archive.
Blah. The map_bump property is one of only two things it even reads from there, it ought to work :| Will have to take a look at that. I'm thinking of adding some kind of quick error dumping to the tool after that MOD import bug.
Reply With Quote
  #6  
Old 07-20-2014, 06:34 AM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

Quote:
Originally Posted by Zaela_S View Post
I might be able to whip something up for imported models only -- the .obj file does keep track of different named sections of geometry from the modeller (with the "Objects as OBJ Objects" export option from Blender, for example), so I could keep those in an external file and read from there. Probably worth doing; the list is just way way too long to look at as things are.
Went ahead and did this. Added a new tab called "OBJ Data": if you import a zone that has been exported with the "Objects as OBJ Objects" from Blender or equivalent, this tab will enable you to edit triangle flags by the "logical" divisions of the zone mesh from your modelling tool. For example, if you have a section of your zone mesh called "Hill" in Blender, there will be a listing for "Hill" in this tab which will refer to the same triangles. These are further subdivided by any materials that are applied to them; you can edit flags for only a certain material of a certain section of the mesh or for the whole section of the mesh regardless of materials.

tl;dr better triangle flag editor



Also added strafe movement to the zone viewer and stopped it wasting cpu time when the window doesn't have focus (probably shouldn't need to re-render at all unless the camera just moved now that I think of it... maybe next time).
Reply With Quote
  #7  
Old 07-22-2014, 09:53 AM
Packet's Avatar
Packet
Hill Giant
 
Join Date: Jun 2010
Location: Omicron Percei-8
Posts: 106
Default

Good work Zaela. I'll give an update soon on my progress. Again, thank you thank you thank you.

Edit: I noticed a bug some time ago that I figured (while not a big issue, can be easily replicated.). File->New EQG. then open the new EQG file you've just created.

You'll receive this error:

Quote:
.\gui/loader.lua:46: attempt to concatenate local 'ext' (a nil value)
stack traceback:
.\gui/loader.lua:46: in function 'LoadZone'
gui/main.lua:58: in function <gui/main.lua:49>
(tail call): ?
[C]: in function 'MainLoop'
gui/main.lua:255: in main chunk
Also, Zaela - I still get that "Attempted to index a nil value" error when trying to import a specific models as zone geometry. Is there some sort of triangle limit to .ter? Do you have any idea what it means by "nill value"? I mean, I understand something is missing but I'm trying to understand what is missing. I've manually looked through my obj file (as well as the mtl file) and I just don't see it.

3rd Edit:
I've narrowed the issue down to one of two possibilities. The UV mapping OR the texture itself. I have 3 models which are unwrapped via 3ds max and textured however, if I remove those 3 material entries from the mtl file - I get a successful import and the models come in without a texture. My next import, I will change the physical texture file out with one that already works to see if that's the difference. If the import fails, then this is likely because there is something wrong with the UV's themselves.

4th Edit:
Alas, swapping the textures (and I also tried swapping all of the material attributes from one that's working) resulted in the "nill value" error. I really don't know what's going on here. It seems to just not like the UV's on these specific models. I just don't get it. I unwrapped these models exactly the same way that I did everything else. Is there any logging or information that I can collect that'd tell me where to find said null value?
__________________
Packet Loss
Current project:
Dark Horizons

Formerly "Richardo"
Reply With Quote
  #8  
Old 07-22-2014, 08:28 PM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

Quote:
Originally Posted by Packet View Post
Edit: I noticed a bug some time ago that I figured (while not a big issue, can be easily replicated.). File->New EQG. then open the new EQG file you've just created.
There isn't really any reason to open a newly created EQG since there's nothing in it but an empty encoded directory. Will automatically be opened when you import something into it. Will fix it choking on contained files (or "files") with no extensions, though.

Quote:
Originally Posted by Packet View Post
Also, Zaela - I still get that "Attempted to index a nil value" error when trying to import a specific models as zone geometry. Is there some sort of triangle limit to .ter? Do you have any idea what it means by "nill value"? I mean, I understand something is missing but I'm trying to understand what is missing. I've manually looked through my obj file (as well as the mtl file) and I just don't see it.

3rd Edit:
I've narrowed the issue down to one of two possibilities. The UV mapping OR the texture itself. I have 3 models which are unwrapped via 3ds max and textured however, if I remove those 3 material entries from the mtl file - I get a successful import and the models come in without a texture. My next import, I will change the physical texture file out with one that already works to see if that's the difference. If the import fails, then this is likely because there is something wrong with the UV's themselves.

4th Edit:
Alas, swapping the textures (and I also tried swapping all of the material attributes from one that's working) resulted in the "nill value" error. I really don't know what's going on here. It seems to just not like the UV's on these specific models. I just don't get it. I unwrapped these models exactly the same way that I did everything else. Is there any logging or information that I can collect that'd tell me where to find said null value?
I haven't added logging or error dumps yet but I guess I'll do that next. I still have no issues with your stuff. Nil value error is pretty generic, but basically just means something that is expected to exist does not. Given what you've said it sounds like it is failing to find some textures listed in the .mtl file. The paths from that file are ignored, only cares about the file name which it looks for in the same folder as the .obj file. If your textures are all there, then I'm not sure what to say. Can only think of generic things: make sure the absolute path to each texture is less than 256 characters (old windows limit), maybe try making sure there are no spaces in the absolute paths (shouldn't matter).

Maybe I'll make it search in more places as well.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:24 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3