Shiny Spheres

Hi there,

we are currently writing a snooker simulation and I would like the balls to have a really shiny and polished look.

Of course I already set the shininess up, but this results only in those specular highlights, nothing that would look like it is highly reflective.

As it seems, real time reflection is not possible and I think rendering 6 images for a cube map for every ball each update would have a great impact on performance…

Does anyone have an idea how I can get this shiny look?

To get a nice specular highlights, you will need per pixel lighting and thus you need to use a shader.



I'm not sure how to best implement the reflection, never tried yet.

Is there a way to just "fake" the shiny effect?

Shaders are not really an option because not all of us have fancy new graphics cards.

I remember in some old games, water effects and so on were also reflecting, just not reflecting what was happening around them.

Or would that be just making an environment map with some pattern that looks like a reflection?

The thing is, that I want to keep using simple materials with colors instead of textures for the ball.

Any ideas?

Yes you can fake reflections with environmental maps, test either cubemaps or sphere maps. You can use a prerendered texture as reflection so it's extremely fast (you will probably not notice any performance diff.).

Perhaps this can be done by Specular Lighting, does it really need a shader?



See LightState: http://www.jmonkeyengine.com/wiki/doku.php?id=lightstate

See MaterialState: http://www.jmonkeyengine.com/wiki/doku.php?id=materialstate





I know I accomplished specular & diffuse lighting in OpenGL and Java3D without shaders (though it might add speed).

sure it works with a simple MaterialState / Light but it dosen't look that nice, and the result depends a lot on how detailed the sphere is rendered.

msj121 said:

Perhaps this can be done by Specular Lighting, does it really need a shader?


AFAIK, Cubemaps dont necessarily need a shader, and its very simple to use them, just take a look at TestCubeMap and TestCubeMapGLSL
Core-Dump said:

sure it works with a simple MaterialState / Light but it dosen't look that nice, and the result depends a lot on how detailed the sphere is rendered.


I am not a pro-designer to be clear, but I liked the look of the above method in Java3D (maybe they used a Shader and didnt tell me). I mean if this person is worried about Graphics cards that can't handle shaders then I think they are probably focusing on a lower quality version, especially since there are no textures, just colours to objects.....


I think the best bet for this person is looking into LightState and MaterialState and going from there..