Skip to content

Commit

Permalink
Merge topic 'ospray-improvements'
Browse files Browse the repository at this point in the history
d72d32f adjust for ospray 0.10's new specular
a34f88c allow use of ospray from its build or install tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1499
  • Loading branch information
David E DeMarle authored and kwrobot committed May 23, 2016
2 parents b7696ef + d72d32f commit d887b31
Show file tree
Hide file tree
Showing 7 changed files with 155 additions and 175 deletions.
132 changes: 51 additions & 81 deletions CMake/FindOSPRay.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,84 +24,54 @@
# OSPRAY_INCLUDE_DIRS
# OSPRAY_LIBRARIES

# guess that OSPRay is installed in a peer directory (if in dev) or in a peer to the ParaView source
FIND_PATH(OSPRAY_DIR ospray
HINTS ${PROJECT_SOURCE_DIR}/../OSPRay ${PROJECT_SOURCE_DIR}/../../../OSPRay
DOC "OSPRay base directory"
)
IF(NOT OSPRAY_DIR)
MESSAGE("Could not find OSPRay base directory. Please set OSPRAY_DIR to the root of your local OSPRay git repository.")
ENDIF(NOT OSPRAY_DIR)

FIND_PATH(OSPRAY_CMAKE_DIR ospray.cmake
HINTS ${PROJECT_SOURCE_DIR}/../OSPRay/cmake ${PROJECT_SOURCE_DIR}/../../../OSPRay/cmake ${OSPRAY_DIR}/cmake
DOC "OSPRay cmake directory"
)
IF(NOT OSPRAY_CMAKE_DIR)
MESSAGE("Could not find OSPRay cmake directory. Please set OSPRAY_CMAKE_DIR to the cmake directory of your local OSPRay git repository, usually <root>/cmake.")
ENDIF(NOT OSPRAY_CMAKE_DIR)

FIND_PATH(OSPRAY_BUILD_DIR ospModelViewer
HINTS ${OSPRAY_DIR}/build ${PROJECT_SOURCE_DIR}/../OSPRay/build ${PROJECT_SOURCE_DIR}/../OSPRay ${PROJECT_SOURCE_DIR}/../../../OSPRay/build ${PROJECT_SOURCE_DIR}/../../../OSPRay
DOC "OSPRay build directory"
)
IF(NOT OSPRAY_BUILD_DIR)
MESSAGE("Could not find OSPRay build directory. Please set OSPRAY_BUILD_DIR to the directory where OSPRay was built.")
ENDIF(NOT OSPRAY_BUILD_DIR)

if (OSPRAY_BUILD_DIR)
LOAD_CACHE(${OSPRAY_BUILD_DIR} READ_WITH_PREFIX OSP_
OSPRAY_BUILD_MIC_SUPPORT
OSPRAY_BUILD_MPI_DEVICE
OSPRAY_COMPILER
OSPRAY_XEON_TARGET
)

SET(OSPRAY_INCLUDE_DIRS
${OSPRAY_BUILD_DIR}
${OSPRAY_BUILD_DIR}/include
${OSPRAY_DIR}
${OSPRAY_DIR}/ospray
${OSPRAY_DIR}/ospray/embree/common #0.8
${OSPRAY_DIR}/ospray/embree #0.8
${OSPRAY_DIR}/ospray/embree-v2.7.1/common #0.9
${OSPRAY_DIR}/ospray/embree-v2.7.1 #0.9
${OSPRAY_DIR}/ospray/include
)

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OSPRAY_CMAKE_DIR} ${OSPRAY_DIR})
# which compiler was used to build OSPRay
SET(OSPRAY_CC ${OSP_OSPRAY_COMPILER} CACHE STRING "OSPRay Compiler (ICC, GCC, CLANG)")
# whehter to build in MIC/xeon phi support
SET(OSPRAY_MIC ${OSP_OSPRAY_BUILD_MIC_SUPPORT} CACHE BOOL "Was OSPRay buit with Xeon Phi Support?")
# whehter to build in MIC/xeon phi support
SET(OSPRAY_MPI ${OSP_OSPRAY_BUILD_MPI_DEVICE} CACHE BOOL "Was OSPRay built with MPI Remote/Distributed rendering support?")
# the arch we're targeting for the non-MIC/non-xeon phi part of ospray
SET(OSPRAY_XEON_TARGET ${OSP_OSPRAY_XEON_TARGET} CACHE STRING "OSPRay target ISA on host (SSE,AVX,AVX2)")

ADD_DEFINITIONS(${OSPRAY_EMBREE_CXX_FLAGS})
endif(OSPRAY_BUILD_DIR)

# MESSAGE("ospray_dir ${OSPRAY_DIR}")
# SET(OSPRAY_DIR2 ${OSPRAY_DIR})
# INCLUDE(${OSPRAY_DIR}/cmake/ospray.cmake)
# SET(OSPRAY_DIR ${OSPRAY_DIR2})
# MESSAGE("ospray_dir ${OSPRAY_DIR}")

if(OSPRAY_CMAKE_DIR)
INCLUDE(${OSPRAY_CMAKE_DIR}/ospray.cmake)
INCLUDE(${OSPRAY_CMAKE_DIR}/mpi.cmake)
endif(OSPRAY_CMAKE_DIR)

SET(LIB_OSPRAY_EMBREE LIB_OSPRAY_EMBREE-NOTFOUND)
SET(LIB_OSPRAY LIB_OSPRAY-NOTFOUND)
FIND_LIBRARY(LIB_OSPRAY_EMBREE NAMES ospray_embree embree PATHS ${OSPRAY_BUILD_DIR})
FIND_LIBRARY(LIB_OSPRAY ospray ${OSPRAY_BUILD_DIR})
IF (OSPRAY_MIC)
# Xeon Phi specific build ops here
ENDIF(OSPRAY_MIC)

