Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 39.06 176.26 176.26 761988654 0.00 0.00 NaiveBVH::IntersectBBox(RayPacket&, Point const*) 8.84 216.16 39.89 2978471138 0.00 0.00 Point::X() const 8.18 253.07 36.92 2978471138 0.00 0.00 Point::Y() const 4.36 272.75 19.67 3980020074 0.00 0.00 Point::Z() const 4.02 290.89 18.15 3760288926 0.00 0.00 Vector::X() const 3.84 308.21 17.32 3760288926 0.00 0.00 Vector::Y() const 3.27 322.99 14.78 17485860 0.00 0.00 NaiveBVH::IntersectBVH(RayPacket&) 3.12 337.08 14.09 71123226 0.00 0.00 Triangle::Intersect(RayPacket&) 2.15 346.76 9.68 1273638145 0.00 0.00 Vector::Vector(float, float, float) 2.14 356.40 9.64 2113579746 0.00 0.00 Vector::Z() const 2.13 366.01 9.61 689495331 0.00 0.00 Vector::Dot(Vector const&) const 2.10 375.47 9.46 374082189 0.00 0.00 Vector::Cross(Vector const&) const 1.64 382.89 7.42 7638510 0.00 0.00 Ray::CopyFromRay(Ray&) 1.24 388.48 5.59 15532032 0.00 0.00 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) 1.19 393.85 5.37 69766638 0.00 0.00 Ray::RecomputeParameters() 0.99 398.32 4.47 388045794 0.00 0.00 Vector::operator*(float) const 0.98 402.72 4.40 77655153 0.00 0.00 Vector::Normalize() 0.91 406.84 4.12 124256256 0.00 0.00 Random::fRandom() 0.88 410.82 3.98 186384384 0.00 0.00 ConvertToUnsigned(float) 0.86 414.68 3.86 291065794 0.00 0.00 Point::operator-(Point const&) const 0.77 418.15 3.47 288000408 0.00 0.00 Vector::operator=(Vector const&) 0.76 421.56 3.41 69766638 0.00 0.00 RayPacket::AddCopyRay(Point, Vector, int) 0.64 424.44 2.88 34971720 0.00 0.00 RayPacket::Reset() 0.60 427.14 2.70 display() 0.44 429.13 1.99 123017 0.00 0.00 NaiveBVH::Sort(BBox*, int, int, Object**, int) 0.43 431.06 1.92 761988654 0.00 0.00 BBox::GetPoints() 0.39 432.82 1.77 140033277 0.00 0.00 Point::operator+(Vector const&) const 0.39 434.58 1.76 124256258 0.00 0.00 Vector::operator+(Vector const&) const 0.35 436.14 1.56 15532032 0.00 0.00 Scene::TraceRay(RayPacket&) 0.31 437.54 1.39 81742470 0.00 0.00 BBox::operator=(BBox const&) 0.29 438.83 1.30 155166662 0.00 0.00 Point::Point(float, float, float) 0.25 439.95 1.12 139533281 0.00 0.00 operator*(float, Vector const&) 0.22 440.96 1.01 62128128 0.00 0.00 RGBColor::operator*=(float) 0.21 441.92 0.95 68442519 0.00 0.00 RGBColor::operator+=(RGBColor const&) 0.19 442.75 0.84 1953828 0.00 0.00 LambertianMaterial::Shade(RayPacket&, Scene&) const 0.17 443.54 0.78 2 0.39 0.39 __static_initialization_and_destruction_0(int, int) 0.17 444.29 0.75 NaiveBVH::IntersectBVH(Ray&) 0.16 444.99 0.70 122377118 0.00 0.00 Point::GetElement(int) const 0.13 445.57 0.59 62128131 0.00 0.00 Point::Point(Point const&) 0.12 446.11 0.53 283700753 0.00 0.00 Vector::Vector() 0.10 446.56 0.45 NaiveBVH::IntersectBBox(Ray&, Point const*) 0.09 446.96 0.41 204869585 0.00 0.00 BBox::GetMin() const 0.08 447.33 0.37 26421471 0.00 0.00 Ray::CheckHit(float, Primitive*, Vector const&) 0.08 447.69 0.35 4487856 0.00 0.00 BBox::Expand(BBox const&) 0.07 448.00 0.32 62128128 0.00 0.00 RGBColor::Red() const 0.06 448.30 0.29 69766638 0.00 0.00 Ray::NormalizeRayDirection() 0.06 448.55 0.25 69875895 0.00 0.00 Ray::WasIntersection() const 0.04 448.75 0.20 62128128 0.00 0.00 RGBColor::Green() const 0.04 448.94 0.19 82492467 0.00 0.00 BBox::GetMax() const 0.04 449.12 0.19 memset 0.04 449.30 0.17 sqrt 0.04 449.45 0.16 17485860 0.00 0.00 Group::Intersect(RayPacket&) 0.03 449.60 0.14 62128128 0.00 0.00 RGBColor::Blue() const 0.03 449.73 0.13 15277020 0.00 0.00 Ray::GetHitPoint() const 0.02 449.83 0.11 1953828 0.00 0.00 Scene::TraceShadowRay(RayPacket&) 0.02 449.94 0.10 6314394 0.00 0.00 RGBColor::RGBColor(float, float, float) 0.02 450.02 0.09 1 0.09 0.11 glmVertexNormals 0.02 450.11 0.09 7638510 0.00 0.00 RayPacket::AddCopyRay(Ray&) 0.02 450.19 0.08 Random::dRandom() 0.02 450.27 0.08 sin 0.02 450.34 0.07 6314391 0.00 0.00 RGBColor::operator*(float) const 0.02 450.41 0.07 1 0.07 6.08 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) 0.02 450.48 0.07 cos 0.01 450.54 0.06 750000 0.00 0.00 BBox::Expand(Point const&) 0.01 450.60 0.06 2 0.03 0.03 __static_initialization_and_destruction_0(int, int) 0.01 450.64 0.05 7638511 0.00 0.00 Vector::Vector(Vector const&) 0.01 450.69 0.05 1 0.05 0.05 glmFirstPass(_GLMmodel*, __sFILE64*) 0.01 450.75 0.05 1 0.05 0.05 glmSecondPass(_GLMmodel*, __sFILE64*) 0.01 450.80 0.05 _Unwind_SjLj_Register 0.01 450.83 0.04 1 0.04 0.13 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) 0.01 450.88 0.04 RayPacket::GetDepth() 0.01 450.90 0.03 7638510 0.00 0.00 Light::GetPosition() 0.01 450.94 0.03 7638510 0.00 0.00 Primitive::GetMaterial() 0.01 450.96 0.03 1203835 0.00 0.00 BBox::BBox() 0.00 450.99 0.02 1953828 0.00 0.00 Scene::GetLight(int) 0.00 451.00 0.02 374926 0.00 0.00 glmNormalize(float*) 0.00 451.02 0.02 250000 0.00 0.00 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) 0.00 451.05 0.02 1 0.02 0.26 Group::ComputerBBoxForEachObject(Object**) 0.00 451.06 0.02 std::ostream::flush() 0.00 451.07 0.01 11369364 0.00 0.00 LambertianMaterial::GetType() const 0.00 451.08 0.01 6314391 0.00 0.00 Light::GetColor() 0.00 451.10 0.01 2660515 0.00 0.00 Point::Point() 0.00 451.11 0.01 1953828 0.00 0.00 Array1D::operator[](int) 0.00 451.12 0.01 784655 0.00 0.00 BBox::~BBox() 0.00 451.12 0.01 750000 0.00 0.00 glmDot(float*, float*) 0.00 451.13 0.01 750000 0.00 0.00 Point::Point(float*) 0.00 451.14 0.01 500000 0.00 0.00 NaiveBVH::NaiveBVH() 0.00 451.15 0.01 1 0.01 0.01 glmUnitize 0.00 451.17 0.01 _Unwind_SjLj_Unregister 0.00 451.18 0.01 ThinLensCamera::ThinLensCamera(__sFILE64*, Scene*) 0.00 451.19 0.01 LambertianMaterial::LambertianMaterial(__sFILE64*, Scene*) 0.00 451.19 0.01 Ray::PrintToScreen() 0.00 451.20 0.01 Random::sRandom() 0.00 451.21 0.01 std::__timepunct::__timepunct(std::__timepunct_cache*, unsigned int) 0.00 451.23 0.01 operator new(unsigned int) 0.00 451.23 0.01 237 0.00 0.00 RayPacket::~RayPacket() 0.00 451.23 0.00 7638510 0.00 0.00 Triangle::ComputeNormal(Ray&) const 0.00 451.23 0.00 1953828 0.00 0.00 Scene::GetNumLights() 0.00 451.23 0.00 750000 0.00 0.00 Point::operator*(float) const 0.00 451.23 0.00 750000 0.00 0.00 Point::operator+(Point const&) const 0.00 451.23 0.00 250001 0.00 0.00 Object::Object() 0.00 451.23 0.00 250000 0.00 0.00 glmCross(float*, float*, float*) 0.00 451.23 0.00 250000 0.00 0.00 Group::Add(Object*) 0.00 451.23 0.00 250000 0.00 0.00 Array1D::Add(Object* const&) 0.00 451.23 0.00 250000 0.00 0.00 Triangle::ComputerBoundingBox() 0.00 451.23 0.00 250000 0.00 0.00 Primitive::Primitive(Material*) 0.00 451.23 0.00 3793 0.00 0.00 RGBColor::RGBColor() 0.00 451.23 0.00 2844 0.00 0.00 Ray::Ray() 0.00 451.23 0.00 711 0.00 0.00 RayPacket::RayPacket() 0.00 451.23 0.00 242 0.00 0.00 Scene::GetWidth() 0.00 451.23 0.00 242 0.00 0.00 Scene::GetHeight() 0.00 451.23 0.00 242 0.00 0.00 ThinLensCamera::GetScreenWidth() const 0.00 451.23 0.00 242 0.00 0.00 ThinLensCamera::GetScreenHeight() const 0.00 451.23 0.00 237 0.00 0.00 DisplayTimer() 0.00 451.23 0.00 237 0.00 0.00 Scene::GetCamera() 0.00 451.23 0.00 6 0.00 0.00 glmAbs(float) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 451.23 0.00 2 0.00 0.00 glmMax(float, float) 0.00 451.23 0.00 2 0.00 0.00 Vector::operator*=(float) 0.00 451.23 0.00 2 0.00 0.00 RGBColor::RGBColor(RGBColor const&) 0.00 451.23 0.00 1 0.00 0.00 OpenGLMain(int, char**) 0.00 451.23 0.00 1 0.00 0.00 glmAddGroup(_GLMmodel*, char*) 0.00 451.23 0.00 1 0.00 0.00 glmFindGroup(_GLMmodel*, char*) 0.00 451.23 0.00 1 0.00 0.00 ThinLensCamera::RecomputeCameraParameters() 0.00 451.23 0.00 1 0.00 0.00 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) 0.00 451.23 0.00 1 0.00 0.00 LambertianMaterial::LambertianMaterial(RGBColor const&) 0.00 451.23 0.00 1 0.00 6.34 Group::PreProcess() 0.00 451.23 0.00 1 0.00 0.00 Group::Group() 0.00 451.23 0.00 1 0.00 0.00 Light::Light(Point const&, RGBColor const&) 0.00 451.23 0.00 1 0.00 0.00 Scene::SetGeometry(Object*) 0.00 451.23 0.00 1 0.00 6.70 Scene::SetGeometry(char*) 0.00 451.23 0.00 1 0.00 0.00 Scene::AddLight(Light*) 0.00 451.23 0.00 1 0.00 0.00 Scene::SetCamera(ThinLensCamera*) 0.00 451.23 0.00 1 0.00 0.00 Scene::Scene() 0.00 451.23 0.00 1 0.00 0.00 Random::Random(unsigned long) 0.00 451.23 0.00 1 0.00 0.00 Array1D::Add(Light* const&) 0.00 451.23 0.00 1 0.00 0.00 Array1D::Array1D() 0.00 451.23 0.00 1 0.00 0.00 Array1D::GetData() 0.00 451.23 0.00 1 0.00 0.00 Array1D::Array1D() 0.00 451.23 0.00 1 0.00 0.00 Array1D::Array1D() 0.00 451.23 0.00 1 0.00 0.00 Material::Material() 0.00 451.23 0.00 1 0.00 0.00 NaiveBVH::~NaiveBVH() 0.00 451.23 0.00 1 0.00 0.00 Vector::Length() const 0.00 451.23 0.00 1 0.00 0.01 glmFacetNormals 0.00 451.23 0.00 1 0.00 0.10 glmReadOBJ % the percentage of the total running time of the time program used by this function. cumulative a running sum of the number of seconds accounted seconds for by this function and those listed above it. self the number of seconds accounted for by this seconds function alone. This is the major sort for this listing. calls the number of times this function was invoked, if this function is profiled, else blank. self the average number of milliseconds spent in this ms/call function per call, if this function is profiled, else blank. total the average number of milliseconds spent in this ms/call function and its descendents per call, if this function is profiled, else blank. name the name of the function. This is the minor sort for this listing. The index shows the location of the function in the gprof listing. If the index is in parenthesis it shows where it would appear in the gprof listing if it were to be printed. Call graph (explanation follows) granularity: each sample hit covers 4 byte(s) for 0.00% of 451.23 seconds index % time self children called name [1] 97.9 2.70 439.02 display() [1] 1.56 389.34 15532032/15532032 Scene::TraceRay(RayPacket&) [2] 5.59 33.46 15532032/15532032 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] 3.98 0.00 186384384/186384384 ConvertToUnsigned(float) [33] 2.56 0.00 31064064/34971720 RayPacket::Reset() [37] 1.01 0.00 62128128/62128128 RGBColor::operator*=(float) [43] 0.86 0.00 62128128/68442519 RGBColor::operator+=(RGBColor const&) [44] 0.32 0.00 62128128/62128128 RGBColor::Red() const [56] 0.20 0.00 62128128/62128128 RGBColor::Green() const [61] 0.14 0.00 62128128/62128128 RGBColor::Blue() const [66] 0.01 0.00 237/237 RayPacket::~RayPacket() [109] 0.00 0.00 711/711 RayPacket::RayPacket() [110] 0.00 0.00 948/3793 RGBColor::RGBColor() [126] 0.00 0.00 237/237 Scene::GetCamera() [132] 0.00 0.00 237/242 Scene::GetWidth() [127] 0.00 0.00 237/242 Scene::GetHeight() [128] 0.00 0.00 237/237 DisplayTimer() [131] ----------------------------------------------- 1.56 389.34 15532032/15532032 display() [1] [2] 86.6 1.56 389.34 15532032 Scene::TraceRay(RayPacket&) [2] 0.14 333.85 15532032/17485860 Group::Intersect(RayPacket&) [3] 0.84 46.30 1953828/1953828 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 0.09 7.70 7638510/7638510 RayPacket::AddCopyRay(Ray&) [21] 0.22 0.00 62237385/69875895 Ray::WasIntersection() const [58] 0.16 0.00 1953828/34971720 RayPacket::Reset() [37] 0.03 0.00 7638510/7638510 Primitive::GetMaterial() [85] 0.01 0.00 11369364/11369364 LambertianMaterial::GetType() const [92] ----------------------------------------------- 0.02 42.00 1953828/17485860 Scene::TraceShadowRay(RayPacket&) [8] 0.14 333.85 15532032/17485860 Scene::TraceRay(RayPacket&) [2] [3] 83.3 0.16 375.84 17485860 Group::Intersect(RayPacket&) [3] 14.78 361.07 17485860/17485860 NaiveBVH::IntersectBVH(RayPacket&) [4] ----------------------------------------------- 744502794 NaiveBVH::IntersectBVH(RayPacket&) [4] 14.78 361.07 17485860/17485860 Group::Intersect(RayPacket&) [3] [4] 83.3 14.78 361.07 17485860+744502794 NaiveBVH::IntersectBVH(RayPacket&) [4] 176.26 138.66 761988654/761988654 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] 14.09 30.14 71123226/71123226 Triangle::Intersect(RayPacket&) [7] 1.92 0.00 761988654/761988654 BBox::GetPoints() [39] 744502794 NaiveBVH::IntersectBVH(RayPacket&) [4] ----------------------------------------------- 176.26 138.66 761988654/761988654 NaiveBVH::IntersectBVH(RayPacket&) [4] [5] 69.8 176.26 138.66 761988654 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] 39.46 0.00 2946544004/2978471138 Point::X() const [9] 36.52 0.00 2946544004/2978471138 Point::Y() const [11] 19.51 0.00 3948092940/3980020074 Point::Z() const [12] 17.48 0.00 3620755650/3760288926 Vector::X() const [13] 16.68 0.00 3620755650/3760288926 Vector::Y() const [14] 9.00 0.00 1974046470/2113579746 Vector::Z() const [18] ----------------------------------------------- 0.84 46.30 1953828/1953828 Scene::TraceRay(RayPacket&) [2] [6] 10.4 0.84 46.30 1953828 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 0.11 42.01 1953828/1953828 Scene::TraceShadowRay(RayPacket&) [8] 0.37 1.51 7638510/69766638 RayPacket::AddCopyRay(Point, Vector, int) [15] 0.13 0.74 15277020/15277020 Ray::GetHitPoint() const [45] 0.43 0.00 7638510/77655153 Vector::Normalize() [30] 0.07 0.10 6314391/6314391 RGBColor::operator*(float) const [65] 0.16 0.00 1953828/34971720 RayPacket::Reset() [37] 0.10 0.06 7638510/291065794 Point::operator-(Point const&) const [28] 0.00 0.09 7638510/7638510 Triangle::ComputeNormal(Ray&) const [71] 0.09 0.00 7638510/288000408 Vector::operator=(Vector const&) [35] 0.09 0.00 6314391/689495331 Vector::Dot(Vector const&) const [19] 0.09 0.00 6314391/68442519 RGBColor::operator+=(RGBColor const&) [44] 0.05 0.00 7638510/7638511 Vector::Vector(Vector const&) [78] 0.03 0.00 7638510/7638510 Light::GetPosition() [84] 0.02 0.01 1953828/1953828 Scene::GetLight(int) [86] 0.03 0.00 7638510/69875895 Ray::WasIntersection() const [58] 0.01 0.00 6314391/6314391 Light::GetColor() [93] 0.00 0.00 1953828/1953828 Scene::GetNumLights() [120] ----------------------------------------------- 14.09 30.14 71123226/71123226 NaiveBVH::IntersectBVH(RayPacket&) [4] [7] 9.8 14.09 30.14 71123226 Triangle::Intersect(RayPacket&) [7] 9.45 2.84 373832187/374082189 Vector::Cross(Vector const&) const [16] 9.52 0.00 683180940/689495331 Vector::Dot(Vector const&) const [19] 3.75 2.15 282927282/291065794 Point::operator-(Point const&) const [28] 1.10 0.00 90892818/288000408 Vector::operator=(Vector const&) [35] 0.37 0.22 26421471/26421471 Ray::CheckHit(float, Primitive*, Vector const&) [49] 0.53 0.00 282939369/283700753 Vector::Vector() [51] 0.20 0.00 26421471/1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- 0.11 42.01 1953828/1953828 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [8] 9.3 0.11 42.01 1953828 Scene::TraceShadowRay(RayPacket&) [8] 0.02 42.00 1953828/17485860 Group::Intersect(RayPacket&) [3] ----------------------------------------------- 0.01 0.00 499998/2978471138 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.06 0.00 4500000/2978471138 BBox::Expand(Point const&) [60] 0.36 0.00 26927136/2978471138 BBox::Expand(BBox const&) [42] 39.46 0.00 2946544004/2978471138 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] [9] 8.8 39.89 0.00 2978471138 Point::X() const [9] ----------------------------------------------- 5.59 33.46 15532032/15532032 display() [1] [10] 8.7 5.59 33.46 15532032 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] 3.04 12.27 62128128/69766638 RayPacket::AddCopyRay(Point, Vector, int) [15] 2.86 1.89 248512512/388045794 Vector::operator*(float) const [23] 4.12 0.00 124256256/124256256 Random::fRandom() [32] 1.00 2.38 124256256/139533281 operator*(float, Vector const&) [34] 1.76 0.94 124256256/124256258 Vector::operator+(Vector const&) const [38] 1.57 1.04 124256256/140033277 Point::operator+(Vector const&) const [36] 0.59 0.00 62128128/62128131 Point::Point(Point const&) [50] ----------------------------------------------- 0.01 0.00 499998/2978471138 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.06 0.00 4500000/2978471138 BBox::Expand(Point const&) [60] 0.33 0.00 26927136/2978471138 BBox::Expand(BBox const&) [42] 36.52 0.00 2946544004/2978471138 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] [11] 8.2 36.92 0.00 2978471138 Point::Y() const [11] ----------------------------------------------- 0.00 0.00 499998/3980020074 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.02 0.00 4500000/3980020074 BBox::Expand(Point const&) [60] 0.13 0.00 26927136/3980020074 BBox::Expand(BBox const&) [42] 19.51 0.00 3948092940/3980020074 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] [12] 4.4 19.67 0.00 3980020074 Point::Z() const [12] ----------------------------------------------- 0.67 0.00 139533276/3760288926 Ray::RecomputeParameters() [20] 17.48 0.00 3620755650/3760288926 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] [13] 4.0 18.15 0.00 3760288926 Vector::X() const [13] ----------------------------------------------- 0.64 0.00 139533276/3760288926 Ray::RecomputeParameters() [20] 16.68 0.00 3620755650/3760288926 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] [14] 3.8 17.32 0.00 3760288926 Vector::Y() const [14] ----------------------------------------------- 0.37 1.51 7638510/69766638 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 3.04 12.27 62128128/69766638 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [15] 3.8 3.41 13.78 69766638 RayPacket::AddCopyRay(Point, Vector, int) [15] 5.37 3.32 69766638/69766638 Ray::RecomputeParameters() [20] 0.29 3.95 69766638/69766638 Ray::NormalizeRayDirection() [31] 0.84 0.00 69766638/288000408 Vector::operator=(Vector const&) [35] ----------------------------------------------- 0.00 0.00 2/374082189 ThinLensCamera::RecomputeCameraParameters() [113] 0.01 0.00 250000/374082189 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 9.45 2.84 373832187/374082189 Triangle::Intersect(RayPacket&) [7] [16] 2.7 9.46 2.84 374082189 Vector::Cross(Vector const&) const [16] 2.84 0.00 374082189/1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- 0.00 0.00 1/1273638145 Scene::SetGeometry(char*) [25] 0.20 0.00 26421471/1273638145 Triangle::Intersect(RayPacket&) [7] 0.53 0.00 69766638/1273638145 Ray::RecomputeParameters() [20] 0.94 0.00 124256258/1273638145 Vector::operator+(Vector const&) const [38] 2.21 0.00 291065794/1273638145 Point::operator-(Point const&) const [28] 2.84 0.00 374082189/1273638145 Vector::Cross(Vector const&) const [16] 2.95 0.00 388045794/1273638145 Vector::operator*(float) const [23] [17] 2.1 9.68 0.00 1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- 0.64 0.00 139533276/2113579746 Ray::RecomputeParameters() [20] 9.00 0.00 1974046470/2113579746 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [5] [18] 2.1 9.64 0.00 2113579746 Vector::Z() const [18] ----------------------------------------------- 0.09 0.00 6314391/689495331 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 9.52 0.00 683180940/689495331 Triangle::Intersect(RayPacket&) [7] [19] 2.1 9.61 0.00 689495331 Vector::Dot(Vector const&) const [19] ----------------------------------------------- 5.37 3.32 69766638/69766638 RayPacket::AddCopyRay(Point, Vector, int) [15] [20] 1.9 5.37 3.32 69766638 Ray::RecomputeParameters() [20] 0.84 0.00 69766638/288000408 Vector::operator=(Vector const&) [35] 0.67 0.00 139533276/3760288926 Vector::X() const [13] 0.64 0.00 139533276/3760288926 Vector::Y() const [14] 0.64 0.00 139533276/2113579746 Vector::Z() const [18] 0.53 0.00 69766638/1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- 0.09 7.70 7638510/7638510 Scene::TraceRay(RayPacket&) [2] [21] 1.7 0.09 7.70 7638510 RayPacket::AddCopyRay(Ray&) [21] 7.42 0.28 7638510/7638510 Ray::CopyFromRay(Ray&) [22] ----------------------------------------------- 7.42 0.28 7638510/7638510 RayPacket::AddCopyRay(Ray&) [21] [22] 1.7 7.42 0.28 7638510 Ray::CopyFromRay(Ray&) [22] 0.28 0.00 22915530/288000408 Vector::operator=(Vector const&) [35] ----------------------------------------------- 0.00 0.00 1/388045794 ThinLensCamera::RecomputeCameraParameters() [113] 1.61 1.06 139533281/388045794 operator*(float, Vector const&) [34] 2.86 1.89 248512512/388045794 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [23] 1.6 4.47 2.95 388045794 Vector::operator*(float) const [23] 2.95 0.00 388045794/1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- [24] 1.5 0.00 6.70 main [24] 0.00 6.70 1/1 Scene::SetGeometry(char*) [25] 0.00 0.00 1/1 Scene::Scene() [114] 0.00 0.00 1/1 OpenGLMain(int, char**) [156] ----------------------------------------------- 0.00 6.70 1/1 main [24] [25] 1.5 0.00 6.70 1 Scene::SetGeometry(char*) [25] 0.00 6.34 1/1 Group::PreProcess() [26] 0.04 0.09 1/1 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] 0.09 0.02 1/1 glmVertexNormals [68] 0.00 0.10 1/1 glmReadOBJ [70] 0.00 0.01 1/1 glmFacetNormals [91] 0.01 0.00 1/1 glmUnitize [99] 0.00 0.00 1/1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] 0.00 0.00 2/6314394 RGBColor::RGBColor(float, float, float) [69] 0.00 0.00 3/155166662 Point::Point(float, float, float) [41] 0.00 0.00 1/1 Light::Light(Point const&, RGBColor const&) [116] 0.00 0.00 1/1273638145 Vector::Vector(float, float, float) [17] 0.00 0.00 1/1 Scene::SetCamera(ThinLensCamera*) [163] 0.00 0.00 1/1 LambertianMaterial::LambertianMaterial(RGBColor const&) [159] 0.00 0.00 1/1 Group::Group() [160] 0.00 0.00 1/1 Scene::SetGeometry(Object*) [161] 0.00 0.00 1/1 Scene::AddLight(Light*) [162] ----------------------------------------------- 0.00 6.34 1/1 Scene::SetGeometry(char*) [25] [26] 1.4 0.00 6.34 1 Group::PreProcess() [26] 0.07 6.01 1/1 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.02 0.24 1/1 Group::ComputerBBoxForEachObject(Object**) [57] 0.00 0.00 1/500000 NaiveBVH::NaiveBVH() [83] 0.00 0.00 1/1 NaiveBVH::~NaiveBVH() [115] 0.00 0.00 1/1 Array1D::GetData() [167] ----------------------------------------------- 499998 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.07 6.01 1/1 Group::PreProcess() [26] [27] 1.3 0.07 6.01 1+499998 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 1.99 2.68 123017/123017 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] 0.35 0.90 4487856/4487856 BBox::Expand(BBox const&) [42] 0.01 0.02 499999/500000 NaiveBVH::NaiveBVH() [83] 0.01 0.01 249999/1203835 BBox::BBox() [76] 0.01 0.00 499999/81742470 BBox::operator=(BBox const&) [40] 0.01 0.00 499998/2978471138 Point::X() const [9] 0.01 0.00 499998/2978471138 Point::Y() const [11] 0.00 0.00 249999/784655 BBox::~BBox() [96] 0.00 0.00 499998/3980020074 Point::Z() const [12] 0.00 0.00 749997/82492467 BBox::GetMax() const [62] 0.00 0.00 749997/204869585 BBox::GetMin() const [53] 499998 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] ----------------------------------------------- 0.00 0.00 2/291065794 ThinLensCamera::RecomputeCameraParameters() [113] 0.01 0.00 500000/291065794 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.10 0.06 7638510/291065794 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 3.75 2.15 282927282/291065794 Triangle::Intersect(RayPacket&) [7] [28] 1.3 3.86 2.21 291065794 Point::operator-(Point const&) const [28] 2.21 0.00 291065794/1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- 161638 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] 1.99 2.68 123017/123017 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] [29] 1.0 1.99 2.68 123017+161638 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] 1.38 0.35 80992471/81742470 BBox::operator=(BBox const&) [40] 0.70 0.00 122377118/122377118 Point::GetElement(int) const [48] 0.24 0.00 122377118/204869585 BBox::GetMin() const [53] 0.01 0.00 203836/1203835 BBox::BBox() [76] 0.00 0.00 284655/784655 BBox::~BBox() [96] 161638 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] ----------------------------------------------- 0.00 0.00 5/77655153 ThinLensCamera::RecomputeCameraParameters() [113] 0.01 0.00 250000/77655153 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.43 0.00 7638510/77655153 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 3.95 0.00 69766638/77655153 Ray::NormalizeRayDirection() [31] [30] 1.0 4.40 0.00 77655153 Vector::Normalize() [30] ----------------------------------------------- 0.29 3.95 69766638/69766638 RayPacket::AddCopyRay(Point, Vector, int) [15] [31] 0.9 0.29 3.95 69766638 Ray::NormalizeRayDirection() [31] 3.95 0.00 69766638/77655153 Vector::Normalize() [30] ----------------------------------------------- 4.12 0.00 124256256/124256256 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [32] 0.9 4.12 0.00 124256256 Random::fRandom() [32] ----------------------------------------------- 3.98 0.00 186384384/186384384 display() [1] [33] 0.9 3.98 0.00 186384384 ConvertToUnsigned(float) [33] ----------------------------------------------- 0.00 0.00 5/139533281 ThinLensCamera::RecomputeCameraParameters() [113] 0.12 0.29 15277020/139533281 Ray::GetHitPoint() const [45] 1.00 2.38 124256256/139533281 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [34] 0.8 1.12 2.67 139533281 operator*(float, Vector const&) [34] 1.61 1.06 139533281/388045794 Vector::operator*(float) const [23] ----------------------------------------------- 0.00 0.00 9/288000408 ThinLensCamera::RecomputeCameraParameters() [113] 0.01 0.00 750000/288000408 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.09 0.00 7638510/288000408 Triangle::ComputeNormal(Ray&) const [71] 0.09 0.00 7638510/288000408 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 0.22 0.00 18631755/288000408 Ray::CheckHit(float, Primitive*, Vector const&) [49] 0.28 0.00 22915530/288000408 Ray::CopyFromRay(Ray&) [22] 0.84 0.00 69766638/288000408 Ray::RecomputeParameters() [20] 0.84 0.00 69766638/288000408 RayPacket::AddCopyRay(Point, Vector, int) [15] 1.10 0.00 90892818/288000408 Triangle::Intersect(RayPacket&) [7] [35] 0.8 3.47 0.00 288000408 Vector::operator=(Vector const&) [35] ----------------------------------------------- 0.00 0.00 1/140033277 ThinLensCamera::RecomputeCameraParameters() [113] 0.01 0.00 500000/140033277 Triangle::ComputerBoundingBox() [59] 0.19 0.13 15277020/140033277 Ray::GetHitPoint() const [45] 1.57 1.04 124256256/140033277 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [36] 0.7 1.77 1.17 140033277 Point::operator+(Vector const&) const [36] 1.17 0.00 140033277/155166662 Point::Point(float, float, float) [41] ----------------------------------------------- 0.16 0.00 1953828/34971720 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 0.16 0.00 1953828/34971720 Scene::TraceRay(RayPacket&) [2] 2.56 0.00 31064064/34971720 display() [1] [37] 0.6 2.88 0.00 34971720 RayPacket::Reset() [37] ----------------------------------------------- 0.00 0.00 2/124256258 ThinLensCamera::RecomputeCameraParameters() [113] 1.76 0.94 124256256/124256258 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [38] 0.6 1.76 0.94 124256258 Vector::operator+(Vector const&) const [38] 0.94 0.00 124256258/1273638145 Vector::Vector(float, float, float) [17] ----------------------------------------------- 1.92 0.00 761988654/761988654 NaiveBVH::IntersectBVH(RayPacket&) [4] [39] 0.4 1.92 0.00 761988654 BBox::GetPoints() [39] ----------------------------------------------- 0.00 0.00 250000/81742470 Group::ComputerBBoxForEachObject(Object**) [57] 0.01 0.00 499999/81742470 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 1.38 0.35 80992471/81742470 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] [40] 0.4 1.39 0.35 81742470 BBox::operator=(BBox const&) [40] 0.19 0.00 81742470/82492467 BBox::GetMax() const [62] 0.16 0.00 81742470/204869585 BBox::GetMin() const [53] ----------------------------------------------- 0.00 0.00 3/155166662 Scene::SetGeometry(char*) [25] 0.01 0.00 750000/155166662 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] 0.01 0.00 750000/155166662 Point::operator*(float) const [107] 0.01 0.00 750000/155166662 Point::operator+(Point const&) const [108] 0.01 0.00 1500000/155166662 BBox::Expand(Point const&) [60] 0.02 0.00 2407670/155166662 BBox::BBox() [76] 0.08 0.00 8975712/155166662 BBox::Expand(BBox const&) [42] 1.17 0.00 140033277/155166662 Point::operator+(Vector const&) const [36] [41] 0.3 1.30 0.00 155166662 Point::Point(float, float, float) [41] ----------------------------------------------- 0.35 0.90 4487856/4487856 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] [42] 0.3 0.35 0.90 4487856 BBox::Expand(BBox const&) [42] 0.36 0.00 26927136/2978471138 Point::X() const [9] 0.33 0.00 26927136/2978471138 Point::Y() const [11] 0.13 0.00 26927136/3980020074 Point::Z() const [12] 0.08 0.00 8975712/155166662 Point::Point(float, float, float) [41] ----------------------------------------------- 1.01 0.00 62128128/62128128 display() [1] [43] 0.2 1.01 0.00 62128128 RGBColor::operator*=(float) [43] ----------------------------------------------- 0.09 0.00 6314391/68442519 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 0.86 0.00 62128128/68442519 display() [1] [44] 0.2 0.95 0.00 68442519 RGBColor::operator+=(RGBColor const&) [44] ----------------------------------------------- 0.13 0.74 15277020/15277020 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [45] 0.2 0.13 0.74 15277020 Ray::GetHitPoint() const [45] 0.12 0.29 15277020/139533281 operator*(float, Vector const&) [34] 0.19 0.13 15277020/140033277 Point::operator+(Vector const&) const [36] ----------------------------------------------- 0.39 0.00 1/2 global constructors keyed to _ZN8NaiveBVH14BuildHierrachyEP4BBoxiiPP6Objecti [55] 0.39 0.00 1/2 global destructors keyed to _ZN8NaiveBVH14BuildHierrachyEP4BBoxiiPP6Objecti [54] [46] 0.2 0.78 0.00 2 __static_initialization_and_destruction_0(int, int) [46] ----------------------------------------------- [47] 0.2 0.75 0.00 NaiveBVH::IntersectBVH(Ray&) [47] ----------------------------------------------- 0.70 0.00 122377118/122377118 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] [48] 0.2 0.70 0.00 122377118 Point::GetElement(int) const [48] ----------------------------------------------- 0.37 0.22 26421471/26421471 Triangle::Intersect(RayPacket&) [7] [49] 0.1 0.37 0.22 26421471 Ray::CheckHit(float, Primitive*, Vector const&) [49] 0.22 0.00 18631755/288000408 Vector::operator=(Vector const&) [35] ----------------------------------------------- 0.00 0.00 1/62128131 Light::Light(Point const&, RGBColor const&) [116] 0.00 0.00 2/62128131 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] 0.59 0.00 62128128/62128131 ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [10] [50] 0.1 0.59 0.00 62128131 Point::Point(Point const&) [50] ----------------------------------------------- 0.00 0.00 8/283700753 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] 0.00 0.00 2844/283700753 RayPacket::RayPacket() [110] 0.00 0.00 8532/283700753 Ray::Ray() [111] 0.00 0.00 750000/283700753 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.53 0.00 282939369/283700753 Triangle::Intersect(RayPacket&) [7] [51] 0.1 0.53 0.00 283700753 Vector::Vector() [51] ----------------------------------------------- [52] 0.1 0.45 0.00 NaiveBVH::IntersectBBox(Ray&, Point const*) [52] ----------------------------------------------- 0.00 0.00 749997/204869585 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.16 0.00 81742470/204869585 BBox::operator=(BBox const&) [40] 0.24 0.00 122377118/204869585 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] [53] 0.1 0.41 0.00 204869585 BBox::GetMin() const [53] ----------------------------------------------- [54] 0.1 0.00 0.39 global destructors keyed to _ZN8NaiveBVH14BuildHierrachyEP4BBoxiiPP6Objecti [54] 0.39 0.00 1/2 __static_initialization_and_destruction_0(int, int) [46] ----------------------------------------------- [55] 0.1 0.00 0.39 global constructors keyed to _ZN8NaiveBVH14BuildHierrachyEP4BBoxiiPP6Objecti [55] 0.39 0.00 1/2 __static_initialization_and_destruction_0(int, int) [46] ----------------------------------------------- 0.32 0.00 62128128/62128128 display() [1] [56] 0.1 0.32 0.00 62128128 RGBColor::Red() const [56] ----------------------------------------------- 0.02 0.24 1/1 Group::PreProcess() [26] [57] 0.1 0.02 0.24 1 Group::ComputerBBoxForEachObject(Object**) [57] 0.00 0.23 250000/250000 Triangle::ComputerBoundingBox() [59] 0.00 0.00 250000/81742470 BBox::operator=(BBox const&) [40] 0.00 0.00 250000/784655 BBox::~BBox() [96] ----------------------------------------------- 0.03 0.00 7638510/69875895 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] 0.22 0.00 62237385/69875895 Scene::TraceRay(RayPacket&) [2] [58] 0.1 0.25 0.00 69875895 Ray::WasIntersection() const [58] ----------------------------------------------- 0.00 0.23 250000/250000 Group::ComputerBBoxForEachObject(Object**) [57] [59] 0.1 0.00 0.23 250000 Triangle::ComputerBoundingBox() [59] 0.06 0.15 750000/750000 BBox::Expand(Point const&) [60] 0.01 0.01 250000/1203835 BBox::BBox() [76] 0.01 0.00 500000/140033277 Point::operator+(Vector const&) const [36] ----------------------------------------------- 0.06 0.15 750000/750000 Triangle::ComputerBoundingBox() [59] [60] 0.0 0.06 0.15 750000 BBox::Expand(Point const&) [60] 0.06 0.00 4500000/2978471138 Point::X() const [9] 0.06 0.00 4500000/2978471138 Point::Y() const [11] 0.02 0.00 4500000/3980020074 Point::Z() const [12] 0.01 0.00 1500000/155166662 Point::Point(float, float, float) [41] ----------------------------------------------- 0.20 0.00 62128128/62128128 display() [1] [61] 0.0 0.20 0.00 62128128 RGBColor::Green() const [61] ----------------------------------------------- 0.00 0.00 749997/82492467 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.19 0.00 81742470/82492467 BBox::operator=(BBox const&) [40] [62] 0.0 0.19 0.00 82492467 BBox::GetMax() const [62] ----------------------------------------------- [63] 0.0 0.19 0.00 memset [63] ----------------------------------------------- [64] 0.0 0.17 0.00 sqrt [64] ----------------------------------------------- 0.07 0.10 6314391/6314391 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [65] 0.0 0.07 0.10 6314391 RGBColor::operator*(float) const [65] 0.10 0.00 6314391/6314394 RGBColor::RGBColor(float, float, float) [69] ----------------------------------------------- 0.14 0.00 62128128/62128128 display() [1] [66] 0.0 0.14 0.00 62128128 RGBColor::Blue() const [66] ----------------------------------------------- 0.04 0.09 1/1 Scene::SetGeometry(char*) [25] [67] 0.0 0.04 0.09 1 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] 0.02 0.04 250000/250000 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.01 0.00 750000/750000 Point::Point(float*) [98] 0.01 0.00 750000/155166662 Point::Point(float, float, float) [41] 0.00 0.01 750000/750000 Point::operator*(float) const [107] 0.00 0.01 750000/750000 Point::operator+(Point const&) const [108] 0.00 0.00 250000/250000 Group::Add(Object*) [123] ----------------------------------------------- 0.09 0.02 1/1 Scene::SetGeometry(char*) [25] [68] 0.0 0.09 0.02 1 glmVertexNormals [68] 0.01 0.00 750000/750000 glmDot(float*, float*) [97] 0.01 0.00 124926/374926 glmNormalize(float*) [89] ----------------------------------------------- 0.00 0.00 1/6314394 Scene::Scene() [114] 0.00 0.00 2/6314394 Scene::SetGeometry(char*) [25] 0.10 0.00 6314391/6314394 RGBColor::operator*(float) const [65] [69] 0.0 0.10 0.00 6314394 RGBColor::RGBColor(float, float, float) [69] ----------------------------------------------- 0.00 0.10 1/1 Scene::SetGeometry(char*) [25] [70] 0.0 0.00 0.10 1 glmReadOBJ [70] 0.05 0.00 1/1 glmFirstPass(_GLMmodel*, __sFILE64*) [79] 0.05 0.00 1/1 glmSecondPass(_GLMmodel*, __sFILE64*) [80] ----------------------------------------------- 0.00 0.09 7638510/7638510 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [71] 0.0 0.00 0.09 7638510 Triangle::ComputeNormal(Ray&) const [71] 0.09 0.00 7638510/288000408 Vector::operator=(Vector const&) [35] ----------------------------------------------- [72] 0.0 0.08 0.00 Random::dRandom() [72] ----------------------------------------------- [73] 0.0 0.08 0.00 sin [73] ----------------------------------------------- [74] 0.0 0.07 0.00 cos [74] ----------------------------------------------- 0.02 0.04 250000/250000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] [75] 0.0 0.02 0.04 250000 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.01 0.00 250000/77655153 Vector::Normalize() [30] 0.01 0.00 500000/291065794 Point::operator-(Point const&) const [28] 0.01 0.00 750000/288000408 Vector::operator=(Vector const&) [35] 0.01 0.00 250000/374082189 Vector::Cross(Vector const&) const [16] 0.00 0.00 750000/283700753 Vector::Vector() [51] 0.00 0.00 250000/2660515 Point::Point() [94] 0.00 0.00 250000/250000 Primitive::Primitive(Material*) [125] ----------------------------------------------- 0.01 0.00 203836/1203835 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] 0.01 0.01 249999/1203835 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.01 0.01 250000/1203835 Triangle::ComputerBoundingBox() [59] 0.01 0.01 500000/1203835 NaiveBVH::NaiveBVH() [83] [76] 0.0 0.03 0.03 1203835 BBox::BBox() [76] 0.02 0.00 2407670/155166662 Point::Point(float, float, float) [41] 0.01 0.00 2407670/2660515 Point::Point() [94] ----------------------------------------------- 0.03 0.00 1/2 global constructors keyed to _ZN9RayPacketC2Ev [88] 0.03 0.00 1/2 global destructors keyed to _ZN9RayPacketC2Ev [87] [77] 0.0 0.06 0.00 2 __static_initialization_and_destruction_0(int, int) [77] ----------------------------------------------- 0.00 0.00 1/7638511 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] 0.05 0.00 7638510/7638511 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [78] 0.0 0.05 0.00 7638511 Vector::Vector(Vector const&) [78] ----------------------------------------------- 0.05 0.00 1/1 glmReadOBJ [70] [79] 0.0 0.05 0.00 1 glmFirstPass(_GLMmodel*, __sFILE64*) [79] 0.00 0.00 1/1 glmAddGroup(_GLMmodel*, char*) [157] ----------------------------------------------- 0.05 0.00 1/1 glmReadOBJ [70] [80] 0.0 0.05 0.00 1 glmSecondPass(_GLMmodel*, __sFILE64*) [80] ----------------------------------------------- [81] 0.0 0.05 0.00 _Unwind_SjLj_Register [81] ----------------------------------------------- [82] 0.0 0.04 0.00 RayPacket::GetDepth() [82] ----------------------------------------------- 0.00 0.00 1/500000 Group::PreProcess() [26] 0.01 0.02 499999/500000 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] [83] 0.0 0.01 0.02 500000 NaiveBVH::NaiveBVH() [83] 0.01 0.01 500000/1203835 BBox::BBox() [76] ----------------------------------------------- 0.03 0.00 7638510/7638510 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [84] 0.0 0.03 0.00 7638510 Light::GetPosition() [84] ----------------------------------------------- 0.03 0.00 7638510/7638510 Scene::TraceRay(RayPacket&) [2] [85] 0.0 0.03 0.00 7638510 Primitive::GetMaterial() [85] ----------------------------------------------- 0.02 0.01 1953828/1953828 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [86] 0.0 0.02 0.01 1953828 Scene::GetLight(int) [86] 0.01 0.00 1953828/1953828 Array1D::operator[](int) [95] ----------------------------------------------- [87] 0.0 0.00 0.03 global destructors keyed to _ZN9RayPacketC2Ev [87] 0.03 0.00 1/2 __static_initialization_and_destruction_0(int, int) [77] ----------------------------------------------- [88] 0.0 0.00 0.03 global constructors keyed to _ZN9RayPacketC2Ev [88] 0.03 0.00 1/2 __static_initialization_and_destruction_0(int, int) [77] ----------------------------------------------- 0.01 0.00 124926/374926 glmVertexNormals [68] 0.01 0.00 250000/374926 glmFacetNormals [91] [89] 0.0 0.02 0.00 374926 glmNormalize(float*) [89] ----------------------------------------------- [90] 0.0 0.02 0.00 std::ostream::flush() [90] ----------------------------------------------- 0.00 0.01 1/1 Scene::SetGeometry(char*) [25] [91] 0.0 0.00 0.01 1 glmFacetNormals [91] 0.01 0.00 250000/374926 glmNormalize(float*) [89] 0.00 0.00 250000/250000 glmCross(float*, float*, float*) [122] ----------------------------------------------- 0.01 0.00 11369364/11369364 Scene::TraceRay(RayPacket&) [2] [92] 0.0 0.01 0.00 11369364 LambertianMaterial::GetType() const [92] ----------------------------------------------- 0.01 0.00 6314391/6314391 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [93] 0.0 0.01 0.00 6314391 Light::GetColor() [93] ----------------------------------------------- 0.00 0.00 1/2660515 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] 0.00 0.00 2844/2660515 Ray::Ray() [111] 0.00 0.00 250000/2660515 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] 0.01 0.00 2407670/2660515 BBox::BBox() [76] [94] 0.0 0.01 0.00 2660515 Point::Point() [94] ----------------------------------------------- 0.01 0.00 1953828/1953828 Scene::GetLight(int) [86] [95] 0.0 0.01 0.00 1953828 Array1D::operator[](int) [95] ----------------------------------------------- 0.00 0.00 1/784655 NaiveBVH::~NaiveBVH() [115] 0.00 0.00 249999/784655 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [27] 0.00 0.00 250000/784655 Group::ComputerBBoxForEachObject(Object**) [57] 0.00 0.00 284655/784655 NaiveBVH::Sort(BBox*, int, int, Object**, int) [29] [96] 0.0 0.01 0.00 784655 BBox::~BBox() [96] ----------------------------------------------- 0.01 0.00 750000/750000 glmVertexNormals [68] [97] 0.0 0.01 0.00 750000 glmDot(float*, float*) [97] ----------------------------------------------- 0.01 0.00 750000/750000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] [98] 0.0 0.01 0.00 750000 Point::Point(float*) [98] ----------------------------------------------- 0.01 0.00 1/1 Scene::SetGeometry(char*) [25] [99] 0.0 0.01 0.00 1 glmUnitize [99] 0.00 0.00 6/6 glmAbs(float) [133] 0.00 0.00 2/2 glmMax(float, float) [153] ----------------------------------------------- [100] 0.0 0.01 0.00 _Unwind_SjLj_Unregister [100] ----------------------------------------------- [101] 0.0 0.01 0.00 ThinLensCamera::ThinLensCamera(__sFILE64*, Scene*) [101] ----------------------------------------------- [102] 0.0 0.01 0.00 LambertianMaterial::LambertianMaterial(__sFILE64*, Scene*) [102] ----------------------------------------------- [103] 0.0 0.01 0.00 Ray::PrintToScreen() [103] ----------------------------------------------- [104] 0.0 0.01 0.00 Random::sRandom() [104] ----------------------------------------------- [105] 0.0 0.01 0.00 std::__timepunct::__timepunct(std::__timepunct_cache*, unsigned int) [105] ----------------------------------------------- [106] 0.0 0.01 0.00 operator new(unsigned int) [106] ----------------------------------------------- 0.00 0.01 750000/750000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] [107] 0.0 0.00 0.01 750000 Point::operator*(float) const [107] 0.01 0.00 750000/155166662 Point::Point(float, float, float) [41] ----------------------------------------------- 0.00 0.01 750000/750000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] [108] 0.0 0.00 0.01 750000 Point::operator+(Point const&) const [108] 0.01 0.00 750000/155166662 Point::Point(float, float, float) [41] ----------------------------------------------- 0.01 0.00 237/237 display() [1] [109] 0.0 0.01 0.00 237 RayPacket::~RayPacket() [109] ----------------------------------------------- 0.00 0.00 711/711 display() [1] [110] 0.0 0.00 0.00 711 RayPacket::RayPacket() [110] 0.00 0.00 2844/2844 Ray::Ray() [111] 0.00 0.00 2844/283700753 Vector::Vector() [51] 0.00 0.00 2844/3793 RGBColor::RGBColor() [126] ----------------------------------------------- 0.00 0.00 2844/2844 RayPacket::RayPacket() [110] [111] 0.0 0.00 0.00 2844 Ray::Ray() [111] 0.00 0.00 8532/283700753 Vector::Vector() [51] 0.00 0.00 2844/2660515 Point::Point() [94] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [112] 0.0 0.00 0.00 1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] 0.00 0.00 1/1 ThinLensCamera::RecomputeCameraParameters() [113] 0.00 0.00 2/62128131 Point::Point(Point const&) [50] 0.00 0.00 8/283700753 Vector::Vector() [51] 0.00 0.00 1/7638511 Vector::Vector(Vector const&) [78] 0.00 0.00 1/2660515 Point::Point() [94] 0.00 0.00 1/1 Random::Random(unsigned long) [164] ----------------------------------------------- 0.00 0.00 1/1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] [113] 0.0 0.00 0.00 1 ThinLensCamera::RecomputeCameraParameters() [113] 0.00 0.00 5/77655153 Vector::Normalize() [30] 0.00 0.00 5/139533281 operator*(float, Vector const&) [34] 0.00 0.00 9/288000408 Vector::operator=(Vector const&) [35] 0.00 0.00 2/374082189 Vector::Cross(Vector const&) const [16] 0.00 0.00 2/124256258 Vector::operator+(Vector const&) const [38] 0.00 0.00 2/291065794 Point::operator-(Point const&) const [28] 0.00 0.00 1/140033277 Point::operator+(Vector const&) const [36] 0.00 0.00 1/388045794 Vector::operator*(float) const [23] 0.00 0.00 2/2 Vector::operator*=(float) [154] 0.00 0.00 1/1 Vector::Length() const [171] ----------------------------------------------- 0.00 0.00 1/1 main [24] [114] 0.0 0.00 0.00 1 Scene::Scene() [114] 0.00 0.00 1/6314394 RGBColor::RGBColor(float, float, float) [69] 0.00 0.00 1/1 Array1D::Array1D() [166] 0.00 0.00 1/3793 RGBColor::RGBColor() [126] 0.00 0.00 1/1 Array1D::Array1D() [169] ----------------------------------------------- 0.00 0.00 1/1 Group::PreProcess() [26] [115] 0.0 0.00 0.00 1 NaiveBVH::~NaiveBVH() [115] 0.00 0.00 1/784655 BBox::~BBox() [96] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [116] 0.0 0.00 0.00 1 Light::Light(Point const&, RGBColor const&) [116] 0.00 0.00 1/62128131 Point::Point(Point const&) [50] 0.00 0.00 1/2 RGBColor::RGBColor(RGBColor const&) [155] ----------------------------------------------- 0.00 0.00 1953828/1953828 LambertianMaterial::Shade(RayPacket&, Scene&) const [6] [120] 0.0 0.00 0.00 1953828 Scene::GetNumLights() [120] ----------------------------------------------- 0.00 0.00 1/250001 Group::Group() [160] 0.00 0.00 250000/250001 Primitive::Primitive(Material*) [125] [121] 0.0 0.00 0.00 250001 Object::Object() [121] ----------------------------------------------- 0.00 0.00 250000/250000 glmFacetNormals [91] [122] 0.0 0.00 0.00 250000 glmCross(float*, float*, float*) [122] ----------------------------------------------- 0.00 0.00 250000/250000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [67] [123] 0.0 0.00 0.00 250000 Group::Add(Object*) [123] 0.00 0.00 250000/250000 Array1D::Add(Object* const&) [124] ----------------------------------------------- 0.00 0.00 250000/250000 Group::Add(Object*) [123] [124] 0.0 0.00 0.00 250000 Array1D::Add(Object* const&) [124] ----------------------------------------------- 0.00 0.00 250000/250000 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [75] [125] 0.0 0.00 0.00 250000 Primitive::Primitive(Material*) [125] 0.00 0.00 250000/250001 Object::Object() [121] ----------------------------------------------- 0.00 0.00 1/3793 Scene::Scene() [114] 0.00 0.00 948/3793 display() [1] 0.00 0.00 2844/3793 RayPacket::RayPacket() [110] [126] 0.0 0.00 0.00 3793 RGBColor::RGBColor() [126] ----------------------------------------------- 0.00 0.00 2/242 OpenGLMain(int, char**) [156] 0.00 0.00 3/242 reshape(int, int) [266] 0.00 0.00 237/242 display() [1] [127] 0.0 0.00 0.00 242 Scene::GetWidth() [127] 0.00 0.00 242/242 ThinLensCamera::GetScreenWidth() const [129] ----------------------------------------------- 0.00 0.00 2/242 OpenGLMain(int, char**) [156] 0.00 0.00 3/242 reshape(int, int) [266] 0.00 0.00 237/242 display() [1] [128] 0.0 0.00 0.00 242 Scene::GetHeight() [128] 0.00 0.00 242/242 ThinLensCamera::GetScreenHeight() const [130] ----------------------------------------------- 0.00 0.00 242/242 Scene::GetWidth() [127] [129] 0.0 0.00 0.00 242 ThinLensCamera::GetScreenWidth() const [129] ----------------------------------------------- 0.00 0.00 242/242 Scene::GetHeight() [128] [130] 0.0 0.00 0.00 242 ThinLensCamera::GetScreenHeight() const [130] ----------------------------------------------- 0.00 0.00 237/237 display() [1] [131] 0.0 0.00 0.00 237 DisplayTimer() [131] ----------------------------------------------- 0.00 0.00 237/237 display() [1] [132] 0.0 0.00 0.00 237 Scene::GetCamera() [132] ----------------------------------------------- 0.00 0.00 6/6 glmUnitize [99] [133] 0.0 0.00 0.00 6 glmAbs(float) [133] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN5LightC2EP9__sFILE64P5Scene [217] 0.00 0.00 1/2 global destructors keyed to _ZN5LightC2EP9__sFILE64P5Scene [198] [134] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [134] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to myScene [226] 0.00 0.00 1/2 global destructors keyed to myScene [205] [135] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [135] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _Z9ShootRaysR5ImageP5Scene [207] 0.00 0.00 1/2 global destructors keyed to _Z9ShootRaysR5ImageP5Scene [188] [136] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [136] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to texData [227] 0.00 0.00 1/2 global destructors keyed to texData [206] [137] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [137] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6VectorC2ERK5Point [222] 0.00 0.00 1/2 global destructors keyed to _ZN6VectorC2ERK5Point [203] [138] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [138] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN5GroupC2Ev [216] 0.00 0.00 1/2 global destructors keyed to _ZN5GroupC2Ev [197] [139] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [139] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN13InfinitePlaneC2EP8MaterialRK6VectorRK5Point [208] 0.00 0.00 1/2 global destructors keyed to _ZN13InfinitePlaneC2EP8MaterialRK6VectorRK5Point [189] [140] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [140] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6SphereC2EP8MaterialRK5Pointf [221] 0.00 0.00 1/2 global destructors keyed to _ZN6SphereC2EP8MaterialRK5Pointf [202] [141] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [141] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN8TriangleC2EP8MaterialRK5PointS4_S4_ [223] 0.00 0.00 1/2 global destructors keyed to _ZN8TriangleC2EP8MaterialRK5PointS4_S4_ [204] [142] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [142] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN21ConstantColorMaterialC2ERK8RGBColor [213] 0.00 0.00 1/2 global destructors keyed to _ZN21ConstantColorMaterialC2ERK8RGBColor [194] [143] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [143] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN18LambertianMaterialC2ERK8RGBColor [210] 0.00 0.00 1/2 global destructors keyed to _ZN18LambertianMaterialC2ERK8RGBColor [191] [144] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [144] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN18RefractiveMaterialC2Ef [212] 0.00 0.00 1/2 global destructors keyed to _ZN18RefractiveMaterialC2Ef [193] [145] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [145] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN18ReflectiveMaterialC2ERK8RGBColor [211] 0.00 0.00 1/2 global destructors keyed to _ZN18ReflectiveMaterialC2ERK8RGBColor [192] [146] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [146] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN28PathtracedLambertianMaterialC2ERK8RGBColor [214] 0.00 0.00 1/2 global destructors keyed to _ZN28PathtracedLambertianMaterialC2ERK8RGBColor [195] [147] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [147] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6CameraC2ERK5PointS2_RK6Vectorfii [219] 0.00 0.00 1/2 global destructors keyed to _ZN6CameraC2ERK5PointS2_RK6Vectorfii [200] [148] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [148] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN3RayC2Ev [215] 0.00 0.00 1/2 global destructors keyed to _ZN3RayC2Ev [196] [149] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [149] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN5SceneC2Ev [218] 0.00 0.00 1/2 global destructors keyed to _ZN5SceneC2Ev [199] [150] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [150] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN14ThinLensCameraC2EffRK5PointS2_RK6Vectorfii [209] 0.00 0.00 1/2 global destructors keyed to _ZN14ThinLensCameraC2EffRK5PointS2_RK6Vectorfii [190] [151] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [151] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6RandomC2Em [220] 0.00 0.00 1/2 global destructors keyed to _ZN6RandomC2Em [201] [152] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [152] ----------------------------------------------- 0.00 0.00 2/2 glmUnitize [99] [153] 0.0 0.00 0.00 2 glmMax(float, float) [153] ----------------------------------------------- 0.00 0.00 2/2 ThinLensCamera::RecomputeCameraParameters() [113] [154] 0.0 0.00 0.00 2 Vector::operator*=(float) [154] ----------------------------------------------- 0.00 0.00 1/2 LambertianMaterial::LambertianMaterial(RGBColor const&) [159] 0.00 0.00 1/2 Light::Light(Point const&, RGBColor const&) [116] [155] 0.0 0.00 0.00 2 RGBColor::RGBColor(RGBColor const&) [155] ----------------------------------------------- 0.00 0.00 1/1 main [24] [156] 0.0 0.00 0.00 1 OpenGLMain(int, char**) [156] 0.00 0.00 2/242 Scene::GetHeight() [128] 0.00 0.00 2/242 Scene::GetWidth() [127] ----------------------------------------------- 0.00 0.00 1/1 glmFirstPass(_GLMmodel*, __sFILE64*) [79] [157] 0.0 0.00 0.00 1 glmAddGroup(_GLMmodel*, char*) [157] 0.00 0.00 1/1 glmFindGroup(_GLMmodel*, char*) [158] ----------------------------------------------- 0.00 0.00 1/1 glmAddGroup(_GLMmodel*, char*) [157] [158] 0.0 0.00 0.00 1 glmFindGroup(_GLMmodel*, char*) [158] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [159] 0.0 0.00 0.00 1 LambertianMaterial::LambertianMaterial(RGBColor const&) [159] 0.00 0.00 1/1 Material::Material() [170] 0.00 0.00 1/2 RGBColor::RGBColor(RGBColor const&) [155] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [160] 0.0 0.00 0.00 1 Group::Group() [160] 0.00 0.00 1/250001 Object::Object() [121] 0.00 0.00 1/1 Array1D::Array1D() [168] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [161] 0.0 0.00 0.00 1 Scene::SetGeometry(Object*) [161] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [162] 0.0 0.00 0.00 1 Scene::AddLight(Light*) [162] 0.00 0.00 1/1 Array1D::Add(Light* const&) [165] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [25] [163] 0.0 0.00 0.00 1 Scene::SetCamera(ThinLensCamera*) [163] ----------------------------------------------- 0.00 0.00 1/1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [112] [164] 0.0 0.00 0.00 1 Random::Random(unsigned long) [164] ----------------------------------------------- 0.00 0.00 1/1 Scene::AddLight(Light*) [162] [165] 0.0 0.00 0.00 1 Array1D::Add(Light* const&) [165] ----------------------------------------------- 0.00 0.00 1/1 Scene::Scene() [114] [166] 0.0 0.00 0.00 1 Array1D::Array1D() [166] ----------------------------------------------- 0.00 0.00 1/1 Group::PreProcess() [26] [167] 0.0 0.00 0.00 1 Array1D::GetData() [167] ----------------------------------------------- 0.00 0.00 1/1 Group::Group() [160] [168] 0.0 0.00 0.00 1 Array1D::Array1D() [168] ----------------------------------------------- 0.00 0.00 1/1 Scene::Scene() [114] [169] 0.0 0.00 0.00 1 Array1D::Array1D() [169] ----------------------------------------------- 0.00 0.00 1/1 LambertianMaterial::LambertianMaterial(RGBColor const&) [159] [170] 0.0 0.00 0.00 1 Material::Material() [170] ----------------------------------------------- 0.00 0.00 1/1 ThinLensCamera::RecomputeCameraParameters() [113] [171] 0.0 0.00 0.00 1 Vector::Length() const [171] ----------------------------------------------- This table describes the call tree of the program, and was sorted by the total amount of time spent in each function and its children. Each entry in this table consists of several lines. The line with the index number at the left hand margin lists the current function. The lines above it list the functions that called this function, and the lines below it list the functions this one called. This line lists: index A unique number given to each element of the table. Index numbers are sorted numerically. The index number is printed next to every function name so it is easier to look up where the function in the table. % time This is the percentage of the `total' time that was spent in this function and its children. Note that due to different viewpoints, functions excluded by options, etc, these numbers will NOT add up to 100%. self This is the total amount of time spent in this function. children This is the total amount of time propagated into this function by its children. called This is the number of times the function was called. If the function called itself recursively, the number only includes non-recursive calls, and is followed by a `+' and the number of recursive calls. name The name of the current function. The index number is printed after it. If the function is a member of a cycle, the cycle number is printed between the function's name and the index number. For the function's parents, the fields have the following meanings: self This is the amount of time that was propagated directly from the function into this parent. children This is the amount of time that was propagated from the function's children into this parent. called This is the number of times this parent called the function `/' the total number of times the function was called. Recursive calls to the function are not included in the number after the `/'. name This is the name of the parent. The parent's index number is printed after it. If the parent is a member of a cycle, the cycle number is printed between the name and the index number. If the parents of the function cannot be determined, the word `' is printed in the `name' field, and all the other fields are blank. For the function's children, the fields have the following meanings: self This is the amount of time that was propagated directly from the child into the function. children This is the amount of time that was propagated from the child's children to the function. called This is the number of times the function called this child `/' the total number of times the child was called. Recursive calls by the child are not listed in the number after the `/'. name This is the name of the child. The child's index number is printed after it. If the child is a member of a cycle, the cycle number is printed between the name and the index number. If there are any cycles (circles) in the call graph, there is an entry for the cycle-as-a-whole. This entry shows who called the cycle (as parents) and the members of the cycle (as children.) The `+' recursive calls entry shows the number of function calls that were internal to the cycle, and the calls entry for each member shows, for that member, how many times it was called from other members of the cycle. Index by function name [81] _Unwind_SjLj_Register [26] Group::PreProcess() [44] RGBColor::operator+=(RGBColor const&) [100] _Unwind_SjLj_Unregister [57] Group::ComputerBBoxForEachObject(Object**) [59] Triangle::ComputerBoundingBox() [156] OpenGLMain(int, char**) [123] Group::Add(Object*) [7] Triangle::Intersect(RayPacket&) [157] glmAddGroup(_GLMmodel*, char*) [3] Group::Intersect(RayPacket&) [75] Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [131] DisplayTimer() [160] Group::Group() [85] Primitive::GetMaterial() [158] glmFindGroup(_GLMmodel*, char*) [84] Light::GetPosition() [125] Primitive::Primitive(Material*) [79] glmFirstPass(_GLMmodel*, __sFILE64*) (glm.cpp) [93] Light::GetColor() [15] RayPacket::AddCopyRay(Point, Vector, int) [89] glmNormalize(float*) (glm.cpp) [116] Light::Light(Point const&, RGBColor const&) [21] RayPacket::AddCopyRay(Ray&) [80] glmSecondPass(_GLMmodel*, __sFILE64*) (glm.cpp) [98] Point::Point(float*) [37] RayPacket::Reset() [33] ConvertToUnsigned(float) [50] Point::Point(Point const&) [82] RayPacket::GetDepth() [151] __static_initialization_and_destruction_0(int, int) (ThinLensCamera.cpp) [41] Point::Point(float, float, float) [110] RayPacket::RayPacket() [136] __static_initialization_and_destruction_0(int, int) (BatchModeInterface.cpp) [94] Point::Point() [109] RayPacket::~RayPacket() [137] __static_initialization_and_destruction_0(int, int) (OpenGLInterface.cpp) [161] Scene::SetGeometry(Object*) [129] ThinLensCamera::GetScreenWidth() const [138] __static_initialization_and_destruction_0(int, int) (Vector.cpp) [25] Scene::SetGeometry(char*) [130] ThinLensCamera::GetScreenHeight() const [139] __static_initialization_and_destruction_0(int, int) (Group.cpp) [120] Scene::GetNumLights() [6] LambertianMaterial::Shade(RayPacket&, Scene&) const [140] __static_initialization_and_destruction_0(int, int) (InfinitePlane.cpp) [8] Scene::TraceShadowRay(RayPacket&) [92] LambertianMaterial::GetType() const [141] __static_initialization_and_destruction_0(int, int) (Sphere.cpp) [162] Scene::AddLight(Light*) [45] Ray::GetHitPoint() const [135] __static_initialization_and_destruction_0(int, int) (raytracer.cpp) [86] Scene::GetLight(int) [58] Ray::WasIntersection() const [142] __static_initialization_and_destruction_0(int, int) (Triangle.cpp) [127] Scene::GetWidth() [62] BBox::GetMax() const [150] __static_initialization_and_destruction_0(int, int) (Scene.cpp) [2] Scene::TraceRay(RayPacket&) [53] BBox::GetMin() const [46] __static_initialization_and_destruction_0(int, int) (NaiveBVH.cpp) [132] Scene::GetCamera() [48] Point::GetElement(int) const [143] __static_initialization_and_destruction_0(int, int) (ConstantColorMaterial.cpp) [128] Scene::GetHeight() [9] Point::X() const [77] __static_initialization_and_destruction_0(int, int) (RayPacket.cpp) [163] Scene::SetCamera(ThinLensCamera*) [11] Point::Y() const [144] __static_initialization_and_destruction_0(int, int) (LambertianMaterial.cpp) [114] Scene::Scene() [12] Point::Z() const [145] __static_initialization_and_destruction_0(int, int) (RefractiveMaterial.cpp) [121] Object::Object() [28] Point::operator-(Point const&) const [146] __static_initialization_and_destruction_0(int, int) (ReflectiveMaterial.cpp) [72] Random::dRandom() [107] Point::operator*(float) const [147] __static_initialization_and_destruction_0(int, int) (PathtracedLambertianMaterial.cpp) [32] Random::fRandom() [36] Point::operator+(Vector const&) const [148] __static_initialization_and_destruction_0(int, int) (Camera.cpp) [104] Random::sRandom() [108] Point::operator+(Point const&) const [134] __static_initialization_and_destruction_0(int, int) (Light.cpp) [164] Random::Random(unsigned long) [13] Vector::X() const [152] __static_initialization_and_destruction_0(int, int) (Random.cpp) [30] Vector::Normalize() [14] Vector::Y() const [149] __static_initialization_and_destruction_0(int, int) (Ray.cpp) [78] Vector::Vector(Vector const&) [18] Vector::Z() const [133] glmAbs(float) (glm.cpp) [17] Vector::Vector(float, float, float) [19] Vector::Dot(Vector const&) const [97] glmDot(float*, float*) (glm.cpp) [51] Vector::Vector() [16] Vector::Cross(Vector const&) const [153] glmMax(float, float) (glm.cpp) [35] Vector::operator=(Vector const&) [171] Vector::Length() const [67] DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [154] Vector::operator*=(float) [23] Vector::operator*(float) const [1] display() [165] Array1D::Add(Light* const&) [38] Vector::operator+(Vector const&) const [122] glmCross(float*, float*, float*) (glm.cpp) [166] Array1D::Array1D() [56] RGBColor::Red() const [10] ThinLensCamera::GenerateRayPacket(RayPacket&, float, float) [95] Array1D::operator[](int) [66] RGBColor::Blue() const [113] ThinLensCamera::RecomputeCameraParameters() [124] Array1D::Add(Object* const&) [61] RGBColor::Green() const [112] ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [167] Array1D::GetData() [65] RGBColor::operator*(float) const [101] ThinLensCamera::ThinLensCamera(__sFILE64*, Scene*) [168] Array1D::Array1D() [71] Triangle::ComputeNormal(Ray&) const [102] LambertianMaterial::LambertianMaterial(__sFILE64*, Scene*) [169] Array1D::Array1D() [90] std::ostream::flush() [159] LambertianMaterial::LambertianMaterial(RGBColor const&) [170] Material::Material() [105] std::__timepunct::__timepunct(std::__timepunct_cache*, unsigned int) [22] Ray::CopyFromRay(Ray&) [47] NaiveBVH::IntersectBVH(Ray&) [34] operator*(float, Vector const&) [103] Ray::PrintToScreen() [4] NaiveBVH::IntersectBVH(RayPacket&) [106] operator new(unsigned int) [20] Ray::RecomputeParameters() [52] NaiveBVH::IntersectBBox(Ray&, Point const*) [74] cos [31] Ray::NormalizeRayDirection() [5] NaiveBVH::IntersectBBox(RayPacket&, Point const*) [91] glmFacetNormals [49] Ray::CheckHit(float, Primitive*, Vector const&) [27] NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [70] glmReadOBJ [111] Ray::Ray() [29] NaiveBVH::Sort(BBox*, int, int, Object**, int) [99] glmUnitize [60] BBox::Expand(Point const&) [83] NaiveBVH::NaiveBVH() [68] glmVertexNormals [42] BBox::Expand(BBox const&) [115] NaiveBVH::~NaiveBVH() [63] memset [39] BBox::GetPoints() [155] RGBColor::RGBColor(RGBColor const&) [73] sin [76] BBox::BBox() [69] RGBColor::RGBColor(float, float, float) [64] sqrt [96] BBox::~BBox() [126] RGBColor::RGBColor() [40] BBox::operator=(BBox const&) [43] RGBColor::operator*=(float)