
On the b3ta website there is a phenomenon known as a 'spong' which aptly sums up what happens when our eyeballs nearly pop out of their socket from shock or excitement. The spong is basically a couple of white circles with a black dot in the middle of each, enlarged beyond the normal size of the eye - this is a comic book effect that is enormously funny when done well. However here in this tutorial you are going to create a realistic 3D eye from scratch using only Photoshops tools, once the eyeball is finish you can then create rather more sophisticated 'spongs' of your own.
Getting started
Firstly open a new document in Photoshop Cmd+N (mac) Ctrl+N (pc) set the size to 640 by 480 and the Resolution to 72 and ensure the Background Contents is set to Transparent

Select the Eliptical Marquee Tool (M) and Shift drag out a circle to the size of the eyeball your going to create then select Edit>Fill (Shift+F5) and fill with White.

Bevel & Emboss
Now you have a basic white circle you will need to add the 3D effect to it by using the Bevel and Emboss layer style which can be accessed by Layer>Layer Style>Bevel and Emboss... or by clicking the Add a layer style button at the bottom of the Layers palette.

Set the Style to Inner Bevel, Technique to Smooth, keep the Depth at 100%. In the 'Shading' section set both the Angle and Altitude to 45 degrees. Then go back to the 'Structure' section and drag the Soften slider right over to the right (16) and then drag the Size slider across until you reach the effect as illustrated above - in my case it was 155, but this will depend upon the size of your original filled circle.
Hue/Saturation - Pink eye
I added here a Hue/Saturation Adjustment Layer to give the pupil a pinkish tint - Now it wasn't totally necessary to do this as in the Bevel and Emboss dialogue box I could have simply changed the Shadow Mode in the Shading section to a pinkish colour, but in doing this it both introduces you to Adjustment Layers and also Hue/Saturation which gives you better control over how things look from what Hue you want to tint your image, how much Lightness, to how much Saturation of colour you require. I have found Hue/Saturation and using other Adjustment Layers in general very liberating as it creates a new layer that can be altered or deleted without destroying the image layer your adjusting.

Hue/Saturation adjustment layer can be accessed by Layer>New Adjustment Layer>Hue & Saturation... or by clicking the Create new fill or adjustment layer button at the bottom of the Layers palette. In the Hue/Saturation dialogue box click the Colorize check box set the Hue to 10, Saturation to 15, and Lightness to +15 this gives a pinkish tint to the eyeball making the shading look more realistic.
Creating the pupil
Create a new layer above the Hue/Saturation adjustment layer
and Shift drag out a circle to make the pupil part of the eye using the Eliptical Marquee Tool (M) and fill with a colour of your choice. It doesn't matter at this stage whether the filled circle representing the pupil is perfectly in the middle of the eye you can adjust that once you have finish creating and filling it.
Next create a duplicate copy of this layer by selecting Layer>Duplicate Layer... to this layer we will add some Noise as a basis for creating the pupil effect.
Select Filter>Noise>Add Noise... set the Amount to 15 and ensure the Gaussian radio button and Monochrome check box are selected.

Next set the selection to the pupil image by selecting the Layer thumbnail icon in the Layer palette and Cmd+left-mouse-button (mac) Ctrl+left-mouse-button (pc) then select Filter>Blur>Radial Blur... and set the Blur Method to Zoom set the Amount to about 60
*** The selection was set to the pupil image to ensure that the Blur Zoom's centre was centred for the pupil and not the entire 640x480 image area because the effect would have been ruined if the pupil was not in the exact centre of that image area. Plus it also limits the blur to within the selection area.

Next select the original pupil layer (directly below the blur zoomed layer) and add a Gaussian Blur Filters>Blur>Gaussian Blur... to give the pupil an halo effect which if you look in the mirror you will notice that the edges of your pupils are not always pin sharp - particularly if your prone to drinking bouts ;o)
Add a Radius of about 7 pixels to the Gaussian blur and click OK.
Next create a new layer above all the other layers and create a smaller circle selection for the eye's iris. Fill with a darker (near black) shade of the pupil's colour. Duplicate this layer (using the same methods as with the pupil) and add a small amount of Noise to this duplicate layer and then add a small touch of Gaussain Blur about 1.0 pixels. Select the original iris layer (directly below the duplicated iris layer) and add a Gaussian Blur to about 7.0 pixels to create the same halo effect as the pupil layers.

Reflections
Add a new layer above all the other layers and Shift drag out a small circle using the Eliptical Marquee Tool (M) and fill with White.
Set the Opacity for this layer in the Layer Palette to 33%
Create a new layer above this layer and using the Eliptical Marquee Tool (M) drag out an ellipse shape and fill with White. Using the Transform Tool - Cmd+T (mac) Ctrl+T (pc) rotate the ellipse by about 45 degrees and position it over the the first reflection layer.
Set the Opacity of this layer to 50%
Next create a new layer above all the other layers set the Foreground Colour to White on the Tool Bar and then select the Brush Tool (B) click to open the Brush Preset picker (as illustrated) and set the Master Diameter to 30 px and the Hardness to 50%
Then position the brush at the bottom edge of the Ellipse reflection (as illustrated above) and paint in a dab of white. You can set the Opacity to 90% or whatever suits you 100% is fine but 90% takes away some of the solidness of the reflection.
There you have it, hopefully a realistic eye.
If you intend to use it with other images then remember that if you select Flatten Image Layer>Flatten Image... it will take away the transparency of the background making it difficult for you to re-use so instead select Merge Visible - Shift+Cmd+E (mac) Shift+Ctrl+E (pc) which retains the background transparency.