2009-12-09 3 views
1

별을 그리려는 OpenGL 프로젝트에서 작업하고 있습니다. 그것은 꼭 3d looking star (2d 보는 것은 괜찮습니다.) 일 필요는 없습니다. 저는 xyz 좌표를 가지고 별의 중심 좌표를 얻었고 크기를 알고 싶습니다. 나는 많은 OpenGL/3D 수학 프로그래밍을하지 않으므로 여기에 어떤 도움을 주시면 감사하겠습니다.Java OpenGL이 별을 그립니다.

EDIT : 자세한 내용 : 이것이 가능할 지 모르겠지만 3D 공간의 어떤 지점에서 2D 모양의 별을 그릴 수 있습니까? 나는 광장 간단한 시도와 같은 시도 : 사각 내가 X, Y, Z로 번역하더라도 정확한 깊이에있을 것 같지 않았다

gl.glTranslated(x, y, z); 
gl.glBegin(GL.GL_QUADS); 
gl.glVertex2D(x-size,y-size); 
gl.glVertex2D(x-size,y+size); 
gl.glVertex2D(x+size,y+size); 
gl.glVertex2D(x+size,y-size); 
gl.glEnd(); 

합니다. 화면 앞에 더 가까이 있어야하는 것 같았습니다. 3D로 2D 모양을 변환 할 수 있습니까?

덕분에,

제프

+1

지금까지 가지고있는 것을 제공하고 정확하게 문제를 일으키는 것을 지정하십시오. 아무도 당신을위한 전체 프로그램을 작성하지 않을 것입니다 –

+0

조나단, 나를 위해 전체 프로그램을 쓸 사람을 찾고있는 것이 아닙니다. 그러나 나는 더 분명해야했습니다. 추가 세부 정보를 추가했습니다. –

+0

투시 투영보다는 정사영 투영을 사용했을 것 같은 소리가납니다. –

답변

0

3D 드로잉을하기로 결정했는데 실제로 번역이 이미 완료되었으며 다시 변환 할 필요가없는 것처럼 보입니다. 그래서 사실 나는 그 지점에서 멀리 번역하고있었습니다. 모든 사람의 도움에 감사드립니다.

3

당신이 당신의 projection matrix을 설정 했습니까? 그렇지 않은 경우에는 정체성으로 설정됩니다. 즉, 정점의 z 값이 화면 공간에서 렌더링 된 위치에 영향을주지 않습니다. 원하는 깊이 감을 얻으려면 투시 투영 행렬을 만들어야합니다. glFrustum()을 사용하여 프로젝션 매트릭스를 만들 수 있습니다. 다음 (Wikipedia's OpenGL page에서) 예입니다 : 온라인으로 무료로 OpenGL을 자습서의 톤이있다

glMatrixMode(GL_PROJECTION);  /* Subsequent matrix commands will affect the projection matrix */ 
glLoadIdentity();     /* Initialise the projection matrix to identity */ 
glFrustum(-1, 1, -1, 1, 1, 1000); /* Apply a perspective-projection matrix */ 

, 당신은 어떤 문제가 더 많은 정보를 찾는데 어려움이해서는 안.

+0

흥미 롭습니다. (참고로 나는 NASA WorldWind 응용 프로그램 내부에서 작업하고 있습니다.) 그러나, 내가 gluSphere (...)와 같은 것을하면 구가 정확한 위치에 그려집니다. 행렬에 대해 더 자세히 읽어 볼께, 고마워! –