首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt3d + glShadeModel

Qt3d + glShadeModel
EN

Stack Overflow用户
提问于 2012-06-19 06:27:46
回答 1查看 740关注 0票数 2

最近,我开始使用qt3d (带有QGlView和QGLSceneNode)。我为生成的模型提供了逐顶点法线,现在希望为我的建模应用程序使用GL_FLAT着色模型。但是对glShadeModel(GL_FLAT)的简单调用并不能做任何事情-着色是在平滑模式下所做的事情

我试图找到qt3d/qopengl调用该函数的位置,但除了QGLBuilder之外,我什么也找不到。

在我看来,我必须用QOpenGLContext做一些事情才能使原生opengl函数工作(我对其他opengl函数也有同样的问题)。

或者QGLPainter/QGLSceneNode在内部设置着色模型,而我根本不必使用它?

EN

回答 1

Stack Overflow用户

发布于 2012-09-13 07:19:40

我猜你已经找到了解决方案或者放弃了,但是为了完整,如果我正确地理解了你,这应该会有所帮助:

QGLPainter通过“高级”效果设置着色程序,该效果将在绘制(渲染) QGLSceneNodes时使用。您可以使用此函数设置一些标准效果:

代码语言:javascript
复制
void QGLPainter::setStandardEffect(QGL::StandardEffect effect);

标准效果定义为in the documentation。如果你找不到你想要的东西,你可以使用这个函数传递一个用户效果:

代码语言:javascript
复制
void QGLPainter::setUserEffect(QGLAbstractEffect * effect)

QGLShaderProgramEffect继承了QGLAbstractEffect,是您在本例中要查找的类。

还请注意,Qt3D有点像一个“高级”OpenGL包装器。在大多数情况下,直接调用OpenGL命令并不是“正确的方式”(除了初始化代码和其他一些事情之外)。您应该告诉Qt3D呈现什么以及如何呈现,而不是告诉OpenGL应用程序接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11091993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档