Sign in to follow this  
oenda

FPS camera - objects problem

Recommended Posts

oenda    147

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
Ashaman73    13715

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
oenda    147

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
C0lumbo    4411

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
oenda    147

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this