0
openframeworks (iOS의 경우 v7.7.4)로 일부 입자 데모를 만들고 있습니다.glPointParameterfv를 비활성화하는 방법
간혹 거리에 따라 크기를 변경하고 싶습니다 ( ). 아래 코드를 사용하면 잘 작동합니다.
ofVboMesh mesh;
mesh.setMode(OF_PRIMITIVE_POINTS);
for(unsigned int i = 0; i < debris.size(); i++){
mesh.addVertex(debris[i]);
mesh.addColor(color_debris[i]);
}
static GLfloat distance[] = { 0.0, 0.0, 1.0 };//------------------ set vec
glPointParameterfv(GL_POINT_DISTANCE_ATTENUATION, distance);//---- set attenuation
glPointSize(40000);
mesh.draw();
다음 번에 다른 입자가 그려지는 경우 거리별로 크기를 변경할 필요가 없습니다. glPointParameterfv()를 사용하여 작업을 취소하거나 초기화하고 싶습니다.
이것이 정말 원시적 인 질문 일지 모르지만이를 수행 할 방법을 찾을 수는 없습니다.
모리스! (1.0, 1.0, 1.0)은 제대로 작동하지 않지만 사용자의 취향에 따라 해결할 수 있습니다. 정적 GLfloat distance_def [] = {1.0, 1.0, 1.0} // 이것은 초기화에만 해당합니다 glGetFloatv (GL_POINT_DISTANCE_ATTENUATION, distance_def); // 원래의 매개 변수를 얻으십시오 ofLog (OF_LOG_ERROR, "% f % f % f" 원본 매개 변수가 (1.0, 0.0, 0.0) 이었지만 이상하게 보였습니다 ((1.0, 1.0, 1.0)은 훨씬 더 합리적입니다). 그러나 distance_def [0], distance_def [1], distance_def [2] 어쨌든 나는 내가 원했던 시각적 효과를 얻었습니다. – Floclo
당신을 진심으로 환영합니다. OpenGL 문서는 기본값이 (1)라고했습니다. 그게 1,1,1을 의미한다고 생각했는데, 아마도 그 잘못을 해석했습니다. 내 대답을 편집 할게. –