我一直在尝试为学校项目使用模板缓冲区生成反射。我正在关注本教程:http://www.opengl.org/archives/resources/code/samples/mjktips/Reflect.html它描述了如何通过在平面上反射场景来创建反射,并再次绘制它以创建反射,然后剪切反射以消除伸出的部分。
我按照教程进行操作,但没有任何剪辑,反射已完整显示。我尝试了以下方法:
int i;
glGetIntegerv(GL_STENCIL_BITS,&i);
std::cout << "Stencil bits is " << i << std::endl;
输出为“模板位为 0”。所以我根本没有模板缓冲区。如何在 Gtkmm 中创建模板缓冲区(我读到创建模板缓冲区是特定于库的)?
最佳答案
读完 j-p 的回复后,我意识到我找错地方了。项目中给了我一些起始代码,所以我忽略了 glContext 的设置。我需要做的是:
glconfig = Gdk::GL::Config::create(Gdk::GL::MODE_RGB |
Gdk::GL::MODE_DEPTH |
Gdk::GL::MODE_DOUBLE |
Gdk::GL::MODE_STENCIL );
添加了 Gdk::GL::MODE_STENCIL 标志以在 Gtk 中启用模板模式。请注意,这是特定于库的。
关于c++ - Linux C++ 上 Gtkmm 中的 OpenGL 模板缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22586571/