나는 jogl에서 초보자입니다. DICOM 이미지의 3D 렌더링을 코딩하고 있습니다. jogl을 사용하여 이미지를 3D 렌더링하는 동안 3D 렌더링을 만들었습니다. 이어지는 단계는 다음과 같습니다.jogl을 사용하여 DICOM 이미지의 3D보기를 회전 할 때 발생하는 문제
- 가져온 DICOM 파일 스택.
- 파일에서 생성 된 BufferedImages.
각 이미지에 대해 질감이 만들어집니다.
// Create a OpenGL Texture object for(int i=0;i<image.length;i++) { textures[i] = AWTTextureIO.newTexture(GLProfile.getDefault(), image[i], false); textureCoords = textures[i].getImageTexCoords(); textureTop[i] = textureCoords.top(); textureBottom[i] = textureCoords.bottom(); textureLeft[i] = textureCoords.left(); textureRight[i] = textureCoords.right(); }
이들 이미지를 차례로 배치하여 만든 큐브입니다. 3D 뷰를 회전시키면서 등
줌 회전 같은 3D 이미지
int x=numberOfImages;
gl.glBegin(GL_QUADS);
// To place stack back to front
for(float i=-numberOfImages*0.0050f;x>0;i=i+0.01f){
// Enables this texture's target in the current GL context's state.
textures[currTextureFilter].enable(gl);
// Bind the texture with the currently chosen filter to the current OpenGL graphics context.
textures[currTextureFilter].bind(gl);
gl.glBegin(GL_QUADS); // of the color cube
gl.glNormal3f(0.0f, 0.0f, (0.1f+i));
gl.glTexCoord2f(textureLeft[x], textureBottom[x]);
gl.glVertex3f(-1.0f, -1.0f, (0.1f+i)); // bottom-left of the texture and quad
gl.glTexCoord2f(textureRight[x], textureBottom[x]);
gl.glVertex3f(1.0f, -1.0f, (0.1f+i)); // bottom-right of the texture and quad
gl.glTexCoord2f(textureRight[x], textureTop[x]);
gl.glVertex3f(1.0f, 1.0f, (0.1f+i)); // top-right of the texture and quad
gl.glTexCoord2f(textureLeft[x], textureTop[x]);
gl.glVertex3f(-1.0f, 1.0f, (0.1f+i)); // top-left of the texture and quad
currTextureFilter =x;
textures[currTextureFilter].disable(gl);
x--;
gl.glFlush();
gl.glEnd();
}
감안 시설, 화상의 광 강도는 감소하고 일정 각도에서, 검은 띠가 나타난다. 그 부분을 확대하면 2 개의 이미지에 간격이 표시됩니다. 어떤 단계에서 잘못 가고 있습니까? 나를 안내 해줘. 미리 감사드립니다.
매우 광범위한 주제입니다. 볼륨 렌더링에 관한 모든 책이 있습니다. 표시되는 것을 쉽게 얻을 수 있습니다. 그것을 정확하고 효과적으로하기 위해서는 훨씬 더 많은 것을 필요로합니다. –
@Reto Koradi : NEHE 자습서를 읽었습니다. 이를 바탕으로 위에 코딩했습니다. 정확하고 효율적으로 만들 수 있도록 안내해 주시겠습니까? 나는 적절한 지침을 얻지 못하고있다. 제발 링크 나 사이트 제안 해 주시겠습니까? – Deepti
이 영역에서 일한 결과는 http://retokoradi.com/volume-rendering/에서 확인할 수 있습니다. 그렇다고해서 구현 세부 사항을 설명 할 수는 없으므로 아마도 결과를 복제하는 데별로 도움이되지 못할 것입니다. 그것은 어느 정도 공유 할 수없는 몇 가지 독창적 인 부분이있는 상당 부분의 소프트웨어입니다. –