그래서 JAGL 프로젝트를하고 있는데, 나는 상승/하락하고지도를 따라 이동할 수있는 잠수함을 그립니다.이지도는 거대한 quad_strip입니다.부분적으로 잠수함에 잠긴 잠수함을 섞으려고 시도합니다.
어쨌든, 나는 블렌딩을하기 위해 다음 코드를 가지고 있습니다.
gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL2.GL_BLEND);
gl.glDisable(GL2.GL_DEPTH_TEST);
gl.glColor4f(0.949f, 0.816f, 0.588f, 1f);
gridFloor.display(drawable);
submarine.setHeight(subHeight);
submarine.display(drawable);
gl.glColor4f(0.298f, 0.7333f, 0.909f, 0.04f);
gridSea.display(drawable);
gl.glFlush();
참고 : gridfloor, 잠수함, 그리고 gridsquare 객체는 모든 GLEventListners 있습니다.
이렇게 모든 것이 훌륭하고 멋쟁이입니다. 프린트 할 때, 저는 y = 2에 해저를 표시하고 y = 1.5에 해수면을 위치 시켰습니다. 따라서이 지점의 잠수함은 수위보다 높아야합니다. 그러나 이것이 내가 대신 얻는 것입니다.
아마도 당신이 말할 수 있듯이, 나는 JOGL에 매우 익숙하며 어떤 도움이라도 대단히 감사 할 것입니다.
편집 :이 내가 당신이 깊이 테스트를 비활성화하면
교사의 말을 인용하자면 - "깊이 테스트 혼합 및 비활성화를 사용하여 바다 표면을 반투명하게 만드십시오." -_- 고마워요, 대우를 받았습니다. –
@RyanTurnbull : 선생님이 블렌딩을 이해하지 못하고, 어느 시점에서 고민 중이며, 심도 테스트를 사용하여 첨가제를 내놓아도 완전히 틀리게 보이지 않는다고 생각할 수 있습니까? 어쨌든 투명한 소재를 렌더링하는 올바른 방법은 * 깊이 테스트 __enabled __ * 및 * 정렬 * 혼합 지오메트리 *를 멀리 근처에 두는 것입니다. – datenwolf