내가이 같은 OpenGL을 몇 가지 간단한 라인을 끌었다 가정 : 그것은 스케치 또는 손으로 그리는 것처럼는 OpenGL에서 떨리는 선 그리기
glBegin(GL_LINES);
glVertex2f(1, 5);
glVertex2f(0, 1);
glEnd();
가 어떻게, 라인이 과민 보이게합니까?
내가이 같은 OpenGL을 몇 가지 간단한 라인을 끌었다 가정 : 그것은 스케치 또는 손으로 그리는 것처럼는 OpenGL에서 떨리는 선 그리기
glBegin(GL_LINES);
glVertex2f(1, 5);
glVertex2f(0, 1);
glEnd();
가 어떻게, 라인이 과민 보이게합니까?
라인을 세그먼트로 분해 한 다음 rand()를 사용하여 임의의 노이즈를 추가 할 수 있습니다.
다음은 추악하지만 희망 사항으로 다소 유용한 코드입니다. 필요에 따라이 리팩토링 할 수
const float X1= 1.0f, Y1 = 5.0f, X2 = 0.0f, Y2 = 1.0f;
const int NUM_PTS = 10; //however many points in between
//you will need to call srand() to seed your random numbers
glBegin(GL_LINES);
glVertex2f(START_X, START_Y);
for(unsigned i = 0; i < NUM_PTS; i += 2)
{
float t = (float)i/NUM_PTS;
float rx = (rand() % 200 - 100)/100.0f; //random perturbation in x
float ry = (rand() % 200 - 100)/100.0f; //random perturbation in y
glVertex2f(t * (END_X - START_X) + r, t * (END_Y - START_Y) + r);
glVertex2f((t + 1) * (END_X - START_X), (t + 1) * (END_Y - START_Y));
}
glVertex2f(END_X, END_Y);
glEnd();
내가 2로 루프를 증가시키고 선분이 모두 함께 결합되도록 무작위 교란없이 다른 모든 점을 그립니다.
glBegin/glEnd 스타일을 "즉석 모드"라고하며 매우 효율적이지는 않습니다. 일부 모바일 플랫폼에서는 지원되지 않습니다. 당신의 물건이 부직포 인 것을 발견하면 버텍스 배열을 사용하십시오.
선을 손으로 그린 것처럼 보이게하려면 좋게 만들고 앤티 앨리어싱을 사용하는 것이 좋습니다.
한 번에 조금씩 그리거나 선 자체가 불규칙하게 보이는 것처럼 (픽셀 화되지 않음)? –
기본적으로 각 프레임을 초기 위치에서 약간의 지터로 정점 위치를 업데이트해야한다는 의미입니다. Delphi에서 정확히 수행하는 샘플 코드가 있습니다. http://doodles.googlecode.com/svn/trunk/Sketching/ – Kromster