kimziv / oglsuperbible5

GLTools and OpenGL SuperBible (5th Edition) OpenGL超级宝典第五版
41 stars 16 forks source link

Multiple problems with Chapter 8 fbo_drawbuffers example #51

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Not all of these are related to errors in the book / code. However, I am 
including them here for the benefit of those who face the same issue.

What steps will reproduce the problem?
1. make the fbo_drawbuffers on linux. It will fail.
2. After fixing the code issues, run the example.
3. The program might output "A GL Error has occured" on the console and the 
smaller ninja in the right top will not show up.

What is the expected output? What do you see instead?
The smaller ninja in the right top should show up, but he is missing.

What version of the product are you using? On what operating system?
Ubuntu 10.04 with Nvidia drivers.

Please provide any additional information below.
Here are steps to fix the code issues (there are many similar issues with other 
examples on linux)
1. In fbo_drawbuffers.cpp, change "marble.bmp" to "Marble.bmp" and 
"NinjaComp.bmp" to "NinjaComp.BMP"
2. In Src/Models/Ninja/sbm.cpp, change #include <gltools.h> to #include 
<GLTools.h>. Make the same change in Src/Models/Ninja/sbm.h

This might be enough to fix this example. However, if like me, you have forced 
your graphics drivers to override application settings for AntiAliasing, your 
little Ninja at the top right be missing and errors printed on the console.

As you can guess, this is fixed by disabling the forcing of AntiAliasing in the 
Nvidia settings.

Original issue reported on code.google.com by nag.ra...@gmail.com on 20 Sep 2012 at 1:05

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
This is because the 2 buffers, the default screen buffer and the frame buffer 
we allocated, do not have the same Samples per pixel. When anti aliasing is 
enabled, the default buffer is multisampled.

glBlitFramebuffer throws an error if
1. buffers have different samples and
2. image being copied is being scaled.

Original comment by nag.ra...@gmail.com on 20 Sep 2012 at 1:09