forked from CIS565-Fall-2020/Project4-CUDA-Denoiser
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit bd31a44
Showing
301 changed files
with
97,140 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>cis565_path_tracer</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> | ||
<triggers>clean,full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> | ||
<triggers>full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.cdt.core.cnature</nature> | ||
<nature>org.eclipse.cdt.core.ccnature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> | ||
</natures> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
cmake_minimum_required(VERSION 3.0) | ||
|
||
project(cis565_path_tracer) | ||
|
||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) | ||
|
||
# Set up include and lib paths | ||
set(EXTERNAL "external") | ||
include_directories("${EXTERNAL}") | ||
include_directories("${EXTERNAL}/include") | ||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | ||
set(EXTERNAL_LIB_PATH "${EXTERNAL}/lib/osx") | ||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") | ||
set(EXTERNAL_LIB_PATH "${EXTERNAL}/lib/linux" "/usr/lib64") | ||
elseif(WIN32) | ||
set(EXTERNAL_LIB_PATH "${EXTERNAL}/lib/win") | ||
endif() | ||
link_directories(${EXTERNAL_LIB_PATH}) | ||
list(APPEND CMAKE_LIBRARY_PATH "${EXTERNAL_LIB_PATH}") | ||
|
||
|
||
# Find up and set up core dependency libs | ||
|
||
set(GLFW_INCLUDE_DIR "${EXTERNAL}/include") | ||
set(GLFW_LIBRARY_DIR "${CMAKE_LIBRARY_PATH}") | ||
find_library(GLFW_LIBRARY "glfw3" HINTS "${GLFW_LIBRARY_DIR}") | ||
|
||
set(GLEW_INCLUDE_DIR "${EXTERNAL}/include") | ||
set(GLEW_LIBRARY_DIR "${CMAKE_LIBRARY_PATH}") | ||
add_definitions(-DGLEW_STATIC) | ||
find_package(GLEW) | ||
|
||
find_package(OpenGL) | ||
|
||
set(CORELIBS | ||
"${GLFW_LIBRARY}" | ||
"${OPENGL_LIBRARY}" | ||
"${GLEW_LIBRARY}" | ||
) | ||
|
||
# Enable C++11 for host code | ||
set(CMAKE_CXX_STANDARD 11) | ||
|
||
# Enable CUDA debug info in debug mode builds | ||
list(APPEND CUDA_NVCC_FLAGS_DEBUG -G -g) | ||
|
||
# OSX-specific hacks/fixes | ||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | ||
list(APPEND CORELIBS "-framework IOKit") | ||
list(APPEND CORELIBS "-framework Cocoa") | ||
list(APPEND CORELIBS "-framework CoreVideo") | ||
endif() | ||
|
||
# Linux-specific hacks/fixes | ||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") | ||
list(APPEND CMAKE_EXE_LINKER_FLAGS "-lX11 -lXxf86vm -lXrandr -lXi") | ||
endif() | ||
|
||
# Crucial magic for CUDA linking | ||
find_package(Threads REQUIRED) | ||
find_package(CUDA REQUIRED) | ||
|
||
set(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON) | ||
set(CUDA_SEPARABLE_COMPILATION ON) | ||
|
||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | ||
set(CUDA_PROPAGATE_HOST_FLAGS OFF) | ||
endif() | ||
|
||
add_subdirectory(stream_compaction) | ||
add_subdirectory(src) | ||
|
||
cuda_add_executable(${CMAKE_PROJECT_NAME} | ||
"src/main.h" | ||
"src/main.cpp" | ||
) | ||
|
||
target_link_libraries(${CMAKE_PROJECT_NAME} | ||
src | ||
stream_compaction | ||
${CORELIBS} | ||
) | ||
|
||
add_custom_command( | ||
TARGET ${CMAKE_PROJECT_NAME} | ||
POST_BUILD | ||
COMMAND ${CMAKE_COMMAND} -E copy_directory | ||
${CMAKE_SOURCE_DIR}/shaders | ||
${CMAKE_BINARY_DIR}/shaders | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
CMAKE_ALT1 := /usr/local/bin/cmake | ||
CMAKE_ALT2 := /Applications/CMake.app/Contents/bin/cmake | ||
CMAKE := $(shell \ | ||
which cmake 2>/dev/null || \ | ||
([ -e ${CMAKE_ALT1} ] && echo "${CMAKE_ALT1}") || \ | ||
([ -e ${CMAKE_ALT2} ] && echo "${CMAKE_ALT2}") \ | ||
) | ||
|
||
all: Release | ||
|
||
|
||
Debug: build | ||
(cd build && ${CMAKE} -DCMAKE_BUILD_TYPE=$@ .. && make) | ||
|
||
MinSizeRel: build | ||
(cd build && ${CMAKE} -DCMAKE_BUILD_TYPE=$@ .. && make) | ||
|
||
Release: build | ||
(cd build && ${CMAKE} -DCMAKE_BUILD_TYPE=$@ .. && make) | ||
|
||
RelWithDebugInfo: build | ||
(cd build && ${CMAKE} -DCMAKE_BUILD_TYPE=$@ .. && make) | ||
|
||
|
||
run: | ||
build/cis565_path_tracer scenes/sphere.txt | ||
|
||
build: | ||
mkdir -p build | ||
|
||
clean: | ||
((cd build && make clean) 2>&- || true) | ||
|
||
.PHONY: all Debug MinSizeRel Release RelWithDebugInfo clean |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
CUDA Path Tracer | ||
================ | ||
|
||
**University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 3** | ||
|
||
* (TODO) YOUR NAME HERE | ||
* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) | ||
|
||
### (TODO: Your README) | ||
|
||
Include analysis, etc. (Remember, this is public, so don't put | ||
anything here that you don't want to share with the world.) | ||
|
||
Instructions (delete me) | ||
======================== | ||
|
||
This is due **INSTRUCTOR TODO** evening at midnight. | ||
|
||
**Summary:** | ||
|
||
|
||
### Controls | ||
|
||
* W/A/S/D and R/F fly. Arrow keys rotate. | ||
|
||
### INSTRUCTOR TODO | ||
|
||
* Look for important parts of the code in the following files. You can search | ||
for `CHECKITOUT` in the code. | ||
* `src/interactions.h`: ray scattering functions | ||
* `src/intersections.h`: ray intersection functions | ||
* `src/pathtrace.cu`: path tracing kernels, device functions, and calling code | ||
* `src/main.cpp`: optionally, allows you to save HDR image files | ||
|
||
``` | ||
thrust::default_random_engine rng(hash(index)); | ||
thrust::uniform_real_distribution<float> u01(0, 1); | ||
float result = u01(rng); | ||
``` | ||
|
||
There is a convenience function for generating a random engine using a | ||
combination of index, iteration, and depth as the seed: | ||
|
||
``` | ||
thrust::default_random_engine rng = random_engine(time, iter, depth); | ||
``` | ||
|
||
|
||
## Submit | ||
|
||
If you have modified any of the `CMakeLists.txt` files at all (aside from the | ||
list of `SOURCE_FILES`), you must test that your project can build in Moore | ||
100B/C. Beware of any build issues discussed on the Google Group. | ||
|
||
1. Open a GitHub pull request so that we can see that you have finished. | ||
The title should be "Submission: YOUR NAME". | ||
2. Send an email to the TA (gmail: kainino1+cis565@) with: | ||
* **Subject**: in the form of `[CIS565] Project 2: PENNKEY` | ||
* Direct link to your pull request on GitHub | ||
* Estimate the amount of time you spent on the project. | ||
* If there were any outstanding problems, or if you did any extra work, | ||
briefly explain for grading purposes. | ||
* Feedback on the project itself, if any. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
<launchConfiguration type="org.eclipse.cdt.launch.applicationLaunchType"> | ||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="${cuda_bin}/cuda-gdb"/> | ||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=".cuda-gdbinit"/> | ||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/> | ||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> | ||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.nvidia.cuda.ide.debug.cudagdb"/> | ||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/> | ||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_ARGUMENTS" value="scenes/sphere.txt"/> | ||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/cis565_path_tracer"/> | ||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="cis565_path_tracer"/> | ||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> | ||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/> | ||
<booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="true"/> | ||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> | ||
<listEntry value="/cis565_path_tracer"/> | ||
</listAttribute> | ||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> | ||
<listEntry value="4"/> | ||
</listAttribute> | ||
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"/> "/> | ||
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/> | ||
</launchConfiguration> |
Oops, something went wrong.