/dports/graphics/embree/embree-3.13.2/kernels/geometry/ |
H A D | trianglev_mb_intersector.h | 25 const Vec3vf<M> v0 = madd(time,Vec3vf<M>(tri.dv0),Vec3vf<M>(tri.v0)); in intersect() 26 const Vec3vf<M> v1 = madd(time,Vec3vf<M>(tri.dv1),Vec3vf<M>(tri.v1)); in intersect() 27 const Vec3vf<M> v2 = madd(time,Vec3vf<M>(tri.dv2),Vec3vf<M>(tri.v2)); in intersect() 36 const Vec3vf<M> v0 = madd(time,Vec3vf<M>(tri.dv0),Vec3vf<M>(tri.v0)); in occluded() 37 const Vec3vf<M> v1 = madd(time,Vec3vf<M>(tri.dv1),Vec3vf<M>(tri.v1)); in occluded() 38 const Vec3vf<M> v2 = madd(time,Vec3vf<M>(tri.dv2),Vec3vf<M>(tri.v2)); in occluded() 94 const Vec3vf<M> v0 = madd(time,Vec3vf<M>(tri.dv0),Vec3vf<M>(tri.v0)); in intersect() 95 const Vec3vf<M> v1 = madd(time,Vec3vf<M>(tri.dv1),Vec3vf<M>(tri.v1)); in intersect() 96 const Vec3vf<M> v2 = madd(time,Vec3vf<M>(tri.dv2),Vec3vf<M>(tri.v2)); in intersect() 105 const Vec3vf<M> v0 = madd(time,Vec3vf<M>(tri.dv0),Vec3vf<M>(tri.v0)); in occluded() [all …]
|
H A D | triangle_intersector_moeller.h | 58 Vec3vf<M> vNg; 80 const Vec3vf<M> O = Vec3vf<M>((Vec3fa)ray.org); in intersect() 81 const Vec3vf<M> D = Vec3vf<M>((Vec3fa)ray.dir); in intersect() 82 const Vec3vf<M> C = Vec3vf<M>(tri_v0) - O; in intersect() 146 const Vec3vf<M> e1 = v0-v1; in intersect() 147 const Vec3vf<M> e2 = v2-v0; in intersect() 160 const Vec3vf<M> e1 = v0-v1; in intersect() 161 const Vec3vf<M> e2 = v2-v0; in intersect() 232 Vec3vf<K> vNg = Ng; in operator() 241 const Vec3vf<K> Ng; [all …]
|
H A D | triangle_intersector_pluecker.h | 58 Vec3vf<M> vNg; 80 const Vec3vf<M> O = Vec3vf<M>((Vec3fa)ray.org); in intersect() 81 const Vec3vf<M> D = Vec3vf<M>((Vec3fa)ray.dir); in intersect() 87 const Vec3vf<M> e0 = v2-v0; in intersect() 88 const Vec3vf<M> e1 = v0-v1; in intersect() 89 const Vec3vf<M> e2 = v1-v2; in intersect() 224 Vec3vf<K> vNg = Ng; in operator() 232 const Vec3vf<K> Ng; 246 const Vec3vf<K>& tri_v0, in intersectK() 247 const Vec3vf<K>& tri_v1, in intersectK() [all …]
|
H A D | triangle_intersector_woop.h | 50 Vec3vf<M> vNg; 57 Vec3vf<M> org; 97 const Vec3vf<M> org = Vec3vf<M>(pre.org.x,pre.org.y,pre.org.z); in intersect() 98 const Vec3vf<M> A = Vec3vf<M>(tri_v0[pre.kx],tri_v0[pre.ky],tri_v0[pre.kz]) - org; in intersect() 99 const Vec3vf<M> B = Vec3vf<M>(tri_v1[pre.kx],tri_v1[pre.ky],tri_v1[pre.kz]) - org; in intersect() 100 const Vec3vf<M> C = Vec3vf<M>(tri_v2[pre.kx],tri_v2[pre.ky],tri_v2[pre.kz]) - org; in intersect() 211 const Vec3vf<K> Ng; 312 typedef Vec3vf<M> Vec3vfM; 397 const Vec3vf<M> e1 = v0-v1; 398 const Vec3vf<M> e2 = v2-v0; [all …]
|
H A D | quad_intersector.h | 30 const Vec3vf<N> O = Vec3vf<N>(ray_org); in intersect_quad_backface_culling() 31 const Vec3vf<N> D = Vec3vf<N>(ray_dir); in intersect_quad_backface_culling() 32 const Vec3vf<N> va = quad_v0-O; in intersect_quad_backface_culling() 33 const Vec3vf<N> vb = quad_v1-O; in intersect_quad_backface_culling() 34 const Vec3vf<N> vc = quad_v2-O; in intersect_quad_backface_culling() 35 const Vec3vf<N> vd = quad_v3-O; in intersect_quad_backface_culling() 37 const Vec3vf<N> edb = vb-vd; in intersect_quad_backface_culling() 39 const Vec3vf<N> v0 = select(WW <= 0.0f,va,vc); in intersect_quad_backface_culling() 44 const Vec3vf<N> e0 = v2-v0; in intersect_quad_backface_culling() 45 const Vec3vf<N> e1 = v0-v1; in intersect_quad_backface_culling() [all …]
|
H A D | quad_intersector_pluecker.h | 67 Vec3vf<M> tri_Ng; 74 Vec3vf<M> vNg; 111 const Vec3vf<K> tri_Ng; 125 const Vec3vf<M> O = Vec3vf<M>((Vec3fa)ray.org); in intersect() 126 const Vec3vf<M> D = Vec3vf<M>((Vec3fa)ray.dir); in intersect() 132 const Vec3vf<M> e0 = v2-v0; in intersect() 133 const Vec3vf<M> e1 = v0-v1; in intersect() 175 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in intersect() 184 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in occluded() 378 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, [all …]
|
H A D | disc_intersector.h | 43 Vec3vf<M> vNg; 68 const Vec3vf<M> center = v0.xyz(); in intersect() 71 const Vec3vf<M> c0 = center - ray_org; in intersect() 105 const Vec3vf<M> center = v0.xyz(); in intersect() 113 vfloat<M> t = dot(center - Vec3vf<M>((Vec3fa)ray.org), Vec3vf<M>(normal)) / divisor; in intersect() 119 Vec3vf<M> intersection = Vec3vf<M>((Vec3fa)ray.org) + Vec3vf<M>((Vec3fa)ray.dir) * t; in intersect() 152 const Vec3vf<M> center = v0.xyz(); in intersect() 155 const Vec3vf<M> c0 = center - ray_org; in intersect() 191 const Vec3vf<M> center = v0.xyz(); in intersect() 199 vfloat<M> t = dot(center - Vec3vf<M>(ray_org), Vec3vf<M>(normal)) / divisor; in intersect() [all …]
|
H A D | quad_intersector_moeller.h | 62 Vec3vf<M> tri_Ng; 69 Vec3vf<M> vNg; 106 const Vec3vf<K> tri_Ng; 126 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in intersect() 148 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in occluded() 256 const Vec3vf<M> C = Vec3vf<M>(tri_v0) - O; 257 const Vec3vf<M> R = cross(C,D); 293 const Vec3vf<M> e1 = v0-v1; 294 const Vec3vf<M> e2 = v2-v0; 398 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, [all …]
|
H A D | sphere_intersector.h | 36 Vec3vf<M> vNg; 52 const Vec3vf<M> ray_org(ray.org.x, ray.org.y, ray.org.z); in intersect() 53 const Vec3vf<M> ray_dir(ray.dir.x, ray.dir.y, ray.dir.z); in intersect() 54 const Vec3vf<M> center = v0.xyz(); in intersect() 57 const Vec3vf<M> c0 = center - ray_org; in intersect() 59 const Vec3vf<M> perp = c0 - projC0 * ray_dir; in intersect() 95 const Vec3vf<M> Ng_second = td_back * ray_dir - perp; in intersect() 134 const Vec3vf<M> center = v0.xyz(); in intersect() 137 const Vec3vf<M> c0 = center - ray_org; in intersect() 139 const Vec3vf<M> perp = c0 - projC0 * ray_dir; in intersect() [all …]
|
H A D | cylinder.h | 137 const Vec3vf<N> p0; //!< start location 138 const Vec3vf<N> p1; //!< end position 141 __forceinline CylinderN(const Vec3vf<N>& p0, const Vec3vf<N>& p1, const vfloat<N>& r) in CylinderN() 144 __forceinline CylinderN(const Vec3vf<N>& p0, const Vec3vf<N>& p1, const vfloat<N>& rr, bool) in CylinderN() 155 const Vec3vf<N> P0 = p0, dP = (p1-p0)*rl; in intersect() 156 const Vec3vf<N> O = Vec3vf<N>(org)-P0, dO = dir; in intersect() 185 const Vec3vf<N> Pr = t0*Vec3vf<N>(dir); in intersect() 186 const Vec3vf<N> Pl = madd(u0_o,p1-p0,p0); in intersect() 193 const Vec3vf<N> Pr = t1*Vec3vf<N>(dir); in intersect() 216 vfloat<N> u0_o; Vec3vf<N> Ng0_o; in intersect() [all …]
|
H A D | trianglev_mb.h | 42 __forceinline TriangleMvMB(const Vec3vf<M>& a0, const Vec3vf<M>& a1, in TriangleMvMB() 43 const Vec3vf<M>& b0, const Vec3vf<M>& b1, in TriangleMvMB() 44 const Vec3vf<M>& c0, const Vec3vf<M>& c1, in TriangleMvMB() 70 Vec3vf<M> lower = min(v0,v1,v2); in bounds0() 71 Vec3vf<M> upper = max(v0,v1,v2); in bounds0() 86 const Vec3vf<M> p0 = v0+dv0; in bounds1() 87 const Vec3vf<M> p1 = v1+dv1; in bounds1() 88 const Vec3vf<M> p2 = v2+dv2; in bounds1() 89 Vec3vf<M> lower = min(p0,p1,p2); in bounds1() 90 Vec3vf<M> upper = max(p0,p1,p2); in bounds1() [all …]
|
H A D | roundline_intersector.h | 93 Vec3vf<M> vNg; 137 const Vec3vf<M> p0p = p - p0; in isClippedByPlane() 201 const Vec3vf<M> p0p = p - p0; in isInsideCappedCone() 214 Vec3vf<M> p0; 215 Vec3vf<M> p1; 216 Vec3vf<M> dP; 359 const Vec3vf<M> O1 = org - p1; in intersectEndSphere() 455 const Vec3vf<M> h = O + t*dO; in Ng_cone() 505 Vec3vf<M> org; 506 Vec3vf<M> O; [all …]
|
H A D | plane.h | 37 const Vec3vf<M> P; //!< plane origin 38 const Vec3vf<M> N; //!< plane normal 40 __forceinline HalfPlaneN(const Vec3vf<M>& P, const Vec3vf<M>& N) in HalfPlaneN() 45 Vec3vf<M> O = Vec3vf<M>((Vec3fa)ray_org) - P; in intersect() 46 Vec3vf<M> D = Vec3vf<M>((Vec3fa)ray_dir); in intersect()
|
H A D | quadi_intersector.h | 25 Vec3vf<M> v0,v1,v2,v3; quad.gather(v0,v1,v2,v3,context->scene); in intersect() 33 Vec3vf<M> v0,v1,v2,v3; quad.gather(v0,v1,v2,v3,context->scene); in occluded() 58 const Vec3vf<K> p0 = quad.template getVertex<0>(i,scene); in intersect() 59 const Vec3vf<K> p1 = quad.template getVertex<1>(i,scene); in intersect() 60 const Vec3vf<K> p2 = quad.template getVertex<2>(i,scene); in intersect() 61 const Vec3vf<K> p3 = quad.template getVertex<3>(i,scene); in intersect() 75 const Vec3vf<K> p0 = quad.template getVertex<0>(i,scene); in occluded() 76 const Vec3vf<K> p1 = quad.template getVertex<1>(i,scene); in occluded() 77 const Vec3vf<K> p2 = quad.template getVertex<2>(i,scene); in occluded() 78 const Vec3vf<K> p3 = quad.template getVertex<3>(i,scene); in occluded() [all …]
|
H A D | trianglei_intersector.h | 24 Vec3vf<M> v0, v1, v2; tri.gather(v0,v1,v2,context->scene); in intersect() 31 Vec3vf<M> v0, v1, v2; tri.gather(v0,v1,v2,context->scene); in occluded() 55 const Vec3vf<K> v0 = tri.template getVertex<0>(i,scene); in intersect() 56 const Vec3vf<K> v1 = tri.template getVertex<1>(i,scene); in intersect() 57 const Vec3vf<K> v2 = tri.template getVertex<2>(i,scene); in intersect() 71 const Vec3vf<K> v0 = tri.template getVertex<0>(i,scene); in occluded() 72 const Vec3vf<K> v1 = tri.template getVertex<1>(i,scene); in occluded() 73 const Vec3vf<K> v2 = tri.template getVertex<2>(i,scene); in occluded() 83 Vec3vf<M> v0, v1, v2; tri.gather(v0,v1,v2,context->scene); in intersect() 90 Vec3vf<M> v0, v1, v2; tri.gather(v0,v1,v2,context->scene); in occluded() [all …]
|
H A D | subgrid_intersector_moeller.h | 43 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in intersect() 69 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in occluded() 184 const Vec3vf<K>& v0, 217 const Vec3vf<K>& v0, 218 const Vec3vf<K>& v1, 219 const Vec3vf<K>& v2, 220 const Vec3vf<K>& v3, 258 const Vec3vf<M> e1 = v0-v1; 259 const Vec3vf<M> e2 = v2-v0; 274 …const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, const GridMesh… [all …]
|
H A D | quadv_intersector.h | 55 const Vec3vf<K> p0 = broadcast<vfloat<K>>(quad.v0,i); in intersect() 56 const Vec3vf<K> p1 = broadcast<vfloat<K>>(quad.v1,i); in intersect() 57 const Vec3vf<K> p2 = broadcast<vfloat<K>>(quad.v2,i); in intersect() 58 const Vec3vf<K> p3 = broadcast<vfloat<K>>(quad.v3,i); in intersect() 72 const Vec3vf<K> p0 = broadcast<vfloat<K>>(quad.v0,i); in occluded() 73 const Vec3vf<K> p1 = broadcast<vfloat<K>>(quad.v1,i); in occluded() 74 const Vec3vf<K> p2 = broadcast<vfloat<K>>(quad.v2,i); in occluded() 75 const Vec3vf<K> p3 = broadcast<vfloat<K>>(quad.v3,i); in occluded() 138 const Vec3vf<K> p0 = broadcast<vfloat<K>>(quad.v0,i); in intersect() 139 const Vec3vf<K> p1 = broadcast<vfloat<K>>(quad.v1,i); in intersect() [all …]
|
H A D | grid_soa_intersector_packet.h | 101 const Vec3vf<K> p00(grid_x[ofs00],grid_y[ofs00],grid_z[ofs00]); in intersect() 102 const Vec3vf<K> p01(grid_x[ofs01],grid_y[ofs01],grid_z[ofs01]); in intersect() 103 const Vec3vf<K> p10(grid_x[ofs10],grid_y[ofs10],grid_z[ofs10]); in intersect() 270 const Vec3vf<K> p00 = lerp(a00,b00,ftime); in intersect() 271 const Vec3vf<K> p01 = lerp(a01,b01,ftime); in intersect() 272 const Vec3vf<K> p10 = lerp(a10,b10,ftime); in intersect() 273 const Vec3vf<K> p11 = lerp(a11,b11,ftime); in intersect() 333 const Vec3vf<K> p00 = lerp(a00,b00,ftime); in occluded() 334 const Vec3vf<K> p01 = lerp(a01,b01,ftime); in occluded() 335 const Vec3vf<K> p10 = lerp(a10,b10,ftime); in occluded() [all …]
|
H A D | subgrid_intersector_pluecker.h | 40 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in intersect() 67 … const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, in occluded() 179 const Vec3vf<K>& v0, 180 const Vec3vf<K>& v1, 181 const Vec3vf<K>& v2, 212 const Vec3vf<K>& v0, 213 const Vec3vf<K>& v1, 214 const Vec3vf<K>& v2, 215 const Vec3vf<K>& v3, 259 …const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M>& v3, const GridMesh… [all …]
|
H A D | coneline_intersector.h | 17 … const Vec3vf<M>& ray_org_in, const Vec3vf<M>& ray_dir, in intersectCone() 28 const Vec3vf<M> center = vfloat<M>(0.5f)*(v0.xyz()+v1.xyz()); in intersectCone() 30 const Vec3vf<M> ray_org = ray_org_in + dt*ray_dir; in intersectCone() 32 const Vec3vf<M> dP = v1.xyz() - v0.xyz(); in intersectCone() 33 const Vec3vf<M> p0 = ray_org - v0.xyz(); in intersectCone() 34 const Vec3vf<M> p1 = ray_org - v1.xyz(); in intersectCone() 96 const Vec3vf<M> dP2drr0dP = dPdP*dr*v0.w*dP; in intersectCone() 97 const Vec3vf<M> dPhy = dP*hy; in intersectCone() 145 Vec3vf<M> vNg; 169 const Vec3vf<M> ray_org(ray.org.x, ray.org.y, ray.org.z); in intersect() [all …]
|
H A D | triangle.h | 40 …__forceinline TriangleM(const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const vuint… in TriangleM() 65 Vec3vf<M> p0 = v0; in bounds() 66 Vec3vf<M> p1 = v0-e1; in bounds() 67 Vec3vf<M> p2 = v0+e2; in bounds() 68 Vec3vf<M> lower = min(p0,p1,p2); in bounds() 69 Vec3vf<M> upper = max(p0,p1,p2); in bounds() 101 Vec3vf<M> v0 = zero, v1 = zero, v2 = zero; in fill() 127 Vec3vf<M> v0 = zero, v1 = zero, v2 = zero; in update() 150 Vec3vf<M> v0; // base vertex of the triangles 151 Vec3vf<M> e1; // 1st edge of the triangles (v0-v1) [all …]
|
H A D | quadv.h | 38 …__forceinline QuadMv(const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const Vec3vf<M… in QuadMv() 63 Vec3vf<M> lower = min(v0,v1,v2,v3); in bounds() 64 Vec3vf<M> upper = max(v0,v1,v2,v3); in bounds() 99 Vec3vf<M> v0 = zero, v1 = zero, v2 = zero, v3 = zero; in fill() 127 Vec3vf<M> v0 = zero, v1 = zero, v2 = zero; in update() 152 Vec3vf<M> v0; // 1st vertex of the quads 153 Vec3vf<M> v1; // 2nd vertex of the quads 154 Vec3vf<M> v2; // 3rd vertex of the quads 155 Vec3vf<M> v3; // 4rd vertex of the quads
|
H A D | line_intersector.h | 18 …ineIntersectorHitM(const vfloat<M>& u, const vfloat<M>& v, const vfloat<M>& t, const Vec3vf<M>& Ng) in LineIntersectorHitM() 29 __forceinline Vec3vf<M> Ng() const { return vNg; } in Ng() 35 Vec3vf<M> vNg; 55 LinearSpace3<Vec3vf<M>> ray_space = pre.ray_space; in intersect() 57 const Vec3vf<M> ray_org ((Vec3fa)ray.org); in intersect() 81 const Vec3vf<M> T = v1.xyz()-v0.xyz(); in intersect() 108 LinearSpace3<Vec3vf<M>> ray_space = pre.ray_space[k]; in intersect() 109 const Vec3vf<M> ray_org(ray.org.x[k],ray.org.y[k],ray.org.z[k]); in intersect() 110 const Vec3vf<M> ray_dir(ray.dir.x[k],ray.dir.y[k],ray.dir.z[k]); in intersect() 135 const Vec3vf<M> T = v1.xyz()-v0.xyz(); in intersect()
|
H A D | trianglev_intersector.h | 85 const Vec3vf<K> v0 = broadcast<vfloat<K>>(tri.v0,i); in intersect() 86 const Vec3vf<K> v1 = broadcast<vfloat<K>>(tri.v1,i); in intersect() 87 const Vec3vf<K> v2 = broadcast<vfloat<K>>(tri.v2,i); in intersect() 101 const Vec3vf<K> v0 = broadcast<vfloat<K>>(tri.v0,i); in occluded() 102 const Vec3vf<K> v1 = broadcast<vfloat<K>>(tri.v1,i); in occluded() 103 const Vec3vf<K> v2 = broadcast<vfloat<K>>(tri.v2,i); in occluded() 166 const Vec3vf<K> v0 = broadcast<vfloat<K>>(tri.v0,i); in intersect() 167 const Vec3vf<K> v1 = broadcast<vfloat<K>>(tri.v1,i); in intersect() 168 const Vec3vf<K> v2 = broadcast<vfloat<K>>(tri.v2,i); in intersect() 182 const Vec3vf<K> v0 = broadcast<vfloat<K>>(tri.v0,i); in occluded() [all …]
|
H A D | trianglev.h | 38 …__forceinline TriangleMv(const Vec3vf<M>& v0, const Vec3vf<M>& v1, const Vec3vf<M>& v2, const vuin… in TriangleMv() 63 Vec3vf<M> lower = min(v0,v1,v2); in bounds() 64 Vec3vf<M> upper = max(v0,v1,v2); in bounds() 96 Vec3vf<M> v0 = zero, v1 = zero, v2 = zero; in fill() 122 Vec3vf<M> v0 = zero, v1 = zero, v2 = zero; in update() 145 Vec3vf<M> v0; // 1st vertex of the triangles 146 Vec3vf<M> v1; // 2nd vertex of the triangles 147 Vec3vf<M> v2; // 3rd vertex of the triangles
|