포인트를 렌더링하기 위해 GL_POINT를 사용하는 iPhone 게임을 만들고 있습니다. 그러나 점의 중심이 스크린에서 벗어난 경우에도 여전히 화면상의 특정 부분을 그려보고 싶습니다. 여기에 포인트를 렌더링하는 데 사용하는 코드가 있습니다. 그것이 렌더링되어야 할 때 "rendering"
를 기록, 그래서이 방법이 제대로 호출지고 있음을센터가 꺼져있을 때 GL_POINT 렌더링되지 않음
-(void)render {
if (!fill || !outline || !active || dead)
return;
NSLog(@"rendering");
glPushMatrix();
glLoadIdentity();
glMultMatrixf(matrix);
glEnable(GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_SMOOTH);
glEnable(GL_POINT_SMOOTH);
glPointSize(scale.x*2);
[outline render];
glPointSize(2*(scale.x-kLineWidth));
[fill render];
glPopMatrix();
}
참고.
과 [outline render]
및 [fill render]
방법이
-(void)render {
// load arrays into the engine
glVertexPointer(vertexSize, GL_FLOAT, 0, vertexes);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(colorSize, GL_FLOAT, 0, colors);
glEnableClientState(GL_COLOR_ARRAY);
//render
glDrawArrays(renderStyle, 0, vertexCount);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
}
처럼 나는이 코드
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-kScreenWidth/2.0 + xPan, kScreenWidth/2.0 + xPan, -kScreenHeight/2.0 + yPan, kScreenHeight/2.0 + yPan, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
하지만를 사용하여 "패닝"효과를 사용하고 지점의 중심은 화면 상에없는 경우 (glOrthof
으로 패닝 한 후) 전체 점이 그려지지 않습니다. 센터가 화면 상에 있지 않을 때에도 어떻게 포인트를 렌더링 할 수 있습니까?
나는 오프 스크린 버퍼 방법으로 갔다. 괜찮 았어. 감사! –