Para lograr lo que gluPerspective, tienes glFrustum
Para librarte de problemas trigonométricos, por aquí hay uno que explica cómo hacer lo mismo que con gluPerspective: http://nehe.gamedev.net/article/replacement_for_gluperspective/21002/
De todos modos, te recomiendo echarle un ojo a lo que hace glFrustum, que no es demasiado complicado

http://www.gamedev.net/topic/353616-am-i-understanding-glfrustum-properly/