-1

我一直在尝试为学校项目使用模板缓冲区生成反射。我正在关注本教程: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;

输出为“Stencil bits is 0”。所以我根本没有模板缓冲区。如何在 Gtkmm 中创建模板缓冲区(我读到创建模板缓冲区是库特定的)?

4

1 回答 1

0

看完 jp 的回复后,我意识到我找错地方了。我在项目中得到了一些启动代码,所以我忽略了 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 中启用模板模式。请注意,这是非常特定于库的。

于 2014-03-23T19:25:17.573 回答