Skip to main content
GameDev.net gamedev.net
🔒 Locked

Farplane parameter seemingly limited

Started by brokenlynx Mar 9, 2008 at 7:22 PM 2 replies 800+ views
Original Post
brokenlynx
brokenlynx
Im using gluPerspective(..) to set up my view of an openGL scene consisting of two objects. I am trying to increase the far clipping plane as Im currently unable to view the object from distances of less than z = -35.0f despite my far clipping plane being much larger than that farplane = 100; I'll paste some code any help with this is appreciated.

void CCubeView::Init()
{
	PIXELFORMATDESCRIPTOR pfd;
	int         n;
	HGLRC       hrc;
	GLfloat     fMaxObjSize, fAspect;
	GLfloat     fNearPlane, fFarPlane;

	m_pDC = new CClientDC(this);

	ASSERT(m_pDC != NULL);

	if (!bSetupPixelFormat())
		return;

	n = ::GetPixelFormat(m_pDC->GetSafeHdc());
	::DescribePixelFormat(m_pDC->GetSafeHdc(), n, sizeof(pfd), &pfd);

	CreateRGBPalette();

	hrc = wglCreateContext(m_pDC->GetSafeHdc());
	wglMakeCurrent(m_pDC->GetSafeHdc(), hrc);

	GetClientRect(&m_oldRect);
	glClearDepth(0.0f);
	glEnable(GL_DEPTH_TEST);

	if (m_oldRect.bottom)
		fAspect = (GLfloat)m_oldRect.right/m_oldRect.bottom;
	else    // don't divide by zero, not that we should ever run into that...
		fAspect = 1.0f;

	//fNearPlane = 3.0f;
	//fFarPlane = -50.0f;
	fMaxObjSize = 3.0f;
	m_fRadius = fNearPlane + fMaxObjSize / 2.0f;

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	//gluPerspective(45.0f, fAspect, fNearPlane, fFarPlane);
	gluPerspective( 90,2.0,0.1,100 );  //Farplane set to 100 still invisible
	quadratic = gluNewQuadric();
}

......

GLvoid CCubeView::glDrawScene4(void) {
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);					// Clear The Screen And The Depth Buffer
	glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();													// Reset The View
	glTranslatef(-17.0f, 1.0f, -45.0f);											// Z sets initial viewpoint (works only with z > -35.0f)
												
	glRotatef(270.0f,1.0f,0.0f,0.0f);
	angle = rk4_step(t, yin, yout, 0.016, singlePendulum);
	
	float  *glInputs = new float[2];
	glInputs[0] = angle[0]*(3.0f);						//Breacketed values used to constrain lateral motion in view
	glInputs[1] = angle[1]*(3.0f);
		
	glTranslatef(5.0f,0.0f,0.0f); 
	glTranslatef(glInputs[0],0.0f,0.0f); 
	glColor3f(0.0f, 0.0f, 1.0f);
	glTranslatef(0.0f,0.0f,-3.0f);					// Center The Cylinder
	DrawOblong(2.0f);
	
	glTranslatef(-10.0f, 0.0f, 3.0f);		
	glTranslatef(glInputs[1],0.0f,0.0f); 
	glTranslatef(0.0f,0.0f,-3.0f);					// Center The Cylinder
	glColor3f(1.0f, 0.0f, 0.0f);
	DrawOblong(2.0f);
	
	glTranslatef(0.0f, 0.0f, -1.0f);
	
	glFinish();
	SwapBuffers(wglGetCurrentDC());
	//return TRUE;										// Keep Going
}



[Edited by - brokenlynx on March 9, 2008 11:16:14 PM]
fastcall22
fastcall22
It seems like it could be a near-plane problem. Have you tried lowering the near-plane distance?
brokenlynx
brokenlynx
yeah sorry about the variables shown in the code above the value of 3.0f for nearplane isnt actually used its the values that come in the gluPerspecitve line that are (where nearplane is given 0.1 and farplane 100 still my scene isnt rendering....
Deception666
Deception666
Before using gluPerspective, you should set the current matrix mode to the perspective matrix and then switch back to the modelview matrix mode after calling.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.