임의의 매우 테셀레이션 된 객체 (STL 임포트)의 Z 축을 따라 음영 처리 된 간단한 그라데이션을 추가하려고합니다.OpenGL : GL_TEXTURE_1D trouble
대부분 효과가 있지만 질감이 Z와 평행하지 않지만 회전 및 크기가 다르게되어있는 이상한 얼굴이 있습니다. 이면들은 대개 (항상) 항상 수직으로 향하고 일부는 상당히 큽니다. 나는 수직면을 적용하는 것이 가장 쉽다고 생각할 것이다. 그래서 나는 현재 난감하다. 여기
는 초기화이다 :glEnable(GL_TEXTURE_1D);
foreach(const STLTriangle& t, _model.triangles())
{
glBegin(GL_TRIANGLES);
glNormal3f(t.normal[0], t.normal[1], t.normal[2]);
glTexCoord1f(fmod(t.v[0][2],1.0)); glVertex3f(t.v[0][0],t.v[0][1],t.v[0][2]);
glTexCoord1f(fmod(t.v[1][2],1.0)); glVertex3f(t.v[1][0],t.v[1][1],t.v[1][2]);
glTexCoord1f(fmod(t.v[2][2],1.0)); glVertex3f(t.v[2][0],t.v[2][1],t.v[2][2]);
glEnd();
}
glDisable(GL_TEXTURE_1D);
사람이 어떻게 이것에 대해 갈거야 잘못 무언가를보고 있습니까 :
glBindTexture(GL_TEXTURE_1D, _d->textures[0]);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); //GL_DECAL);
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGB, _d->sideImage.width(), 0,
GL_BGRA_EXT, GL_UNSIGNED_BYTE, _d->sideImage.bits());
그리고 사용
?
"나는 정말 이상한 얼굴을 가지고 있습니다."스크린 샷, 기쁘게 생각합니다. "fmod (t.v [0] [2], 1.0)"아마 필요하지 않습니다. – SigTerm
글쎄, GL_REPEAT은 내가하지 않는다는 것을 의미한다고 생각했을 것이다. 그러나 fmod()를 생략하면 Z 축을 따라 텍스쳐가 정말로 이상하게 선형 스케일링된다. 아마도 거기에 단서가 있지만, 1am에 그것을 볼 수 없었습니다. :) – darron