OpenGL에서 키홀을 통해 보는 효과를 시뮬레이션 할 수 있는지 궁금합니다.OpenGL에서 원으로 클립하는 방법
나는 내 3D 장면을 그렸지만 중앙 원형을 제외한 모든 것을 검정색으로 만들고 싶습니다. ...
// here i draw my 3D scene
// Begin 2D orthographic mode
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
GLint viewport [4];
glGetIntegerv(GL_VIEWPORT, viewport);
gluOrtho2D(0, viewport[2], viewport[3], 0);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
// Here I draw a circle in the center of the screen
float radius=50;
glBegin(GL_TRIANGLE_FAN);
glVertex2f(x, y);
for(int n = 0; n <= 100; ++n)
{
float const t = 2*M_PI*(float)n/(float)100;
glVertex2f(x + sin(t)*r, y + cos(t)*r);
}
glEnd();
// end orthographic 2D mode
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
는 내가 얻을 것은 중앙에 그려진 원이지만, 나는 그것의 보완을 얻기 위해 싶습니다
나는이 솔루션을 시도했지만 그 일을 완전히 반대를 내가 원하는
나는 두 번째 방법을 해결했습니다. 이것은 필요한 자료입니다. http://en.wikibooks.org/wiki/OpenGL_Programming/Stencil_buffer "즉각적인 모드"란 무엇을 의미하는지 이해하지 못합니다. glVertex2f 및 다른 프리미티브의 사용을 의미합니까? – linello
예, 'glVertex2f'와 그 친구는 즉각적인 모드입니다. 대신에'glVertexPointer' /'glDrawArrays' /'glDrawRangeElements' 등을 사용하는 것이 좋습니다. 'glVertex2f'를 과거 시대의 고대 유물로 생각하고'glVertexPointer'를 "옛날 방식"으로 생각합니다 (그러나 오래된 것은 아닙니다). –
팁 주셔서 감사합니다! – linello