SET(OSPRAY_LIBRARIES
${LIB_OSPRAY_EMBREE}
${LIB_OSPRAY}
)
set(OSPRAY_INSTALL_DIR "" CACHE PATH "install location of ospray")
mark_as_advanced(OSPRAY_INSTALL_DIR)
set(OSPRAY_BUILD_DIR "" CACHE PATH "build location of ospray")
mark_as_advanced(OSPRAY_BUILD_DIR)
if (OSPRAY_INSTALL_DIR AND OSPRAY_BUILD_DIR)
message("Ignoring the ospray build location in favor of the intall location.")
endif()

if (OSPRAY_INSTALL_DIR)

find_package(ospray CONFIG REQUIRED HINTS ${OSPRAY_INSTALL_DIR})

else()

if (OSPRAY_BUILD_DIR)
#find corresponding source directory
load_cache(${OSPRAY_BUILD_DIR} READ_WITH_PREFIX OSP_
CMAKE_HOME_DIRECTORY
)
set(OSPRAY_SOURCE_DIR ${OSP_CMAKE_HOME_DIRECTORY})

set(OSPRAY_INCLUDE_DIRS
${OSPRAY_BUILD_DIR}
${OSPRAY_BUILD_DIR}/include
${OSPRAY_SOURCE_DIR}
${OSPRAY_SOURCE_DIR}/ospray/include
)

set(LIB_OSPRAY_EMBREE LIB_OSPRAY_EMBREE-NOTFOUND)
find_library(LIB_OSPRAY_EMBREE NAMES ospray_embree embree
PATHS ${OSPRAY_BUILD_DIR} NO_DEFAULT_PATH)
mark_as_advanced(LIB_OSPRAY_EMBREE)

set(LIB_OSPRAY_COMMON LIB_OSPRAY_COMMON-NOTFOUND)
find_library(LIB_OSPRAY_COMMON ospray_common
PATHS ${OSPRAY_BUILD_DIR} NO_DEFAULT_PATH)
mark_as_advanced(LIB_OSPRAY_COMMON)

set(LIB_OSPRAY LIB_OSPRAY-NOTFOUND)
find_library(LIB_OSPRAY ospray PATHS ${OSPRAY_BUILD_DIR} NO_DEFAULT_PATH)
mark_as_advanced(LIB_OSPRAY)

set(OSPRAY_LIBRARIES ${LIB_OSPRAY_EMBREE} ${LIB_OSPRAY_COMMON} ${LIB_OSPRAY})

else()

message("Supply OSPRAY_INSTALL_DIR or OSPRAY_BUILD_DIR to find OSPRay")

endif()

endif()
2 changes: 1 addition & 1 deletion Rendering/OSPRay/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ set(Module_SRCS

vtk_module_library(vtkRenderingOSPRay ${Module_SRCS})

target_link_libraries(${vtk-module} LINK_PRIVATE ${OSPRAY_LIBRARIES} ${QT_LIBRARIES})
target_link_libraries(${vtk-module} LINK_PUBLIC ${OSPRAY_LIBRARIES})

# OSPRay_Core uses MMTime which is in it's own special library.
if(WIN32)
Expand Down
1 change: 0 additions & 1 deletion Rendering/OSPRay/vtkOSPRayActorNode.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#include "vtkViewNodeCollection.h"

#include "ospray/ospray.h"
#include "ospray/common/OSPCommon.h"

vtkInformationKeyMacro(vtkOSPRayActorNode, ENABLE_SCALING, Integer);
vtkInformationKeyMacro(vtkOSPRayActorNode, SCALE_ARRAY_NAME, String);
Expand Down
1 change: 0 additions & 1 deletion Rendering/OSPRay/vtkOSPRayCompositePolyDataMapper2Node.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
#include "vtkMultiPieceDataSet.h"

#include "ospray/ospray.h"
#include "ospray/common/OSPCommon.h"
#include "ospray/version.h"

#include <map>
Expand Down
12 changes: 10 additions & 2 deletions Rendering/OSPRay/vtkOSPRayLightNode.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,11 @@ void vtkOSPRayLightNode::Render(bool prepass)
color[0],
color[1],
color[2]);
float fI = static_cast<float>(vtkOSPRayLightNode::LightScale*light->GetIntensity()*0.2);//TODO: why so bright?
float fI = static_cast<float>
(vtkOSPRayLightNode::LightScale*
light->GetIntensity()*
vtkMath::Pi()* //since OSP 0.10.0
0.2);//TODO: why so bright?
ospSet1f(ospLight, "intensity", fI);
ospSet3f(ospLight, "position",
light->GetPosition()[0],
Expand All @@ -104,7 +108,11 @@ void vtkOSPRayLightNode::Render(bool prepass)
color[0],
color[1],
color[2]);
ospSet1f(ospLight, "intensity", vtkOSPRayLightNode::LightScale*light->GetIntensity());
float fI = static_cast<float>
(vtkOSPRayLightNode::LightScale*
light->GetIntensity()*
vtkMath::Pi()); //since OSP 0.10.0
ospSet1f(ospLight, "intensity", fI);
vtkMath::Normalize(direction);
ospSet3f(ospLight, "direction",
-direction[0],-direction[1],-direction[2]);
Expand Down
Loading

0 comments on commit d887b31

Please sign in to comment.