使用opengl4在worldwind中保存java绘图状态

1tu0hz3e  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(248)

我正在尝试在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) 要解开当前使用的程序,我实际上可以看到一些东西。我看到了世界风的标准层。这意味着星星,城市名称等,但地球仍然是黑暗的。在渲染过程中好像有东西断了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题