Blender -> egg questions

Let me preface this by saying that I am not an artist. If I try to make something in blender it looks like it went through, well, a blender.

Nonetheless, my artist friend has been making some models for my game. The problem is that the textures do not seem to be making it through.

I have posted the blend, egg, and a jpg file for anyone that can take a look for me. They are piggybacking off of my wifes photography website. Here are the urls:

How it should look.

The blend file

The egg dropped by chicken

We are having the same issue on all of the models he has sent me. If possible, I would like to get the textures as a separate jpg, so that I can reskin some of the ships, but I would be happy just getting the textures applied at this point.

Pview and the game both show the same model. I have tried turning on lighting in pview, and I also have light sources in-game, but it doesn’t help.

I am guessing that there is something simple we aren’t doing right, but I just don’t know what it is. Thanks for any and all advice!

Well, loading up the .blend file into Blender, the first thing I noticed is that the satellite isn’t UV-mapped. Chicken will only export UV-mapped surfaces. (Under Map Input in the Material button, it must be set to UV, and nothing else.)

I tossed onto a simple UV map on the satellite object and textures are showing up for me in Pview.

You’ll need to let your artist know that the models need to be fully UV mapped, and AFAIK, only one UV map per mesh. (I’m not even sure if Blender supports multiple UV maps per mesh. Lightwave does, and you have to be careful of that.)

Just to clarify the above - Blender and Chicken both support multiple UV maps just fine.

Hello :wink:

I’m gettin the exact same error as Tutunkommon while my textures are well defined as UV.
In my case, it’s like Panda doesn’t know where the textures I’m using are located…
Here’s the error message I’m having:

DirectStart: Starting the game.
Known pipe types:
  osxGraphicsPipe
(all display modules loaded.)
:gobj(error): Texture::read() - couldn't read: ./../../Textures/dirt1.png
:gobj(error): Unable to find texture "./../../Textures/dirt1.png" on model-path /Users/tallmystcarpet/Documents:/Applications/Panda3D/1.6.2:/Applications/Panda3D/1.6.2/models
:gobj(error): Texture::read() - couldn't read: ./../../Textures/rocks02.png
:gobj(error): Unable to find texture "./../../Textures/rocks02.png" on model-path /Users/tallmystcarpet/Documents:/Applications/Panda3D/1.6.2:/Applications/Panda3D/1.6.2/models

My textures and .egg files are well in the same directory and I’m aiming it correctly using :

environ = loader.loadModel("MyDirectoryPath")

It’s like Panda is always going to see what’s happening in /Applications/Panda3D/1.6.2/models where the tutorials are located.

As a result, my Mesh do appear in the render window but in black without textures on it!!!
What am I missing ?

as you see in the error-message panda looks in

./../../Textures/dirt1.png 

if the texture file is in the same folder as your egg. the path should be

./dirt1.png

you can fix this manually in your egg file using a text-editor. or you put all your files into the same location (blend file and textures) before your export.

Thanks ThomasEgi :wink:
You were right… I have to review all my blend files now!

Apparently said “tahnks” too quickly.
Each time I’m exporting my .egg, the multitexturing is not being applied!!!

1- Is there something I missed or must I split all the objects that are having more than one material ?
The second option is quiet impossible by the way!!!

2- An other question is also bothering me a bit :
Is it better to import (multiple small .egg files and load them separatly) or (one big .egg containing all the data we want to render) ?

Thanks in advance :wink:

What do you mean by multitexturing exactly ? Chicken does support a fair few options but it doesn’t support everything. If you just mean having multiple materials assigned face by face to a mesh then it certainly supports that, it also supports various Blender mix modes, but not all of them, and also supports the stencil map mode.

Multitexturing = putting two textures on the same material.

This is being done by using layers where you need to put a stencil between the two textures (So, three textures in all). That stencil in between is usually colored in black and white where the black area let the first texture appear and the white area allow the second texture to appear.

This method is giving you the freedom of drawing your textures whenever you want instead of simply assign your textures only to specific faces!

This is one of the Blender’s advantages that I really like and hope that I can use it with Panda!!!

That used to work, however there were issues with it, which were fixed in the svn version of Panda, and then pro-rsoft updated Chicken to work in the new way. Problem is this was done some time ago when it was thought that a new version of Panda was imminent, but it still hasn’t been released, and I don’t really want to revert Chicken temporarily. Effectively, the files being written out will only work with the 1.7.x series of Panda. Now there are two solutions - go back to using an earlier version of Chicken, R74 should do it, or upgrade to a cvs version of Panda! Sorry about that - it had completely skipped my mind, and it is certainly not ideal I know.

Hello lethe :wink:

If I understqnd correctly, you’re the programmer of the chicken converter!
If yes, I must say: “Bravo”, “Congrats” or even “Nazdrovia” or whatever you want… :wink:
If chicken wasn’t here, I think that I would have completly bypassed Panda3d while I was searching for the engine that I was going to use…

That being said :slight_smile:
I shall wait for the next 1.7 Panda release.
Guess it will be for very soon!

Thanks

I’m facing a new issue with chicken and I guess it’s again related to multitexturing exports.
Here’s the error :

As you can see I’m using R74 as suggested by letthe .
I received the exact same error with the newest version R81…

Everything is working good for both versions when I export objects with single textures but as soon as I add a second one, this message appear!

Does anyone know what to do ?

That error is usually caused by packed textures, though sometimes a procedural texture can cause it as well, and I expect a texture that has a ‘None’ type as well. Only textures saved to disk are supported, so I would check that is the case. (Sorry for the delay responding - just had a super hairy, and internet-less weekend. And I really should add better error handling in that regard, so it outputs an error message.) If its none of those I might have to look deeper, but that is my off-the-cuff reading of that error message.

Hmmm… :confused: … !
Now it’s working with R74. I’m absolutly not able to tell what I did to solve it as I restart the whole texturing process from scratch!
But now I’m facing a new little problem which bring to a new question :slight_smile:

Keeping it simple, let’s assume I’m having a cube and I’d like to apply two textures on it. I re-sized both textures in Blender (32 by X and Y).
Between these two textures I’m using a grayscale image which determine where my first texture should be visible and where the second one should. Of course that grayscale image is keeping its original size of 1 for X and Y.

While rendering the cube in Panda, the two textures appear where they should (well seperated by the grayscale image) but Panda kept a scale of one by one where it should be 32 by 32.

I found how to rescale the textures but that’s assume that I apply the textures directly within Panda which can be quiet a hard job for sofisticate objects.

So, here is my question :smiley: (finally)
Am I missing something in Blender or should I really load the textures using panda ?

Thanks in advance.

I think you are referring to Blenders ability to scale textures independently of the UV mapping, if so then that isn’t supported in R74; rather amusingly it was added in R75, along with the stuff that breaks multi-texturing in non-cvs versions of Panda… well, maybe not that amusing, but you get the idea! The easiest way around this would be to scale the uv-s directly, leaving blenders scale set to 1 - that would obtain the correct result. Alternatively get a cvs version or just wait, as it will all start working with Panda 1.7.0. Again I know this isn’t ideal, and sorry for the sillyness!

Indeed, I was referring to that. I was quiet sure you were going to answer that :slight_smile: Can’t wait for Panda’s new version…
Tahnks Lethe :wink: