├── .gitignore ├── .gitmodules ├── .syntastic_c_config ├── .syntastic_cpp_config ├── CMakeLists.txt ├── LICENSE ├── README.md ├── Session.vim ├── assets ├── CornellBox-Glossy.mtl ├── CornellBox-Glossy.obj └── suzanne.obj ├── imgui.ini ├── lib └── gl_utils │ ├── include │ └── gl_utils │ │ └── gl_helpers.h │ └── src │ └── gl_helpers.c ├── paper ├── elsarticle-template-1-num.aux ├── elsarticle-template-1-num.dvi ├── elsarticle-template-1-num.log ├── elsarticle-template-1-num.spl └── elsarticle-template-1-num.tex ├── shader ├── mipmap.comp ├── passthrough.frag ├── passthrough.vert ├── voxel_cone_tracing.frag ├── voxel_cone_tracing.vert ├── voxelize.frag ├── voxelize.geom └── voxelize.vert ├── src ├── camera.h ├── device.cpp ├── device.h ├── main.cpp ├── renderer.cpp ├── renderer.h ├── shared.h ├── texture_3d.cpp └── texture_3d.h ├── tckr9Pn.png └── thirdparty ├── glad ├── include │ ├── KHR │ │ └── khrplatform.h │ └── glad │ │ └── glad.h └── src │ └── glad.c ├── header_only_impls.cpp ├── math_3d └── math_3d.h └── stb ├── stb_image.h └── stretchy_buffer.h /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | *~ 3 | *.swp 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "thirdparty/glfw"] 2 | path = thirdparty/glfw 3 | url = git@github.com:glfw/glfw.git 4 | [submodule "thirdparty/tinyobjloader"] 5 | path = thirdparty/tinyobjloader 6 | url = git@github.com:syoyo/tinyobjloader.git 7 | [submodule "thirdparty/glm"] 8 | path = thirdparty/glm 9 | url = git@github.com:g-truc/glm.git 10 | [submodule "thirdparty/imgui"] 11 | path = thirdparty/imgui 12 | url = git@github.com:ocornut/imgui.git 13 | [submodule "thirdparty/gl3w"] 14 | path = thirdparty/gl3w 15 | url = git@github.com:skaslev/gl3w.git 16 | -------------------------------------------------------------------------------- /.syntastic_c_config: -------------------------------------------------------------------------------- 1 | -Ithirdparty/glad/include 2 | -Ithirdparty/glfw/include 3 | -Ithirdparty/glm/ 4 | -Ithirdparty 5 | -Ilib/gl_utils/include 6 | -Iinclude 7 | -------------------------------------------------------------------------------- /.syntastic_cpp_config: -------------------------------------------------------------------------------- 1 | -Ithirdparty/glad/include 2 | -Ithirdparty/glfw/include 3 | -Ithirdparty/glm/ 4 | -Ithirdparty 5 | -Ithirdparty/imgui/examples/opengl3_example 6 | -Ithirdparty/gl3w/include 7 | -Ilib/gl_utils/include 8 | -Iinclude 9 | -std=c++11 10 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.2) 2 | 3 | set(APP_NAME Voxel_Cone_Tracing) 4 | 5 | set(SOURCES src/main.cpp 6 | src/renderer.cpp 7 | src/texture_3d.cpp) 8 | 9 | ## Third party libs 10 | # glad 11 | 12 | add_library(glad STATIC 13 | thirdparty/glad/src/glad.c 14 | thirdparty/glad/include 15 | ) 16 | include_directories(thirdparty/glad/include) 17 | 18 | # GLFW 19 | 20 | # Building only the GLFW lib 21 | set(BUILD_SHARED_LIBS OFF CACHE BOOL "") 22 | set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "") 23 | set(GLFW_BUILD_TESTS OFF CACHE BOOL "") 24 | set(GLFW_BUILD_DOCS OFF CACHE BOOL "") 25 | set(GLFW_INSTALL OFF CACHE BOOL "") 26 | 27 | add_subdirectory(thirdparty/glfw) 28 | include_directories(thirdparty/glfw/include) 29 | 30 | find_package(OpenGL REQUIRED) 31 | 32 | # GLM 33 | include_directories(thirdparty/glm) 34 | 35 | # Imgui 36 | add_library(imgui STATIC 37 | thirdparty/imgui/imgui.cpp 38 | thirdparty/imgui 39 | thirdparty/imgui/imgui.h 40 | thirdparty/imgui/imgui_draw.cpp 41 | thirdparty/imgui/imgui_demo.cpp 42 | thirdparty/imgui/imgui_internal.h 43 | thirdparty/imgui/imconfig.h 44 | thirdparty/imgui/stb_rect_pack.h 45 | thirdparty/imgui/stb_textedit.h 46 | thirdparty/imgui/stb_truetype.h 47 | thirdparty/imgui/examples/opengl3_example/imgui_impl_glfw_gl3.cpp 48 | thirdparty/imgui/examples/opengl3_example/imgui_impl_glfw_gl3.h 49 | thirdparty/gl3w/src/gl3w.c) 50 | include_directories(thirdparty/imgui) 51 | include_directories(thirdparty/imgui/examples/opengl3_example) 52 | include_directories(thirdparty/gl3w/include) 53 | 54 | # header only stuff 55 | add_library(header_only_impls STATIC 56 | thirdparty/header_only_impls.cpp) 57 | include_directories(thirdparty) 58 | 59 | ## 60 | 61 | add_library(gl_utils STATIC 62 | lib/gl_utils/src/gl_helpers.c 63 | lib/gl_utils/include) 64 | include_directories(lib/gl_utils/include) 65 | 66 | add_executable(${APP_NAME} ${SOURCES}) 67 | target_compile_features(${APP_NAME} PRIVATE cxx_range_for) 68 | target_link_libraries(${APP_NAME} ${OPENGL_LIBRARIES} glfw glad gl_utils header_only_impls imgui) 69 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 GreatBlambo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Voxel Cone Tracing 2 | 3 | An implementation of voxel cone tracing based on "Interactive Indirect Illumination Using Voxel Cone Tracing" by Cyril Crassin et al (https://research.nvidia.com/sites/default/files/publications/GIVoxels-pg2011-authors.pdf). 4 | 5 | ![alt text](https://github.com/GreatBlambo/voxel_cone_tracing/blob/master/tckr9Pn.png) 6 | 7 | Requires OpenGL 4.5, CMake 3.2 8 | 9 | After cloning, do: 10 | ``` 11 | git submodule update --init --recursive 12 | ``` 13 | To pull each submodule. 14 | 15 | To build: 16 | ``` 17 | mkdir build 18 | cd build && cmake .. 19 | make 20 | cd .. 21 | build/Voxel_Cone_Tracing 22 | ``` 23 | -------------------------------------------------------------------------------- /Session.vim: -------------------------------------------------------------------------------- 1 | let SessionLoad = 1 2 | if &cp | set nocp | endif 3 | let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0 4 | let v:this_session=expand(":p") 5 | silent only 6 | cd ~/projects/voxel_cone_tracing 7 | if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == '' 8 | let s:wipebuf = bufnr('%') 9 | endif 10 | set shortmess=aoO 11 | badd +275 src/renderer.cpp 12 | badd +36 shader/passthrough.frag 13 | badd +2 shader/passthrough.vert 14 | badd +110 src/main.cpp 15 | badd +54 shader/voxelize.geom 16 | badd +1 src/device.cpp 17 | badd +19 shader/voxel_cone_tracing.vert 18 | badd +1 shader/voxel_cone_tracing.frag 19 | badd +50 shader/voxelize.frag 20 | badd +131 lib/gl_utils/src/gl_helpers.c 21 | badd +28 shader/voxelize.vert 22 | badd +8 src/texture_3d.h 23 | badd +32 src/texture_3d.cpp 24 | badd +49 CMakeLists.txt 25 | badd +11 shader/mipmap.comp 26 | badd +89 ~/.vimrc 27 | badd +350 thirdparty/imgui/examples/opengl3_example/imgui_impl_glfw_gl3.cpp 28 | badd +6 .syntastic_cpp_config 29 | argglobal 30 | silent! argdel * 31 | argadd src/renderer.cpp 32 | edit src/main.cpp 33 | set splitbelow splitright 34 | set nosplitbelow 35 | set nosplitright 36 | wincmd t 37 | set winheight=1 winwidth=1 38 | argglobal 39 | setlocal fdm=manual 40 | setlocal fde=0 41 | setlocal fmr={{{,}}} 42 | setlocal fdi=# 43 | setlocal fdl=0 44 | setlocal fml=1 45 | setlocal fdn=20 46 | setlocal fen 47 | silent! normal! zE 48 | let s:l = 1 - ((0 * winheight(0) + 34) / 69) 49 | if s:l < 1 | let s:l = 1 | endif 50 | exe s:l 51 | normal! zt 52 | 1 53 | normal! 0 54 | tabnext 1 55 | if exists('s:wipebuf') 56 | silent exe 'bwipe ' . s:wipebuf 57 | endif 58 | unlet! s:wipebuf 59 | set winheight=1 winwidth=20 shortmess=filnxtToO 60 | let s:sx = expand(":p:r")."x.vim" 61 | if file_readable(s:sx) 62 | exe "source " . fnameescape(s:sx) 63 | endif 64 | let &so = s:so_save | let &siso = s:siso_save 65 | let g:this_session = v:this_session 66 | let g:this_obsession = v:this_session 67 | let g:this_obsession_status = 2 68 | doautoall SessionLoadPost 69 | unlet SessionLoad 70 | " vim: set ft=vim : 71 | -------------------------------------------------------------------------------- /assets/CornellBox-Glossy.mtl: -------------------------------------------------------------------------------- 1 | # The glossy Cornell Box in OBJ format. 2 | # Note that the real box is not a perfect cube, so 3 | # the faces are imperfect in this data set. 4 | # This can be matched with Henrik Jensen's "Global Illumination using Photon Maps" Page 17 Fig. 6 5 | # 6 | # Created by Guedis Cardenas and Morgan McGuire at Williams College, 2011 7 | # Released into the Public Domain. 8 | # 9 | # http://graphics.cs.williams.edu/data 10 | # http://scholar.google.com/scholar?q=global+illumination+using+photon+maps+jensen&hl=en&as_sdt=0&as_vis=1&oi=scholart 11 | # 12 | newmtl sphere 13 | Ns 32 14 | d 1 15 | Tr 0 16 | Tf 1 1 1 17 | illum 2 18 | Ka 0.486 0.631 0.663 # Cyan 19 | Kd 0.486 0.631 0.663 20 | Ks 0.700 0.700 0.700 21 | Ke 0.000 0.000 0.000 22 | 23 | newmtl shortBox 24 | Ns 10.0000 25 | Ni 1.0000 26 | illum 2 27 | Ka 0.725 0.71 0.68 # White 28 | Kd 0.725 0.71 0.68 29 | Ks 0 0 0 30 | Ke 0 0 0 31 | 32 | newmtl floor 33 | Ns 80 34 | Ni 1.5000 35 | d 1.0000 36 | Tr 0.0000 37 | Tf 1.0000 1.0000 1.0000 38 | illum 2 39 | Ka 0.7250 0.7100 0.6800 40 | Kd 0.7250 0.7100 0.6800 41 | Ks 0.3000 0.3000 0.3000 42 | Ke 0.0000 0.0000 0.0000 43 | 44 | newmtl ceiling 45 | Ns 10.0000 46 | Ni 1.5000 47 | d 1.0000 48 | Tr 0.0000 49 | Tf 1.0000 1.0000 1.0000 50 | illum 2 51 | Ka 0.7250 0.7100 0.6800 52 | Kd 0.7250 0.7100 0.6800 53 | Ks 0.0000 0.0000 0.0000 54 | Ke 0.0000 0.0000 0.0000 55 | 56 | newmtl backWall 57 | Ns 10.0000 58 | Ni 1.0000 59 | illum 2 60 | Ka 0.725 0.71 0.68 # White 61 | Kd 0.725 0.71 0.68 62 | Ks 0 0 0 63 | Ke 0 0 0 64 | 65 | newmtl leftWall 66 | Ns 10.0000 67 | Ni 1.5000 68 | illum 2 69 | Ka 0.63 0.065 0.05 # Red 70 | Kd 0.63 0.065 0.05 71 | Ks 0 0 0 72 | Ke 0 0 0 73 | 74 | 75 | newmtl rightWall 76 | Ns 10.0000 77 | Ni 1.5000 78 | illum 2 79 | Ka 0.3725 0.6480 0.3137 # Green 80 | Kd 0.3725 0.6480 0.3137 81 | Ks 0 0 0 82 | Ke 0 0 0 83 | 84 | 85 | newmtl light 86 | Ns 10.0000 87 | Ni 1.5000 88 | d 1.0000 89 | Tr 0.0000 90 | Tf 1.0000 1.0000 1.0000 91 | illum 2 92 | Ka 0.7800 0.7800 0.7800 93 | Kd 0.7800 0.7800 0.7800 94 | Ke 10 10 10 95 | Ks 0 0 0 -------------------------------------------------------------------------------- /imgui.ini: -------------------------------------------------------------------------------- 1 | [Debug] 2 | Pos=599,41 3 | Size=400,400 4 | Collapsed=0 5 | 6 | [test] 7 | Pos=800,0 8 | Size=200,600 9 | Collapsed=0 10 | 11 | [CONTROL] 12 | Pos=800,0 13 | Size=400,600 14 | Collapsed=0 15 | 16 | -------------------------------------------------------------------------------- /lib/gl_utils/include/gl_utils/gl_helpers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" 12 | { 13 | #endif 14 | 15 | typedef struct 16 | { 17 | char name[256]; 18 | int location; 19 | int size; 20 | GLenum type; 21 | bool normalize; 22 | size_t stride; 23 | size_t offset; 24 | } vert_attrib_t; 25 | 26 | void create_vert_attrib(vert_attrib_t* attrib, 27 | const char* name, 28 | int location, 29 | int size, 30 | GLenum type, 31 | bool normalize, 32 | size_t stride, 33 | size_t offset); 34 | 35 | void set_vertex_spec(vert_attrib_t* vert_spec, size_t num_attribs); 36 | 37 | GLuint create_buffer(const void* data, size_t data_size, GLenum usage, GLenum access_type); 38 | 39 | void delete_buffer(GLuint buf); 40 | 41 | // Shaders 42 | 43 | GLuint compile_shader(const char* source, size_t size, GLenum shader_type); 44 | 45 | GLuint load_shader_source(const char* pathname, GLenum shader_type); 46 | 47 | void destroy_shader(GLuint shader); 48 | 49 | GLuint link_shader_program(GLuint* shaders, size_t num_shaders); 50 | 51 | void destroy_program(GLuint program); 52 | 53 | void detach_shaders(GLuint program, GLuint* shaders, size_t num_shaders); 54 | 55 | #ifdef __cplusplus 56 | } 57 | #endif 58 | 59 | -------------------------------------------------------------------------------- /lib/gl_utils/src/gl_helpers.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | // Vertex Specs 5 | void create_vert_attrib(vert_attrib_t* attrib, 6 | const char* name, 7 | int location, 8 | int size, 9 | GLenum type, 10 | bool normalize, 11 | size_t stride, 12 | size_t offset) 13 | { 14 | if (strlen(name) > 256) 15 | return; 16 | strcpy(attrib->name, name); 17 | attrib->location = location; 18 | attrib->size = size; 19 | attrib->type = type; 20 | attrib->normalize = normalize; 21 | attrib->stride = stride; 22 | attrib->offset = offset; 23 | } 24 | 25 | void set_vertex_spec(vert_attrib_t* attribs, size_t num_attribs) 26 | { 27 | for (int i = 0; i < num_attribs; i++) 28 | { 29 | vert_attrib_t* attrib = attribs + i; 30 | 31 | glEnableVertexAttribArray(attrib->location); 32 | glVertexAttribPointer(attrib->location, attrib->size, attrib->type, 33 | attrib->normalize, attrib->stride, (void*) attrib->offset); 34 | 35 | } 36 | } 37 | 38 | GLuint create_buffer(const void* data, size_t data_size, GLenum usage, GLenum access_type) 39 | { 40 | GLuint buf; 41 | glGenBuffers(1, &buf); 42 | glBindBuffer(usage, buf); 43 | glBufferData(usage, data_size, data, access_type); 44 | glBindBuffer(usage, 0); 45 | 46 | return buf; 47 | } 48 | 49 | void delete_buffer(GLuint buf) 50 | { 51 | glDeleteBuffers(1, &buf); 52 | } 53 | 54 | // Shaders 55 | 56 | #define ERROR_BUFF_SIZE 512 57 | 58 | GLuint compile_shader(const char* source, size_t size, GLenum shader_type) 59 | { 60 | GLuint result = glCreateShader(shader_type); 61 | glShaderSource(result, 1, (const GLchar**) &source, (int*) &size); 62 | glCompileShader(result); 63 | 64 | int is_compiled; 65 | glGetShaderiv(result, GL_COMPILE_STATUS, (int*) &is_compiled); 66 | 67 | if (!(is_compiled == GL_TRUE)) 68 | { 69 | fprintf(stderr, "Compile issue:"); 70 | char error_buff[ERROR_BUFF_SIZE]; 71 | int max_length = 0; 72 | glGetShaderiv(result, GL_INFO_LOG_LENGTH, &max_length); 73 | glGetShaderInfoLog(result, max_length, &max_length, error_buff); 74 | 75 | error_buff[max_length] = 0; 76 | fprintf(stderr, "%s\n", error_buff); 77 | 78 | glDeleteShader(result); 79 | result = 0; 80 | } 81 | return result; 82 | } 83 | 84 | GLuint load_shader_source(const char* pathname, GLenum shader_type) 85 | { 86 | if (!pathname) 87 | return 0; 88 | 89 | GLuint result; 90 | FILE* file = NULL; 91 | size_t file_size; 92 | char* shader_string_buffer; 93 | 94 | file = fopen(pathname, "r+"); 95 | if (!file) 96 | { 97 | fprintf(stderr, "Unable to load file %s.\n", pathname); 98 | return 0; 99 | } 100 | fseek(file, 0L, SEEK_END); 101 | file_size = ftell(file); 102 | rewind(file); 103 | 104 | shader_string_buffer = (char*) malloc(file_size + 1); 105 | if (fread(shader_string_buffer, 1, file_size, file) != file_size) 106 | { 107 | fprintf(stderr, "Read error when reading %s.\n", pathname); 108 | return 0; 109 | } 110 | shader_string_buffer[file_size] = 0; 111 | 112 | result = compile_shader(shader_string_buffer, file_size, shader_type); 113 | 114 | free(shader_string_buffer); 115 | fclose(file); 116 | return result; 117 | } 118 | 119 | void destroy_shader(GLuint shader) 120 | { 121 | if (!shader) 122 | return; 123 | 124 | glDeleteShader(shader); 125 | } 126 | 127 | GLuint link_shader_program(GLuint* shaders, size_t num_shaders) 128 | { 129 | if (!shaders) 130 | return 0; 131 | 132 | GLuint program = glCreateProgram(); 133 | for (size_t i = 0; i < num_shaders; i++) 134 | { 135 | if (!shaders[i]) 136 | continue; 137 | glAttachShader(program, shaders[i]); 138 | } 139 | 140 | glLinkProgram(program); 141 | 142 | int is_linked; 143 | glGetProgramiv(program, GL_LINK_STATUS, &is_linked); 144 | 145 | if (!is_linked) 146 | { 147 | fprintf(stderr, "Linking error\n"); 148 | 149 | char error_buff[ERROR_BUFF_SIZE]; 150 | int max_length = 0; 151 | glGetProgramiv(program, GL_INFO_LOG_LENGTH, &max_length); 152 | glGetProgramInfoLog(program, max_length, &max_length, error_buff); 153 | 154 | error_buff[max_length] = 0; 155 | fprintf(stderr, "%s\n", error_buff); 156 | 157 | glDeleteProgram(program); 158 | return 0; 159 | } 160 | 161 | return program; 162 | } 163 | 164 | void destroy_program(GLuint program) 165 | { 166 | glDeleteProgram(program); 167 | } 168 | 169 | void detach_shaders(GLuint program, GLuint* shaders, size_t num_shaders) 170 | { 171 | for (size_t i = 0; i < num_shaders; i++) 172 | { 173 | glDetachShader(program, shaders[i]); 174 | } 175 | } 176 | 177 | -------------------------------------------------------------------------------- /paper/elsarticle-template-1-num.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \citation{Smith:2012qr} 3 | \citation{Smith:2013jd} 4 | \@writefile{toc}{\contentsline {section}{\numberline {1}The First Section}{1}} 5 | \newlabel{S:1}{{1}{1}} 6 | \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Subsection One}{2}} 7 | \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Table caption}}{2}} 8 | \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Subsection Two}{2}} 9 | \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Figure caption}}{3}} 10 | \newlabel{eq:emc}{{1}{3}} 11 | \@writefile{toc}{\contentsline {section}{\numberline {2}The Second Section}{3}} 12 | \newlabel{S:2}{{2}{3}} 13 | \bibstyle{model1-num-names} 14 | \bibdata{sample.bib} 15 | -------------------------------------------------------------------------------- /paper/elsarticle-template-1-num.dvi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latencyhiding/voxel_cone_tracing/fb8d2717e46c9e53c65dc619ad1710df1f196ef3/paper/elsarticle-template-1-num.dvi -------------------------------------------------------------------------------- /paper/elsarticle-template-1-num.log: -------------------------------------------------------------------------------- 1 | This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex 2017.5.5) 5 MAY 2017 04:24 2 | entering extended mode 3 | restricted \write18 enabled. 4 | %&-line parsing enabled. 5 | **elsarticle-template-1-num.tex 6 | (./elsarticle-template-1-num.tex 7 | LaTeX2e <2016/02/01> 8 | Babel <3.9q> and hyphenation patterns for 5 language(s) loaded. 9 | (/usr/share/texlive/texmf-dist/tex/latex/elsarticle/elsarticle.cls 10 | Document Class: elsarticle 2009/09/17, 1.2.0: Elsevier Ltd 11 | \@bls=\dimen102 12 | (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls 13 | Document Class: article 2014/09/29 v1.4h Standard LaTeX document class 14 | (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo 15 | File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option) 16 | ) 17 | \c@part=\count79 18 | \c@section=\count80 19 | \c@subsection=\count81 20 | \c@subsubsection=\count82 21 | \c@paragraph=\count83 22 | \c@subparagraph=\count84 23 | \c@figure=\count85 24 | \c@table=\count86 25 | \abovecaptionskip=\skip41 26 | \belowcaptionskip=\skip42 27 | \bibindent=\dimen103 28 | ) 29 | (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty 30 | Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) 31 | 32 | (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty 33 | Package: keyval 2014/10/28 v1.15 key=value parser (DPC) 34 | \KV@toks@=\toks14 35 | ) 36 | (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty 37 | Package: graphics 2016/01/03 v1.0q Standard LaTeX Graphics (DPC,SPQR) 38 | 39 | (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty 40 | Package: trig 2016/01/03 v1.10 sin cos tan (DPC) 41 | ) 42 | (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg 43 | File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live 44 | ) 45 | Package graphics Info: Driver file: dvips.def on input line 95. 46 | 47 | (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def 48 | File: dvips.def 2015/12/30 v3.0k Driver-dependent file (DPC,SPQR) 49 | )) 50 | \Gin@req@height=\dimen104 51 | \Gin@req@width=\dimen105 52 | ) 53 | (/usr/share/texlive/texmf-dist/tex/latex/psnfss/pifont.sty 54 | Package: pifont 2005/04/12 PSNFSS-v9.2a Pi font support (SPQR) 55 | LaTeX Font Info: Try loading font information for U+pzd on input line 63. 56 | 57 | (/usr/share/texlive/texmf-dist/tex/latex/psnfss/upzd.fd 58 | File: upzd.fd 2001/06/04 font definitions for U/pzd. 59 | ) 60 | LaTeX Font Info: Try loading font information for U+psy on input line 64. 61 | 62 | (/usr/share/texlive/texmf-dist/tex/latex/psnfss/upsy.fd 63 | File: upsy.fd 2001/06/04 font definitions for U/psy. 64 | )) 65 | \c@tnote=\count87 66 | \c@fnote=\count88 67 | \c@cnote=\count89 68 | \c@ead=\count90 69 | \c@author=\count91 70 | \@eadauthor=\toks15 71 | \c@affn=\count92 72 | \absbox=\box26 73 | \keybox=\box27 74 | \Columnwidth=\dimen106 75 | \space@left=\dimen107 76 | \els@boxa=\box28 77 | \els@boxb=\box29 78 | \leftMargin=\dimen108 79 | \@enLab=\toks16 80 | \@sep=\skip43 81 | \@@sep=\skip44 82 | 83 | (/usr/share/texlive/texmf-dist/tex/latex/natbib/natbib.sty 84 | Package: natbib 2010/09/13 8.31b (PWD, AO) 85 | \bibhang=\skip45 86 | \bibsep=\skip46 87 | LaTeX Info: Redefining \cite on input line 694. 88 | \c@NAT@ctr=\count93 89 | ) 90 | \splwrite=\write3 91 | \openout3 = `elsarticle-template-1-num.spl'. 92 | 93 | ) 94 | (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty 95 | Package: amssymb 2013/01/14 v3.01 AMS font symbols 96 | 97 | (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty 98 | Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support 99 | \@emptytoks=\toks17 100 | \symAMSa=\mathgroup4 101 | \symAMSb=\mathgroup5 102 | LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' 103 | (Font) U/euf/m/n --> U/euf/b/n on input line 106. 104 | )) 105 | (/usr/share/texlive/texmf-dist/tex/latex/lineno/lineno.sty 106 | Package: lineno 2005/11/02 line numbers on paragraphs v4.41 107 | \linenopenalty=\count94 108 | \output=\toks18 109 | \linenoprevgraf=\count95 110 | \linenumbersep=\dimen109 111 | \linenumberwidth=\dimen110 112 | \c@linenumber=\count96 113 | \c@pagewiselinenumber=\count97 114 | \c@LN@truepage=\count98 115 | \c@internallinenumber=\count99 116 | \c@internallinenumbers=\count100 117 | \quotelinenumbersep=\dimen111 118 | \bframerule=\dimen112 119 | \bframesep=\dimen113 120 | \bframebox=\box30 121 | LaTeX Info: Redefining \\ on input line 3056. 122 | ) 123 | No file elsarticle-template-1-num.aux. 124 | \openout1 = `elsarticle-template-1-num.aux'. 125 | 126 | LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 70. 127 | LaTeX Font Info: ... okay on input line 70. 128 | LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 70. 129 | LaTeX Font Info: ... okay on input line 70. 130 | LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 70. 131 | LaTeX Font Info: ... okay on input line 70. 132 | LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 70. 133 | LaTeX Font Info: ... okay on input line 70. 134 | LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 70. 135 | LaTeX Font Info: ... okay on input line 70. 136 | LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 70. 137 | LaTeX Font Info: ... okay on input line 70. 138 | LaTeX Font Info: Try loading font information for U+msa on input line 121. 139 | (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd 140 | File: umsa.fd 2013/01/14 v3.01 AMS symbols A 141 | ) 142 | LaTeX Font Info: Try loading font information for U+msb on input line 121. 143 | 144 | (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd 145 | File: umsb.fd 2013/01/14 v3.01 AMS symbols B 146 | ) 147 | 148 | Package natbib Warning: Citation `Smith:2012qr' on page 1 undefined on input li 149 | ne 132. 150 | 151 | 152 | Package natbib Warning: Citation `Smith:2013jd' on page 1 undefined on input li 153 | ne 132. 154 | 155 | [1 156 | 157 | 158 | ] 159 | LaTeX Font Info: Try loading font information for OMS+cmr on input line 137. 160 | 161 | (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd 162 | File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions 163 | ) 164 | LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available 165 | (Font) Font shape `OMS/cmsy/m/n' tried instead on input line 137. 166 | [2] 167 | 168 | ! LaTeX Error: File `placeholder' not found. 169 | 170 | See the LaTeX manual or LaTeX Companion for explanation. 171 | Type H for immediate help. 172 | ... 173 | 174 | l.169 ...raphics[width=0.4\linewidth]{placeholder} 175 | 176 | I could not locate the file with any of these extensions: 177 | .eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps 178 | Try typing to proceed. 179 | If that doesn't work, type X to quit. 180 | 181 | 182 | LaTeX Warning: Reference `S:1' on page 3 undefined on input line 183. 183 | 184 | 185 | Overfull \hbox (8.08151pt too wide) in paragraph at lines 187--188 186 | \OT1/cmr/m/n/12 morbi tris-tique senec-tus et ne-tus et male-suada fames ac tur 187 | pis eges-tas. Quisque 188 | [] 189 | 190 | [3] 191 | No file elsarticle-template-1-num.bbl. 192 | 193 | Package natbib Warning: There were undefined citations. 194 | 195 | [4] (./elsarticle-template-1-num.aux) 196 | 197 | LaTeX Warning: There were undefined references. 198 | 199 | 200 | LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. 201 | 202 | ) 203 | Here is how much of TeX's memory you used: 204 | 1673 strings out of 494911 205 | 19933 string characters out of 6179863 206 | 71912 words of memory out of 5000000 207 | 4966 multiletter control sequences out of 15000+600000 208 | 10574 words of font info for 39 fonts, out of 8000000 for 9000 209 | 36 hyphenation exceptions out of 8191 210 | 32i,7n,30p,741b,206s stack positions out of 5000i,500n,10000p,200000b,80000s 211 | 212 | Output written on elsarticle-template-1-num.dvi (4 pages, 10584 bytes). 213 | -------------------------------------------------------------------------------- /paper/elsarticle-template-1-num.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/latencyhiding/voxel_cone_tracing/fb8d2717e46c9e53c65dc619ad1710df1f196ef3/paper/elsarticle-template-1-num.spl -------------------------------------------------------------------------------- /paper/elsarticle-template-1-num.tex: -------------------------------------------------------------------------------- 1 | %% This is file `elsarticle-template-1-num.tex', 2 | %% 3 | %% Copyright 2009 Elsevier Ltd 4 | %% 5 | %% This file is part of the 'Elsarticle Bundle'. 6 | %% --------------------------------------------- 7 | %% 8 | %% It may be distributed under the conditions of the LaTeX Project Public 9 | %% License, either version 1.2 of this license or (at your option) any 10 | %% later version. The latest version of this license is in 11 | %% http://www.latex-project.org/lppl.txt 12 | %% and version 1.2 or later is part of all distributions of LaTeX 13 | %% version 1999/12/01 or later. 14 | %% 15 | %% Template article for Elsevier's document class `elsarticle' 16 | %% with numbered style bibliographic references 17 | %% 18 | %% $Id: elsarticle-template-1-num.tex 149 2009-10-08 05:01:15Z rishi $ 19 | %% $URL: http://lenova.river-valley.com/svn/elsbst/trunk/elsarticle-template-1-num.tex $ 20 | %% 21 | \documentclass[preprint,12pt]{elsarticle} 22 | 23 | %% Use the option review to obtain double line spacing 24 | %% \documentclass[preprint,review,12pt]{elsarticle} 25 | 26 | %% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn 27 | %% for a journal layout: 28 | %% \documentclass[final,1p,times]{elsarticle} 29 | %% \documentclass[final,1p,times,twocolumn]{elsarticle} 30 | %% \documentclass[final,3p,times]{elsarticle} 31 | %% \documentclass[final,3p,times,twocolumn]{elsarticle} 32 | %% \documentclass[final,5p,times]{elsarticle} 33 | %% \documentclass[final,5p,times,twocolumn]{elsarticle} 34 | 35 | %% The graphicx package provides the includegraphics command. 36 | \usepackage{graphicx} 37 | %% The amssymb package provides various useful mathematical symbols 38 | \usepackage{amssymb} 39 | %% The amsthm package provides extended theorem environments 40 | %% \usepackage{amsthm} 41 | 42 | %% The lineno packages adds line numbers. Start line numbering with 43 | %% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on 44 | %% for the whole article with \linenumbers after \end{frontmatter}. 45 | \usepackage{lineno} 46 | 47 | %% natbib.sty is loaded by default. However, natbib options can be 48 | %% provided with \biboptions{...} command. Following options are 49 | %% valid: 50 | 51 | %% round - round parentheses are used (default) 52 | %% square - square brackets are used [option] 53 | %% curly - curly braces are used {option} 54 | %% angle - angle brackets are used