Changeset 2105 for GTP/trunk/Lib/Vis/Preprocessing/src/IntelRayCaster.cpp
- Timestamp:
- 02/08/07 15:46:23 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/IntelRayCaster.cpp
r2077 r2105 252 252 253 253 254 255 256 void 257 IntelRayCaster::CastSimpleForwardRays( 258 SimpleRayContainer &rays, 259 const AxisAlignedBox3 &sbox 260 ) 261 { 262 int hit_triangles[16]; 263 float dist[16]; 264 Vector3 normals[16]; 265 Vector3 min = sbox.Min(); 266 Vector3 max = sbox.Max(); 267 268 int packets = rays.size() / 16; 269 270 int i, j, k = 0; 271 Vector3 dir; 272 273 for (i=0; i < packets; i++) { 274 for (j=0; j < 16; j++, k++) 275 mlrtaStoreRayAS16(&rays[k].mOrigin.x, 276 &rays[k].mDirection.x, 277 j); 278 279 mlrtaTraverseGroupAS16(&min.x, 280 &max.x, 281 hit_triangles, 282 dist); 283 284 } 285 286 287 for (; k < rays.size(); k++) { 288 double normal[3]; 289 hit_triangles[0] = mlrtaIntersectAS( 290 &rays[k].mOrigin.x, 291 &rays[k].mDirection.x, 292 normal, 293 dist[0]); 294 } 295 296 } 297 298 254 299 void 255 300 IntelRayCaster::CastRays( … … 263 308 int buckets = rays.size()/16; 264 309 int offset = 0; 310 311 #if 0 312 int time = GetTime(); 313 CastSimpleForwardRays(rays, sbox); 314 cout<<1e-3*2*rays.size()/TimeDiff(time, GetTime())<<" Mrays/sec"<<endl; 315 #endif 265 316 266 317 for (int i=0; i < buckets; i++, offset+=16) {
Note: See TracChangeset
for help on using the changeset viewer.