I am testing new, fresh compilation of Panda 1.7 and I am playing around with Chicken exporter. I’ve noticed that I when I am trying to export multiple stencils (that is two stencils + three normal textures = five textures in total that should blend nicely) I get only 4 exported to Panda. Fifth texture is not there.
Is it because of limit to texture stages that my graphics card may impose or is it Panda/chicken limit?
Thanks in advance for any help
4 textures might be the limit of what your gpu can handle without using shaders. more modern cards support 8 or even more stages natively.
but if you need more. you should save the stencil textures manually. and write a shader to apply them. you can still use blender to create and preview your models.
You don’t need to write your own shader - just call setShaderAuto() - the shader generator supports an infinite (Within reason.) number of stencil stages. Panda is actually hard limited to 4 texture stages when using the standard pipeline I think - at least I know that I also hit the same limit and my card has 16 stages apparently. (Blenders stencil support actually assumes your going to be using the shader generator - the lighting is wrong in the standard pipeline.)
Thank you for replies,
@Lethe: Actually I did have ShaderAuto enabled and it still allowed only 4 layers and lighting was working only on first layer, so textures on layer 2 and 3 and 4 rendered without shading… I will try it again in the evening today, maybe I’ve just placed ground on wrong branch in scene graph that is not affected by ShadersAuto? Will keep you updated.
Lighting only working on the first layer is what happens with the fixed pipeline - it seems very likely then that the shader generator isn’t working. It might be as you say that you didn’t switch it on, but it could also be caused by the shader being generated not working with your graphics card, or indeed anyone’s graphics card if its gone pear shaped. If that is the case it will have outputted some kind of error to the console, complaining about the shader, so the first thing I would do is check for that.
For the record, this isn’t true–Panda queries the graphics driver at startup for the number of texture stages it claims to support. If you’ve got an apparent hard limit of 4, blame your driver, not Panda!
Ok, I can confirm that:
- I’ve got setShaderAuto() called on NodePath that contains my stencil textured object (ground)
- Ground still shows only 4 layers and still only first layer is affected by lights
- Other nodes are affected by ShaderAuto correctly, so I’ve got per pixel lighting on my models.
- Console is not reporting any shader errors
- I am using blender 2.48, Chicken R81 and Panda 1.7 compiled from trunk yesterday
- My hardware is NVidia 7300 GT 256 RAM
Should I invest in new GPU?
Sorry about the delay responding.
I’m not sure to be honest - I would of thought that the graphics card would be fine. It does defiantly sound like your getting fixed function pipeline functionality however - check if you can see per pixel highlights on the multitextured surface to confirm. One thing I often forget is the basic shader thing - try sticking ‘basic-shaders-only #f’ into a .prc file, or dropping that into the config system some other way - the manual will tell you how. That might be it, but I am afraid I don’t have any capacity to test this right now. Tell me if that works, if it doesn’t I’ll pass this on to someone who knows this system better!