Intel open-source light tracing software package embree.
Http://software.intel.com/en-us/articles/embree-photo-realistic-ray-tracing-kernels/
Http://software.intel.com/en-us/articles/embree-highly-optimized-visibility-algorithms-for-monte-carlo-ray-tracing/
Piaoger downloads the source code to build one, but found a problem.
The following is a solution:
Bytes --------------------------------------------------------------------------------------
D: \ embree-1.0beta \ embree-1.0beta \ common \ sys \ platform. h
// # If defined (_ msc_ver )&&! Defined (_ sse4_2 __)
// # DEFINE _ sse4_2 __//! Activates sse4.2 support
// # Endif
# Pragma message ("using workaround to avoid crashing embree by piaoger ")
# If defined (_ msc_ver )&&! Defined (_ sse4_2 __)
// # DEFINE _ sse4_2 __//! Activates sse4.2 support
# Endif
//
D: \ embree-1.0beta \ embree-1.0beta \ common \ SIMD \ smmintrin_emu.h
# Ifndef _ gnuc __
# Pragma message ("--- intel remark: sse4 intrinsics are emulated With sse3 ---")
# Endif
# Pragma message ("using workaround to avoid crashing embree by piaoger ")
// Begin workaround
# DEFINE _ mm_blendv_ps _ emu_mm_blendv_ps
# DEFINE _ mm_blend_ps _ emu_mm_blend_ps
# DEFINE _ mm_blendv_epi8 _ emu_mm_blendv_epi8
# DEFINE _ mm_mullo_epi32 _ emu_mm_mullo_epi32
# DEFINE _ mm_min_epi32 _ emu_mm_min_epi32
# DEFINE _ mm_max_epi32 _ emu_mm_max_epi32
# DEFINE _ mm_extract_epi32 _ emu_mm_extract_epi32
# DEFINE _ mm_insert_epi32 _ emu_mm_insert_epi32
# DEFINE _ mm_extract_ps _ emu_mm_extract_ps
# DEFINE _ mm_insert_ps _ emu_mm_insert_ps
# DEFINE _ mm_round_ps _ emu_mm_round_ps
# DEFINE _ mm_insert_epi64 _ emu_mm_insert_epi64
# DEFINE _ mm_extract_epi64 _ emu_mm_extract_epi64
// End workaround
Bytes ---------------------------------------------------------------------------------------
Updates:
Introducing embree on drdobbs:
Http://drdobbs.com/go-parallel/blogs/tools/231001621