Implicit surface rendering via ray tracing
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

61 lines
1.9 KiB

cmake_minimum_required(VERSION 3.15)
project(implicit_surface_ray_tracing LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
add_executable(${PROJECT_NAME})
include(cmake/func.cmake)
if(NOT BASE_DIRECTORY)
set(BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
endif()
if(EXISTS ${BASE_DIRECTORY}/nvpro_core/cmake/setup.cmake)
include(3rdparty/nvpro_core/cmake/setup.cmake)
include(3rdparty/nvpro_core/cmake/utilities.cmake)
endif()
_add_package_VulkanSDK()
_add_package_ImGUI()
_add_nvpro_core_lib()
_add_project_definitions(${PROJECT_NAME})
# compile all GLSL shader to Spirv
set(GLSL_COMPILE_FLAGS)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
list(APPEND GLSL_COMPILE_FLAGS -DDEBUG_MODE)
endif()
compile_glsl_directory_by_shaderc(
SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/shader"
DST "${CMAKE_CURRENT_SOURCE_DIR}/src/autogen"
VULKAN_TARGET "vulkan1.3"
DEPENDENCY ${VULKAN_BUILD_DEPENDENCIES}
FLAGS ${GLSL_COMPILE_FLAGS}
)
file(GLOB SOURCE_FILES src/*.cpp src/*.hpp)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
source_group("shader files" FILES ${GLSL_SOURCES})
source_group("source files" FILES ${SOURCE_FILES})
target_sources(${PROJECT_NAME} PUBLIC ${SOURCE_FILES})
target_sources(${PROJECT_NAME} PUBLIC ${COMMON_SOURCE_FILES})
target_sources(${PROJECT_NAME} PUBLIC ${PACKAGE_SOURCE_FILES})
target_sources(${PROJECT_NAME} PUBLIC ${GLSL_SOURCES} ${GLSL_HEADERS})
target_link_libraries(${PROJECT_NAME} ${PLATFORM_LIBRARIES} nvpro_core)
foreach(DEBUGLIB ${LIBRARIES_DEBUG})
target_link_libraries(${PROJECT_NAME} debug ${DEBUGLIB})
endforeach(DEBUGLIB)
foreach(RELEASELIB ${LIBRARIES_OPTIMIZED})
target_link_libraries(${PROJECT_NAME} optimized ${RELEASELIB})
endforeach(RELEASELIB)
_finalize_target(${PROJECT_NAME})
install(FILES ${SPV_OUTPUT} CONFIGURATIONS Debug DESTINATION bin_${ARCH}_Debug/shaders)
project(Sphere_Tracing_CPU_Test LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
add_executable(${PROJECT_NAME} test/sphereTracing.cpp)