You can place infinite light sources and you can use specular lighting on Objects (Object3D.setSpecularLighting(<boolean>)), but no real (as far as OpenGL permits "real spot lights" anyway) spot lights. That's mainly because desktop jPCT doesn't support them either and that vertex lighting on Android is pretty much broken. Even attenuation doesn't work neither in the emulator nor on my phone...all you get is a wrongly lit polygon mess.
I'm glad that you mentioned OpenGL ES 2.0, because that gives me the chance to do a little rant on this topic:
<rant>
What the hell were they thinking when they designed ES 2.0? It's incompatible with 1.0/1.1! Unlike in "real" OpenGL, where you can still use all features down to 1.0 even in a 4.1 context (unless you create a "pure" context, which makes no sense at all), they decided to make ES 2.0 completely shader based and dropped everything fixed function based.
That has several drawbacks:
- Current phone's GPU are still weak! They have a fill rate of around 1/5 of a Voodoo 1 and that's true even for a power horse like the Galaxy S. The time isn't ripe for this IMHO.
- You have to maintain two completely different renderers. One for 1.0/1.1. and one for 2.0.
- You have to write one big or several small shaders to mimic the fixed function pipeline of 1.1, or otherwise, no lighting, no fogging....will show any effect.
Shader are a great thing! They give you a flexibility that you don't have with the fixed function pipeline. However, the design of ES 2.0 forces you to do everything in a shader, which is just plain stupid IMHO, because it stresses the hardware with no need, is much harder to maintain and creates a gaint hurdle to people who want to start programming OpenGL ES.
</rant>
However, support for ES 2.0 will eventually come in the future. But i need hardware that supports it to add it (the emulator just sucks) and i currently don't have any.