Implement texture

This commit is contained in:
CJSatnarine
2024-07-08 19:02:29 -04:00
parent e1e2d4ac2a
commit 18b2acb1fe
22 changed files with 360386 additions and 90076 deletions

View File

@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5.0)
project(Raytracer VERSION 0.1.0 LANGUAGES C CXX)
add_executable(Raytracer
ImageGenerator.cpp
main.cpp
aabb.h
bvh.h
camera.h
@@ -14,6 +14,7 @@ add_executable(Raytracer
ray.h
rayTracer.h
sphere.h
texture.h
vec3.h
)

View File

@@ -39,7 +39,7 @@
{
"directoryIndex" : 0,
"id" : "Raytracer::@6890427a1f51a3e7e1df",
"jsonFile" : "target-Raytracer-Debug-53e51d7b7c539400eaa2.json",
"jsonFile" : "target-Raytracer-Debug-c20492cef9da68491c1d.json",
"name" : "Raytracer",
"projectIndex" : 0
}

View File

@@ -26,7 +26,7 @@
"objects" :
[
{
"jsonFile" : "codemodel-v2-f57fe542ed13663d4779.json",
"jsonFile" : "codemodel-v2-f6c7b9244f32065c2aec.json",
"kind" : "codemodel",
"version" :
{
@@ -99,7 +99,7 @@
}
},
{
"jsonFile" : "codemodel-v2-f57fe542ed13663d4779.json",
"jsonFile" : "codemodel-v2-f6c7b9244f32065c2aec.json",
"kind" : "codemodel",
"version" :
{

View File

@@ -92,7 +92,8 @@
9,
10,
11,
12
12,
13
]
}
],
@@ -101,7 +102,7 @@
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "ImageGenerator.cpp",
"path" : "main.cpp",
"sourceGroupIndex" : 0
},
{
@@ -159,6 +160,11 @@
"path" : "sphere.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"path" : "texture.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"path" : "vec3.h",

View File

@@ -8,7 +8,7 @@ set(CMAKE_DEPENDS_LANGUAGES
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp" "CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o" "gcc" "CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o.d"
"/home/cjsatnarine/Code/Raytracer/main.cpp" "CMakeFiles/Raytracer.dir/main.cpp.o" "gcc" "CMakeFiles/Raytracer.dir/main.cpp.o.d"
)
# Targets to which this target links which contain Fortran sources.

View File

@@ -209,4 +209,5 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: \
/usr/include/c++/13/bits/vector.tcc \
/home/cjsatnarine/Code/Raytracer/camera.h \
/home/cjsatnarine/Code/Raytracer/material.h \
/home/cjsatnarine/Code/Raytracer/texture.h \
/home/cjsatnarine/Code/Raytracer/sphere.h

View File

@@ -69,28 +69,28 @@ include CMakeFiles/Raytracer.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/Raytracer.dir/flags.make
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: CMakeFiles/Raytracer.dir/flags.make
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: CMakeFiles/Raytracer.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/cjsatnarine/Code/Raytracer/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o -MF CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o.d -o CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o -c /home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp
CMakeFiles/Raytracer.dir/main.cpp.o: CMakeFiles/Raytracer.dir/flags.make
CMakeFiles/Raytracer.dir/main.cpp.o: /home/cjsatnarine/Code/Raytracer/main.cpp
CMakeFiles/Raytracer.dir/main.cpp.o: CMakeFiles/Raytracer.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/cjsatnarine/Code/Raytracer/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/Raytracer.dir/main.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/Raytracer.dir/main.cpp.o -MF CMakeFiles/Raytracer.dir/main.cpp.o.d -o CMakeFiles/Raytracer.dir/main.cpp.o -c /home/cjsatnarine/Code/Raytracer/main.cpp
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/Raytracer.dir/ImageGenerator.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp > CMakeFiles/Raytracer.dir/ImageGenerator.cpp.i
CMakeFiles/Raytracer.dir/main.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/Raytracer.dir/main.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/cjsatnarine/Code/Raytracer/main.cpp > CMakeFiles/Raytracer.dir/main.cpp.i
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/Raytracer.dir/ImageGenerator.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp -o CMakeFiles/Raytracer.dir/ImageGenerator.cpp.s
CMakeFiles/Raytracer.dir/main.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/Raytracer.dir/main.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/cjsatnarine/Code/Raytracer/main.cpp -o CMakeFiles/Raytracer.dir/main.cpp.s
# Object files for target Raytracer
Raytracer_OBJECTS = \
"CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o"
"CMakeFiles/Raytracer.dir/main.cpp.o"
# External object files for target Raytracer
Raytracer_EXTERNAL_OBJECTS =
Raytracer: CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o
Raytracer: CMakeFiles/Raytracer.dir/main.cpp.o
Raytracer: CMakeFiles/Raytracer.dir/build.make
Raytracer: CMakeFiles/Raytracer.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/cjsatnarine/Code/Raytracer/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable Raytracer"

View File

@@ -1,6 +1,6 @@
file(REMOVE_RECURSE
"CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o"
"CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o.d"
"CMakeFiles/Raytracer.dir/main.cpp.o"
"CMakeFiles/Raytracer.dir/main.cpp.o.d"
"Raytracer"
"Raytracer.pdb"
)

View File

@@ -1,8 +1,8 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o
/home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp
CMakeFiles/Raytracer.dir/main.cpp.o
/home/cjsatnarine/Code/Raytracer/main.cpp
/home/cjsatnarine/Code/Raytracer/aabb.h
/home/cjsatnarine/Code/Raytracer/bvh.h
/home/cjsatnarine/Code/Raytracer/camera.h
@@ -14,6 +14,7 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o
/home/cjsatnarine/Code/Raytracer/ray.h
/home/cjsatnarine/Code/Raytracer/rayTracer.h
/home/cjsatnarine/Code/Raytracer/sphere.h
/home/cjsatnarine/Code/Raytracer/texture.h
/home/cjsatnarine/Code/Raytracer/vec3.h
/usr/include/alloca.h
/usr/include/asm-generic/errno-base.h

View File

@@ -1,7 +1,7 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp \
CMakeFiles/Raytracer.dir/main.cpp.o: /home/cjsatnarine/Code/Raytracer/main.cpp \
/home/cjsatnarine/Code/Raytracer/aabb.h \
/home/cjsatnarine/Code/Raytracer/bvh.h \
/home/cjsatnarine/Code/Raytracer/camera.h \
@@ -13,6 +13,7 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/home/cjsatnarine/Code/Raytracer/ray.h \
/home/cjsatnarine/Code/Raytracer/rayTracer.h \
/home/cjsatnarine/Code/Raytracer/sphere.h \
/home/cjsatnarine/Code/Raytracer/texture.h \
/home/cjsatnarine/Code/Raytracer/vec3.h \
/usr/include/alloca.h \
/usr/include/asm-generic/errno-base.h \
@@ -261,8 +262,6 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
@@ -423,6 +422,12 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/usr/include/c++/13/bits/char_traits.h:
/usr/include/c++/13/bits/ostream.tcc:
/usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h:
/usr/include/c++/13/bits/ios_base.h:
/usr/include/errno.h:
/usr/include/c++/13/bits/functional_hash.h:
@@ -471,11 +476,21 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/home/cjsatnarine/Code/Raytracer/rayTracer.h:
/usr/include/c++/13/bits/cxxabi_forced.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/home/cjsatnarine/Code/Raytracer/vec3.h:
/usr/include/locale.h:
/home/cjsatnarine/Code/Raytracer/colour.h:
/usr/include/c++/13/ext/aligned_buffer.h:
/home/cjsatnarine/Code/Raytracer/texture.h:
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
/usr/include/c++/13/istream:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/c++/13/pstl/glue_memory_defs.h:
/home/cjsatnarine/Code/Raytracer/hittable.h:
@@ -489,17 +504,21 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/usr/include/c++/13/bits/align.h:
/home/cjsatnarine/Code/Raytracer/colour.h:
/usr/include/c++/13/bits/cxxabi_forced.h:
/home/cjsatnarine/Code/Raytracer/vec3.h:
/usr/include/c++/13/bits/nested_exception.h:
/home/cjsatnarine/Code/Raytracer/bvh.h:
/usr/include/c++/13/bits/ostream.tcc:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h:
/home/cjsatnarine/Code/Raytracer/main.cpp:
/usr/include/c++/13/bits/ios_base.h:
/home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp:
/usr/include/c++/13/backward/auto_ptr.h:
/usr/include/asm-generic/errno-base.h:
@@ -527,8 +546,6 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/usr/include/c++/13/bits/stl_raw_storage_iter.h:
/usr/include/c++/13/backward/auto_ptr.h:
/usr/include/c++/13/bits/basic_string.tcc:
/usr/include/c++/13/bit:
@@ -541,12 +558,6 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/usr/include/c++/13/bits/shared_ptr_base.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/locale.h:
/usr/include/c++/13/ext/aligned_buffer.h:
/usr/include/c++/13/ios:
/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
@@ -741,14 +752,6 @@ CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o: /home/cjsatnarine/Code/Raytracer/
/usr/include/c++/13/initializer_list:
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
/usr/include/c++/13/istream:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/c++/13/pstl/glue_memory_defs.h:
/usr/include/c++/13/limits:
/usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h:

View File

@@ -1 +1 @@
/usr/bin/c++ -g CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o -o Raytracer
/usr/bin/c++ -g CMakeFiles/Raytracer.dir/main.cpp.o -o Raytracer

Binary file not shown.

View File

@@ -0,0 +1,213 @@
CMakeFiles/Raytracer.dir/main.cpp.o: \
/home/cjsatnarine/Code/Raytracer/main.cpp /usr/include/stdc-predef.h \
/home/cjsatnarine/Code/Raytracer/rayTracer.h /usr/include/c++/13/cmath \
/usr/include/c++/13/bits/requires_hosted.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \
/usr/include/c++/13/pstl/pstl_config.h \
/usr/include/c++/13/bits/cpp_type_traits.h \
/usr/include/c++/13/ext/type_traits.h /usr/include/math.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/math-vector.h \
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
/usr/include/x86_64-linux-gnu/bits/fp-logb.h \
/usr/include/x86_64-linux-gnu/bits/fp-fast.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
/usr/include/x86_64-linux-gnu/bits/iscanonical.h \
/usr/include/c++/13/bits/std_abs.h /usr/include/stdlib.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/13/bits/specfun.h \
/usr/include/c++/13/bits/stl_algobase.h \
/usr/include/c++/13/bits/functexcept.h \
/usr/include/c++/13/bits/exception_defines.h \
/usr/include/c++/13/ext/numeric_traits.h \
/usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/type_traits \
/usr/include/c++/13/bits/move.h /usr/include/c++/13/bits/utility.h \
/usr/include/c++/13/bits/stl_iterator_base_types.h \
/usr/include/c++/13/bits/stl_iterator_base_funcs.h \
/usr/include/c++/13/bits/concept_check.h \
/usr/include/c++/13/debug/assertions.h \
/usr/include/c++/13/bits/stl_iterator.h \
/usr/include/c++/13/bits/ptr_traits.h /usr/include/c++/13/debug/debug.h \
/usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \
/usr/include/c++/13/limits /usr/include/c++/13/tr1/gamma.tcc \
/usr/include/c++/13/tr1/special_function_util.h \
/usr/include/c++/13/tr1/bessel_function.tcc \
/usr/include/c++/13/tr1/beta_function.tcc \
/usr/include/c++/13/tr1/ell_integral.tcc \
/usr/include/c++/13/tr1/exp_integral.tcc \
/usr/include/c++/13/tr1/hypergeometric.tcc \
/usr/include/c++/13/tr1/legendre_function.tcc \
/usr/include/c++/13/tr1/modified_bessel_func.tcc \
/usr/include/c++/13/tr1/poly_hermite.tcc \
/usr/include/c++/13/tr1/poly_laguerre.tcc \
/usr/include/c++/13/tr1/riemann_zeta.tcc /usr/include/c++/13/cstdlib \
/usr/include/c++/13/iostream /usr/include/c++/13/ostream \
/usr/include/c++/13/ios /usr/include/c++/13/iosfwd \
/usr/include/c++/13/bits/stringfwd.h \
/usr/include/c++/13/bits/memoryfwd.h /usr/include/c++/13/bits/postypes.h \
/usr/include/c++/13/cwchar /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/c++/13/exception /usr/include/c++/13/bits/exception.h \
/usr/include/c++/13/bits/exception_ptr.h \
/usr/include/c++/13/bits/cxxabi_init_exception.h \
/usr/include/c++/13/typeinfo /usr/include/c++/13/bits/hash_bytes.h \
/usr/include/c++/13/new /usr/include/c++/13/bits/nested_exception.h \
/usr/include/c++/13/bits/char_traits.h \
/usr/include/c++/13/bits/localefwd.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \
/usr/include/c++/13/clocale /usr/include/locale.h \
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/cctype \
/usr/include/ctype.h /usr/include/c++/13/bits/ios_base.h \
/usr/include/c++/13/ext/atomicity.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/x86_64-linux-gnu/bits/sched.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \
/usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/timex.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/x86_64-linux-gnu/bits/setjmp.h \
/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \
/usr/include/x86_64-linux-gnu/sys/single_threaded.h \
/usr/include/c++/13/bits/locale_classes.h /usr/include/c++/13/string \
/usr/include/c++/13/bits/allocator.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \
/usr/include/c++/13/bits/new_allocator.h \
/usr/include/c++/13/bits/ostream_insert.h \
/usr/include/c++/13/bits/cxxabi_forced.h \
/usr/include/c++/13/bits/stl_function.h \
/usr/include/c++/13/backward/binders.h \
/usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \
/usr/include/c++/13/bits/range_access.h \
/usr/include/c++/13/initializer_list \
/usr/include/c++/13/bits/basic_string.h \
/usr/include/c++/13/ext/alloc_traits.h \
/usr/include/c++/13/bits/alloc_traits.h \
/usr/include/c++/13/bits/stl_construct.h /usr/include/c++/13/string_view \
/usr/include/c++/13/bits/functional_hash.h \
/usr/include/c++/13/bits/string_view.tcc \
/usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdio \
/usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/c++/13/cerrno /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/x86_64-linux-gnu/bits/types/error_t.h \
/usr/include/c++/13/bits/charconv.h \
/usr/include/c++/13/bits/basic_string.tcc \
/usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \
/usr/include/c++/13/bits/uses_allocator.h \
/usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \
/usr/include/c++/13/bits/locale_classes.tcc \
/usr/include/c++/13/system_error \
/usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \
/usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \
/usr/include/c++/13/bits/streambuf.tcc \
/usr/include/c++/13/bits/basic_ios.h \
/usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \
/usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \
/usr/include/c++/13/bits/streambuf_iterator.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \
/usr/include/c++/13/bits/locale_facets.tcc \
/usr/include/c++/13/bits/basic_ios.tcc \
/usr/include/c++/13/bits/ostream.tcc /usr/include/c++/13/istream \
/usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/memory \
/usr/include/c++/13/bits/stl_tempbuf.h \
/usr/include/c++/13/bits/stl_uninitialized.h \
/usr/include/c++/13/bits/stl_raw_storage_iter.h \
/usr/include/c++/13/bits/align.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-least.h \
/usr/include/c++/13/bits/unique_ptr.h \
/usr/include/c++/13/bits/shared_ptr.h \
/usr/include/c++/13/bits/shared_ptr_base.h \
/usr/include/c++/13/bits/allocated_ptr.h \
/usr/include/c++/13/ext/aligned_buffer.h \
/usr/include/c++/13/ext/concurrence.h \
/usr/include/c++/13/bits/shared_ptr_atomic.h \
/usr/include/c++/13/bits/atomic_base.h \
/usr/include/c++/13/bits/atomic_lockfree_defines.h \
/usr/include/c++/13/backward/auto_ptr.h \
/usr/include/c++/13/pstl/glue_memory_defs.h \
/usr/include/c++/13/pstl/execution_defs.h \
/home/cjsatnarine/Code/Raytracer/colour.h \
/home/cjsatnarine/Code/Raytracer/interval.h \
/home/cjsatnarine/Code/Raytracer/vec3.h \
/home/cjsatnarine/Code/Raytracer/ray.h \
/home/cjsatnarine/Code/Raytracer/bvh.h \
/home/cjsatnarine/Code/Raytracer/aabb.h /usr/include/c++/13/algorithm \
/usr/include/c++/13/bits/stl_algo.h \
/usr/include/c++/13/bits/algorithmfwd.h \
/usr/include/c++/13/bits/stl_heap.h \
/usr/include/c++/13/bits/uniform_int_dist.h \
/usr/include/c++/13/pstl/glue_algorithm_defs.h \
/home/cjsatnarine/Code/Raytracer/hittable.h \
/home/cjsatnarine/Code/Raytracer/hittableList.h \
/usr/include/c++/13/vector /usr/include/c++/13/bits/stl_vector.h \
/usr/include/c++/13/bits/stl_bvector.h \
/usr/include/c++/13/bits/vector.tcc \
/home/cjsatnarine/Code/Raytracer/camera.h \
/home/cjsatnarine/Code/Raytracer/material.h \
/home/cjsatnarine/Code/Raytracer/texture.h \
/home/cjsatnarine/Code/Raytracer/sphere.h

View File

@@ -129,29 +129,29 @@ Raytracer/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/build
.PHONY : Raytracer/fast
ImageGenerator.o: ImageGenerator.cpp.o
.PHONY : ImageGenerator.o
main.o: main.cpp.o
.PHONY : main.o
# target to build an object file
ImageGenerator.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o
.PHONY : ImageGenerator.cpp.o
main.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/main.cpp.o
.PHONY : main.cpp.o
ImageGenerator.i: ImageGenerator.cpp.i
.PHONY : ImageGenerator.i
main.i: main.cpp.i
.PHONY : main.i
# target to preprocess a source file
ImageGenerator.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/ImageGenerator.cpp.i
.PHONY : ImageGenerator.cpp.i
main.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/main.cpp.i
.PHONY : main.cpp.i
ImageGenerator.s: ImageGenerator.cpp.s
.PHONY : ImageGenerator.s
main.s: main.cpp.s
.PHONY : main.s
# target to generate assembly for a file
ImageGenerator.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/ImageGenerator.cpp.s
.PHONY : ImageGenerator.cpp.s
main.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Raytracer.dir/build.make CMakeFiles/Raytracer.dir/main.cpp.s
.PHONY : main.cpp.s
# Help Target
help:
@@ -162,9 +162,9 @@ help:
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... Raytracer"
@echo "... ImageGenerator.o"
@echo "... ImageGenerator.i"
@echo "... ImageGenerator.s"
@echo "... main.o"
@echo "... main.i"
@echo "... main.s"
.PHONY : help

Binary file not shown.

View File

@@ -1,8 +1,8 @@
[
{
"directory": "/home/cjsatnarine/Code/Raytracer/build",
"command": "/usr/bin/c++ -g -o CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o -c /home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp",
"file": "/home/cjsatnarine/Code/Raytracer/ImageGenerator.cpp",
"output": "CMakeFiles/Raytracer.dir/ImageGenerator.cpp.o"
"command": "/usr/bin/c++ -g -o CMakeFiles/Raytracer.dir/main.cpp.o -c /home/cjsatnarine/Code/Raytracer/main.cpp",
"file": "/home/cjsatnarine/Code/Raytracer/main.cpp",
"output": "CMakeFiles/Raytracer.dir/main.cpp.o"
}
]

View File

@@ -12,6 +12,8 @@ class hitRecord {
vec3 normal;
shared_ptr<material> mat;
double t;
double u;
double v;
bool frontFace;
void setFaceNormal(const ray& r, const vec3& outwardNormal) {

449986
image.ppm

File diff suppressed because it is too large Load Diff

View File

@@ -7,13 +7,10 @@
#include "sphere.h"
#include "texture.h"
int main(void) {
void bouncingSpheres(void) {
// World.
hittableList world;
auto checker = make_shared<checkerTexture>(0.32, colour(.2, .3, .1), colour(.9, .9, .9));
world.add(make_shared<sphere>(point3(0,-1000,0), 1000, make_shared<lambertian>(checker)));
// Code from the book.
auto ground_material = make_shared<lambertian>(colour(0.5, 0.5, 0.5));
world.add(make_shared<sphere>(point3(0,-1000,0), 1000, ground_material));
@@ -76,6 +73,41 @@ int main(void) {
cam.focusDistance = 10;
cam.render(world);
return 0;
}
void checkeredSpheres(void) {
hittableList world;
auto checker = make_shared<checkerTexture>(0.32, colour(.9, .1, .1), colour(.9, .9, .9));
world.add(make_shared<sphere>(point3(0,-10, 0), 10, make_shared<lambertian>(checker)));
world.add(make_shared<sphere>(point3(0, 10, 0), 10, make_shared<lambertian>(checker)));
camera cam;
cam.aspectRatio = 16.0 / 9.0;
cam.imageWidth = 800;
cam.samplesPerPixel = 100;
cam.maxDepth = 50;
cam.vFieldOfView = 20;
cam.lookFrom = point3(13, 2, 3);
cam.lookAt = point3(0, 0, 0);
cam.vUp = vec3(0, 1, 0);
cam.defocusAngle = 0;
cam.render(world);
}
int main(void) {
int sceneToShow = 2;
switch (sceneToShow) {
case 1:
bouncingSpheres();
break;
case 2:
checkeredSpheres();
break;
}
}

View File

@@ -2,6 +2,7 @@
#define MATERIAL_H
#include "rayTracer.h"
#include "texture.h"
class hitRecord;
@@ -16,20 +17,20 @@ class material {
class lambertian : public material {
private:
colour albedo;
shared_ptr<texture> tex;
public:
lambertian(const colour& albedo) : albedo(albedo) {}
lambertian(const colour& albedo) : tex(make_shared<solidColour>(albedo)) {}
lambertian(shared_ptr<texture> tex) : tex(tex) {}
bool scatter(const ray& rIn, const hitRecord& rec, colour& attenuation, ray& scattered)
const override {
bool scatter(const ray& rIn, const hitRecord& rec, colour& attenuation, ray& scattered) const override {
auto scatterDirection = rec.normal + randomUnitVector();
// Catch degenerate scatter direction.
if (scatterDirection.nearZero()) scatterDirection = rec.normal;
scattered = ray(rec.p, scatterDirection, rIn.time());
attenuation = albedo;
attenuation = tex->value(rec.u, rec.v, rec.p);
return true;
}
};

50
texture.h Normal file
View File

@@ -0,0 +1,50 @@
#ifndef TEXTURE_H
#define TEXTURE_H
#include "rayTracer.h"
class texture {
public:
virtual ~texture() = default;
virtual colour value(double u, double v, const point3& p) const = 0;
};
class solidColour : public texture {
public:
solidColour(const colour& albedo) : albedo(albedo) {}
solidColour(double red, double green, double blue) : solidColour(colour(red, green, blue)) {}
colour value(double u, double v, const point3& p) const override {
return albedo;
}
private:
colour albedo;
};
class checkerTexture : public texture {
public:
checkerTexture(double scale, shared_ptr<texture> even, shared_ptr<texture> odd) : invScale(1.0 / scale), even(even), odd(odd) {}
checkerTexture(double scale, const colour& c1, const colour& c2) : invScale(1.0 / scale), even(make_shared<solidColour>(c1)), odd(make_shared<solidColour>(c2)) {}
colour value(double u, double v, const point3& p) const override {
auto xInteger = int(std::floor(invScale * p.x()));
auto yInteger = int(std::floor(invScale * p.y()));
auto zInteger = int(std::floor(invScale * p.z()));
bool isEven = (xInteger + yInteger + zInteger) % 2 == 0;
return isEven ? even->value(u, v, p) : odd->value(u, v, p);
}
private:
double invScale;
shared_ptr<texture> even;
shared_ptr<texture> odd;
};
#endif