Jump to content
  • Advertisement
Sign in to follow this  
tmason

Request for Advise - Smoothing Line Edges and Otherwise improving Quality ...

This topic is 1587 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

Hello,

So I finally got my project on the Oculus Rift! It was a good feeling but now it's a matter of drastically improving display quality.

One of the most striking things I have noticed is that line edges are not really smooth at all. Below is a picture.

How can I have crisp (or crisper) edges?

Thank you for your time.

 

Line_Smoothing_Help.png

Share this post


Link to post
Share on other sites
Advertisement
Looks like you need some form of anti-aliasing.

Initially, I'd try turning on MSAA, assuming that your hardware/driver support multisample framebuffers (recent cards/drivers should be fine). If that is insufficient (or doesn't work), there are a variety of more complicated/nuanced approaches to anti-aliasing which would be worth looking into.

Share this post


Link to post
Share on other sites

Looks like you need some form of anti-aliasing.

Initially, I'd try turning on MSAA, assuming that your hardware/driver support multisample framebuffers (recent cards/drivers should be fine). If that is insufficient (or doesn't work), there are a variety of more complicated/nuanced approaches to anti-aliasing which would be worth looking into.

 

Thank you so much for your quick reply.

 

The MSAA hardware anti-aliasing isn't something easy to implement, is it?

 

Here is my code now for my framebuffer:

glGenFramebuffers(1, &g_OculusRiftFrameBufferObject_ID);
	glBindFramebuffer(GL_FRAMEBUFFER, g_OculusRiftFrameBufferObject_ID);
	glGenTextures(1, &g_OculusRiftTexture_ID);
	glBindTexture(GL_TEXTURE_2D, g_OculusRiftTexture_ID);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, l_TextureSize.w, l_TextureSize.h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
	glGenRenderbuffers(1, &g_OculusRiftDepthBufferObject_ID);
	glBindRenderbuffer(GL_RENDERBUFFER, g_OculusRiftDepthBufferObject_ID);
	glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, l_TextureSize.w, l_TextureSize.h);
	glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, g_OculusRiftDepthBufferObject_ID);
	glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, g_OculusRiftTexture_ID, 0);

	GLenum l_GLDrawBuffers[1] = { GL_COLOR_ATTACHMENT0 };
	glDrawBuffers(1, l_GLDrawBuffers); // "1" is the size of DrawBuffers

	g_DrawBufferStatusCheck_ENUM = glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER);

	if (g_DrawBufferStatusCheck_ENUM != GL_FRAMEBUFFER_COMPLETE)
	{
		glBindRenderbuffer(GL_RENDERBUFFER, 0);
		glBindTexture(GL_TEXTURE_2D, 0);
		glBindFramebuffer(GL_FRAMEBUFFER, 0);
		return false;
	}
	else
	{}

Share this post


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

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!