"OpenGL 깊이 버퍼의 범위가 좁습니다."나는 멀리 비행기가 너무 가까이에 있다는 것을 의미하지는 않습니다. 깊이 버퍼에 질감으로 문제가 있습니다. 버퍼를 보면 매우 가까운 객체 만 보여줍니다. 나는 그 그림을 더 잘 설명하는 법을 모른다.OpenGL 깊이 버퍼의 범위가 짧습니다.
오른쪽 상단에서 깊이 버퍼를 볼 수 있습니다. 이미지는 여기에서 찾을 수 있습니다 : http://imgur.com/a/wL87b
자세히 알 수 있듯이 깊이 버퍼에 어둠이 보일 정도로 가까이 가야합니다.
깊이 텍스처의 경우 : 깊이 버퍼에
depthTexture = GL11.glGenTextures();
GL11.glBindTexture(GL11.GL_TEXTURE_2D, depthTexture);
GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL14.GL_DEPTH_COMPONENT24, width, height, 0, GL11.GL_DEPTH_COMPONENT, GL11.GL_FLOAT, (ByteBuffer) null);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_ATTACHMENT, GL11.GL_TEXTURE_2D, depthTexture, 0);
:
depthBuffer = GL30.glGenRenderbuffers();
GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, depthBuffer);
GL30.glRenderbufferStorageMultisample(GL30.GL_RENDERBUFFER, multisampleing, GL14.GL_DEPTH_COMPONENT24, width, height);
GL30.glFramebufferRenderbuffer(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_ATTACHMENT, GL30.GL_RENDERBUFFER, depthBuffer);
당신은 GLXX를 무시할 수 있습니다 여기에
는 FBO에 대한 깊이 버퍼를 생성하는 코드입니다 . OpenGL 메소드의 시작 부분.더 많은 코드가 필요하면 알려주세요.
제 생각에 색상 값이 어느 시점에서 고정되어 있습니다. –