• Advertisement
Sign in to follow this  

FPS camera - objects problem

This topic is 1648 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I develop a fps game.I attached gun to camera.But i can't put gun to front of objects.In first picture everything is normal.But in the second picture gun is rendering at back.I can scale objects.If i scale objects , i need to raise zfar value.Will the game use more memory if i do that?What can i do otherwise?

 

Share this post


Link to post
Share on other sites
Advertisement

A simple solution for this problem is to render the weapon first with a stencil value. Afterwards render the rest with stencil test on to avoid rendering over the weapon model.

Share this post


Link to post
Share on other sites

Thanks Ashaman73. I read wiki and morrowland.com tutorials.But I couldn't.Can you post some code or tutorial link?

Share this post


Link to post
Share on other sites

I think the simplest solution is to render the scene, then clear the z buffer, then render the FPS hands/weapons. I suspect Ashaman73's solution is more efficient because it saves some fill rate, but you might not have a handy stencil bit spare

Share this post


Link to post
Share on other sites

Thanks C0lumbo.It worked :) .I post codes.Maybe, it can help someone.


void RenderFrame()
{

    glViewport(0, 0, g_windowWidth, g_windowHeight);
    //glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
	glClearColor(112.0f/255.0f,162.0f/255.0f,1,1);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT  );

    glMatrixMode(GL_PROJECTION);
    glLoadMatrixf(&g_camera.getProjectionMatrix()[0][0]);

    glMatrixMode(GL_MODELVIEW);
    glLoadMatrixf(&g_camera.getViewMatrix()[0][0]);

	glEnable(GL_TEXTURE_2D);

	Draw_Skybox(0,0,0,500,500,500);	// Draw the Skybox

	 glScalef(0.05f,0.05f,0.05f);
	heli->draw();

	glClear(GL_DEPTH_BUFFER_BIT  );

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	glRotatef(180,0.0f,1.0f,0.0f);
	glTranslatef(0,0,25);
	weapon->draw();

	glDisable(GL_TEXTURE_2D);

    RenderText();
}

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement