Skip to content

Commit 9fa777d

Browse files
Fixes
1. Fixes for compiling and running on Linux 2. Fixed tiles not rendering correctly when window is resized 3. Fixed issues with instancing
1 parent 626ba43 commit 9fa777d

File tree

154 files changed

+493111
-37431
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+493111
-37431
lines changed

.gitignore

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
# Don't track content of these folders
22

33
.vs/
4-
bin/*
5-
!bin/assets
6-
#bin/assets/*
7-
#!bin/assets/*.scene
8-
PathTracer/Release/
9-
PathTracer/Debug/
4+
build/*

CMakeLists.txt

Lines changed: 39 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,44 @@ set(CMAKE_CXX_STANDARD 14)
1010
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1111

1212

13+
file(GLOB_RECURSE SHADERS
14+
${CMAKE_SOURCE_DIR}/src/shaders/*.glsl
15+
)
16+
1317
file(GLOB_RECURSE SRC_FILES
14-
${CMAKE_SOURCE_DIR}/PathTracer/*.h
15-
${CMAKE_SOURCE_DIR}/PathTracer/*.cpp
18+
${CMAKE_SOURCE_DIR}/src/*.h
19+
${CMAKE_SOURCE_DIR}/src/*.cpp
1620
)
21+
1722
file(GLOB EXT_FILES
18-
${CMAKE_SOURCE_DIR}/thirdparty/SOIL/src/*.h
19-
${CMAKE_SOURCE_DIR}/thirdparty/SOIL/src/*.c
20-
${CMAKE_SOURCE_DIR}/thirdparty/RadeonRays/*.h
21-
${CMAKE_SOURCE_DIR}/thirdparty/RadeonRays/*.cpp
23+
${CMAKE_SOURCE_DIR}/thirdparty/stb/*.h
2224
${CMAKE_SOURCE_DIR}/thirdparty/imgui/*.h
2325
${CMAKE_SOURCE_DIR}/thirdparty/imgui/*.cpp
2426
${CMAKE_SOURCE_DIR}/thirdparty/imguizmo/*.h
25-
${CMAKE_SOURCE_DIR}/thirdparty/imguizmo/*.cpp
26-
)
27-
28-
if (NOT EMSCRIPTEN)
29-
file(GLOB EXT_FILES_SPECIFIC
27+
${CMAKE_SOURCE_DIR}/thirdparty/imguizmo/*.cpp
28+
${CMAKE_SOURCE_DIR}/thirdparty/RadeonRays/*.h
29+
${CMAKE_SOURCE_DIR}/thirdparty/RadeonRays/*.cpp
3030
${CMAKE_SOURCE_DIR}/thirdparty/gl3w/GL/*.c
3131
)
32-
set(SDL2_LIBRARIES "SDL2" "SDL2main")
33-
endif()
3432

33+
set(SRCS ${SRC_FILES} ${EXT_FILES} ${SHADERS})
3534

35+
set(SDL2_LIBRARIES "SDL2" "SDL2main")
3636
set(SDL2_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/thirdparty/SDL2/include)
3737
set(SDL2_LIBDIR ${CMAKE_SOURCE_DIR}/thirdparty/SDL2/lib/x64)
3838

3939
include_directories(
40-
${CMAKE_CURRENT_SOURCE_DIR}/PathTracer
40+
${CMAKE_SOURCE_DIR}/src/core
41+
${CMAKE_SOURCE_DIR}/src/loaders
42+
${CMAKE_SOURCE_DIR}/src/tests
4143
${CMAKE_SOURCE_DIR}/thirdparty/glm
4244
${CMAKE_SOURCE_DIR}/thirdparty/imgui
43-
${CMAKE_SOURCE_DIR}/thirdparty/RadeonRays
4445
${CMAKE_SOURCE_DIR}/thirdparty/glew/include
45-
${CMAKE_SOURCE_DIR}/thirdparty/SOIL/include
46+
${CMAKE_SOURCE_DIR}/thirdparty/stb
4647
${CMAKE_SOURCE_DIR}/thirdparty/gl3w
4748
${CMAKE_SOURCE_DIR}/thirdparty/imguizmo
49+
${CMAKE_SOURCE_DIR}/thirdparty/RadeonRays
50+
${CMAKE_SOURCE_DIR}/thirdparty/tinydir
4851
${SDL2_INCLUDE_DIRS}
4952
)
5053

@@ -53,25 +56,7 @@ link_directories(
5356
)
5457
find_package(OpenGL)
5558

56-
57-
#######################################################################################
58-
59-
#set (USE_MSVC_RUNTIME_LIBRARY_DLL true)
60-
#IF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
61-
# #We statically link to reduce dependancies
62-
# FOREACH(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RETAIL)
63-
# IF(${flag_var} MATCHES "/MD")
64-
# STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
65-
# ENDIF(${flag_var} MATCHES "/MD")
66-
# IF(${flag_var} MATCHES "/MDd")
67-
# STRING(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}")
68-
# ENDIF(${flag_var} MATCHES "/MDd")
69-
# ENDFOREACH(flag_var)
70-
#ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
71-
72-
#######################################################################################
73-
74-
foreach(f ${SRC_FILES})
59+
foreach(f ${SRCS})
7560
# Get the path of the file relative to ${DIRECTORY},
7661
# then alter it (not compulsory)
7762
file(RELATIVE_PATH SRCGR ${CMAKE_SOURCE_DIR} ${f})
@@ -85,9 +70,7 @@ foreach(f ${SRC_FILES})
8570
source_group("${SRCGR}" FILES ${f})
8671
endforeach()
8772

88-
set(ENABLE_HIDECONSOLE_BUILD TRUE CACHE BOOL "TRUE to hide console for Windows sys")
89-
90-
if(WINDOWS)
73+
if(WIN32)
9174
set(GUI_TYPE WIN32)
9275
elseif(MACOSX)
9376
set(GUI_TYPE MACOSX_BUNDLE)
@@ -101,9 +84,13 @@ endif()
10184
SET(LINK_OPTIONS " ")
10285
SET(EXE_NAME "PathTracer")
10386

104-
ADD_EXECUTABLE(${EXE_NAME} ${SRC_FILES} ${EXT_FILES} ${EXT_FILES_SPECIFIC})
87+
ADD_EXECUTABLE(${EXE_NAME} ${SRCS})
10588

89+
if(WIN32)
10690
TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPENGL_LIBRARIES} ${SDL2_LIBRARIES})
91+
else()
92+
TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPENGL_LIBRARIES} ${SDL2_LIBRARIES} dl)
93+
endif()
10794

10895
#--------------------------------------------------------------------
10996
# preproc
@@ -126,53 +113,26 @@ add_definitions(-DGLEW_STATIC)
126113
# output dirs
127114
#--------------------------------------------------------------------
128115

129-
set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin )
130-
set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin )
131-
set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_SOURCE_DIR}/bin )
116+
set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR} )
117+
set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR} )
118+
set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR} )
132119
set_target_properties(${EXE_NAME} PROPERTIES DEBUG_POSTFIX "_d")
133120
set_target_properties(${EXE_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "RelWithDebInfo")
134-
set_target_properties(${EXE_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
135-
136-
#--------------------------------------------------------------------
137-
# Hide the console window in visual studio projects
138-
#--------------------------------------------------------------------
139-
if(ENABLE_HIDECONSOLE_BUILD)
140-
if(MSVC)
141-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
142-
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
143-
endif()
144-
endif()
121+
set_target_properties(${EXE_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
145122

146-
if(WINDOWS)
147-
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:WINDOWS")
148-
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
123+
if(WIN32)
124+
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
125+
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:CONSOLE")
149126
endif()
150127

151-
if (EMSCRIPTEN)
152-
add_definitions(-DEMSCRIPTEN)
153-
add_definitions(-D_X86_)
154-
set(EMS_OPTS "-s USE_SDL=2 -s USE_WEBGL2=1 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s BINARYEN_TRAP_MODE=clamp --bind -O2 --no-heap-copy -g4 --source-map-base localhost:8000")
155-
add_definitions(${EMS_OPTS})
156-
set(EMS_PRELOAD " --preload-file assets --preload-file shaders")
157-
set(EMS_LINK "${EMS_OPTS} ${EMS_PRELOAD}")
158-
set_target_properties(${EXE_NAME} PROPERTIES LINK_FLAGS ${EMS_LINK})
159-
160-
add_custom_command(TARGET ${EXE_NAME} PRE_BUILD
161-
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/bin/assets ${CMAKE_CURRENT_BINARY_DIR}/assets
128+
add_custom_command(TARGET ${EXE_NAME} POST_BUILD
129+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/assets ${CMAKE_CURRENT_BINARY_DIR}/assets
162130
)
163-
add_custom_command(TARGET ${EXE_NAME} PRE_BUILD
164-
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/PathTracer/shaders ${CMAKE_CURRENT_BINARY_DIR}/shaders
131+
add_custom_command(TARGET ${EXE_NAME} POST_BUILD
132+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/src/shaders ${CMAKE_CURRENT_BINARY_DIR}/shaders
165133
)
166-
134+
if(WIN32)
167135
add_custom_command(TARGET ${EXE_NAME} POST_BUILD
168-
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/PathTracer/index.html ${CMAKE_CURRENT_BINARY_DIR}/index.html
136+
COMMAND ${CMAKE_COMMAND} -E copy ${SDL2_LIBDIR}/SDL2.dll ${CMAKE_CURRENT_BINARY_DIR}
169137
)
170-
171-
172-
endif()
173-
174-
if(ENABLE_HIDECONSOLE_BUILD)
175-
MESSAGE(STATUS "Console is hidden")
176-
else()
177-
MESSAGE(STATUS "Console is visible")
178138
endif()

INSTALL-LINUX.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Instructions for building:
2+
3+
* apt-get install libsdl2-dev
4+
5+
* git clone https://github.com/knightcrawler25/GLSL-PathTracer.git
6+
7+
* cd GLSL-PathTracer
8+
9+
* mkdir build
10+
11+
* cmake ..
12+
13+
* make
14+
15+
* cd build
16+
17+
* To run the program: ./PathTracer
18+
19+
* Additional samples can be downloaded from: https://drive.google.com/file/d/1UFMMoVb5uB7WIvCeHOfQ2dCQSxNMXluB/view

INSTALL-WIN.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,19 @@ Instructions for building:
44

55
* Select the main directory where CMakeLists.txt is as the source file location.
66

7-
* Select the "bin" directory as the location to build the binaries.
7+
* Select the "build" directory as the location to build the binaries.
88

99
* Press "Configure" button and select the version of Visual Studio you wish to
10-
use. Note that the 64-bit compiles are separate from the 32-bit compiles
11-
(e.g. look for "Visual Studio 12 2013 Win64"). Leave all other options on
10+
use. (e.g. look for "Visual Studio xx 20xx Win64"). Leave all other options on
1211
their default. Press "OK".
13-
14-
* Uncheck 'ENABLE_HIDECONSOLE_BUILD' if you wish to see the console logs. Then press "Generate".
1512

16-
* Open the .sln solution file in the "bin" directory.
13+
* Open the .sln solution file in the "build" directory.
1714

1815
* Change to "Release" mode and Press "Build Solution" from the IDE.
1916

2017
* Right click on "PathTracer" program targets in the solution explorer and
2118
select "Set as start up project".
2219

23-
* Run the program.
20+
* Run the program.
21+
22+
* Additional samples can be downloaded from: https://drive.google.com/file/d/1UFMMoVb5uB7WIvCeHOfQ2dCQSxNMXluB/view

LICENSE

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
MIT License
22

3-
Copyright (c) 2019 Asif Ali
3+
Copyright(c) 2019-2020 Asif Ali
4+
5+
Authors/Contributors:
6+
7+
Asif Ali
8+
Cedric Guillemet
49

510
Permission is hereby granted, free of charge, to any person obtaining a copy
611
of this software and associated documentation files (the "Software"), to deal

0 commit comments

Comments
 (0)