void Camera::click(Scene* pScene, Image* pImage) { calcLookAt(); static bool firstRayTrace = false; if (m_renderer == RENDER_OPENGL) { glDrawBuffer(GL_BACK); pScene->openGL(this); firstRayTrace = true; } else if (m_renderer == RENDER_RAYTRACE) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDrawBuffer(GL_FRONT); if (firstRayTrace) { pImage->clear(bgColor()); pScene->raytraceImage(this, g_image); firstRayTrace = false; } g_image->draw(); } }
Camera::Camera() : m_renderer(RENDER_OPENGL), m_eye(0,0,0), m_viewDir(0,0,-1), m_up(0,1,0), m_lookAt(FLT_MAX, FLT_MAX, FLT_MAX), m_fov((45.)*(PI/180.)) { calcLookAt(); }
Camera::Camera() : m_bgColor(0,0,0), m_renderer(RENDER_OPENGL), m_eye(0,0,0), m_viewDir(0,0,-1), m_up(0,1,0), m_lookAt(FLT_MAX, FLT_MAX, FLT_MAX), m_fov(45), m_distance(0.038627416998), m_fp_distance(10), m_aperture(0.1f) { calcLookAt(); calcApertureAxes(); }
Camera::Camera() : m_bgColor(0,0,0), m_renderer(RENDER_OPENGL), m_eye(0,0,0), m_viewDir(0,0,-1), m_up(0,1,0), m_lookAt(FLT_MAX, FLT_MAX, FLT_MAX), m_fov((45.)*(PI/180.)), m_lensRadius(0.0), m_focalPlaneDistance(6.0), m_focalPlane(m_eye+m_viewDir*m_focalPlaneDistance, m_viewDir), m_noOfDoFSamples(1), m_right(cross(m_viewDir, m_up).normalize()), m_exposure(0.0f) { calcLookAt(); }