ha.dist = 8.0f;
hb.dist = 8.0f;
- int resa = ray_world( world, sa, down, &ha ),
- resb = ray_world( world, sb, down, &hb );
+ int resa = ray_world( world, sa, down, &ha, k_material_flag_ghosts ),
+ resb = ray_world( world, sb, down, &hb, k_material_flag_ghosts );
if( pcbuf && resa ){
world_routes_pointcloud_spot( world, pcbuf, ha.pos,
u32 *tri = &world->scene_geo.arrindices[ idx*3 ];
v3f vs[3];
+ u16 mask = k_material_flag_preview_visibile;
+ if( !(world->scene_geo.arrvertices[tri[0]].flags & mask) )
+ continue;
+
for( u32 i=0; i<3; i++ ){
v3_copy( world->scene_geo.arrvertices[tri[i]].co, vs[i] );
}
f32 t;
if( ray_tri( vs, ro, dir, &t ) ){
v3_muladds( ro, dir, t, hit );
- struct world_surface *m1 =
- world_tri_index_surface( world, tri[0] );
-
- if( !(m1->info.flags & k_material_flag_preview_visibile) )
- continue;
if( world->water.enabled )
if( hit[1] < world->water.height )
int l = rb_sphere__scene( particle->obj.rb.to_world,
&particle->obj.inf.sphere,
- NULL, &world->rb_geo.inf.scene, buf );
+ NULL, &world->rb_geo.inf.scene, buf,
+ k_material_flag_ghosts );
for( int j=0; j<l; j++ ){
buf[j].rba = &particle->obj.rb;