我正在尝试在worldwindMap上显示点云。worldwind网站上的所有示例都是使用opengl2完成的。但是我试着用opengl4来代替,因为我以前用过一点。
现在我在管理绘图状态时遇到了一个问题:
从worldwind默认值更改的任何状态都必须在渲染多维数据集后还原,否则会导致其他对象渲染不正确
管理图形状态。在opengl2中,它相当简单。在画出任何东西之前 beginDrawing()
被称为。
protected void beginDrawing(DrawContext dc){
GL2 gl = dc.getGL().getGL2();
int attrMask = GL2.GL_CURRENT_BIT | GL.GL_COLOR_BUFFER_BIT;
gl.glPushAttrib(attrMask);
if (!dc.isPickingMode())
dc.beginStandardLighting(); }
这个 glPushAttrib
方法用于保存状态,稍后在 endDrawing()
.
protected void endDrawing(DrawContext dc){
GL2 gl = dc.getGL().getGL2();
if (!dc.isPickingMode())
dc.endStandardLighting();
gl.glPopAttrib(); }
我能用opengl4实现同样的功能吗?如果是,怎么做?
到目前为止我找到的所有东西都是为opengl2准备的。我发现了 DrawContext
已调用方法 restoreDefaultCurrentColor()
, restoreDefaultDepthTesting()
以及 restoreDefaultBlending()
但他们没有帮助。
编辑:所以我发现如果我打电话 gl.glBindProgram(0)
要解开当前使用的程序,我实际上可以看到一些东西。我看到了世界风的标准层。这意味着星星,城市名称等,但地球仍然是黑暗的。在渲染过程中好像有东西断了。
暂无答案!
目前还没有任何答案,快来回答吧!