void GetRandPlane(Box3f &bb, Plane3f &plane) { Point3f planeCenter = bb.Center(); Point3f planeDir = Point3f(-0.5f+float(rand())/RAND_MAX,-0.5f+float(rand())/RAND_MAX,-0.5f+float(rand())/RAND_MAX); planeDir.Normalize(); plane.Init(planeCenter+planeDir*0.3f*bb.Diag()*float(rand())/RAND_MAX,planeDir); }
void AmbientOcclusionPlugin::setCamera(Point3f camDir, Box3f &meshBBox) { cameraDir = camDir; GLfloat d = (meshBBox.Diag()/2.0) * 1.1, k = 0.1f; Point3f eye = meshBBox.Center() + camDir * (d+k); glViewport(0.0, 0.0, depthTexSize, depthTexSize); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-d, d, -d, d, k, k+(2.0*d) ); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(eye.X(), eye.Y(), eye.Z(), meshBBox.Center().X(), meshBBox.Center().Y(), meshBBox.Center().Z(), 0.0, 1.0, 0.0); }
void SdfGpuPlugin::setCamera(Point3f camDir, Box3f &meshBBox) { GLfloat d = (meshBBox.Diag()/2.0), k = 0.1f; Point3f eye = meshBBox.Center() + camDir * (d+k); mScale = 2*k+(2.0*d); glViewport(0.0, 0.0, mPeelingTextureSize, mPeelingTextureSize); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-d, d, -d, d, /*k*/0, mScale ); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(eye.X(), eye.Y(), eye.Z(), meshBBox.Center().X(), meshBBox.Center().Y(), meshBBox.Center().Z(), 0.0, 1.0, 0.0); }