From 3e500812fd548510f066198312aed8c81dde4a27 Mon Sep 17 00:00:00 2001 From: jmac-lin-oculo Date: Tue, 26 Nov 2024 12:14:26 +0000 Subject: [PATCH] final updates --- Reflective Report.aux | 8 ++++---- Reflective Report.md | 18 +++++++++--------- Reflective Report.pdf | Bin 1119838 -> 1120756 bytes Reflective Report.synctex.gz | Bin 36959 -> 39957 bytes Reflective Report.tex | 35 +++++++++++++++-------------------- 5 files changed, 28 insertions(+), 33 deletions(-) diff --git a/Reflective Report.aux b/Reflective Report.aux index 75819cf..861e1ac 100644 --- a/Reflective Report.aux +++ b/Reflective Report.aux @@ -20,20 +20,20 @@ \newlabel{introduction}{{}{1}{Introduction}{section*.1}{}} \@writefile{toc}{\contentsline {subsection}{UML}{2}{section*.2}\protected@file@percent } \newlabel{uml}{{}{2}{UML}{section*.2}{}} -\BKM@entry{id=3,dest={73656374696F6E2A2E33},srcline={146}}{5C3337365C3337375C303030535C303030755C303030635C303030635C303030655C303030735C303030735C303030655C30303073} +\BKM@entry{id=3,dest={73656374696F6E2A2E33},srcline={141}}{5C3337365C3337375C303030535C303030755C303030635C303030635C303030655C303030735C303030735C303030655C30303073} \@writefile{toc}{\contentsline {subsection}{Successes}{4}{section*.3}\protected@file@percent } \newlabel{successes}{{}{4}{Successes}{section*.3}{}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces ASCII post-processing shader demo.}}{5}{figure.1}\protected@file@percent } \newlabel{fig:figure1}{{1}{5}{ASCII post-processing shader demo}{figure.1}{}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Per-light shadow mapping.}}{6}{figure.2}\protected@file@percent } \newlabel{fig:figure2}{{2}{6}{Per-light shadow mapping}{figure.2}{}} -\BKM@entry{id=4,dest={73656374696F6E2A2E34},srcline={244}}{5C3337365C3337375C3030304C5C303030695C3030306D5C303030695C303030745C303030615C303030745C303030695C3030306F5C3030306E5C30303073} -\BKM@entry{id=5,dest={73656374696F6E2A2E35},srcline={265}}{5C3337365C3337375C303030435C3030306F5C3030306E5C303030635C3030306C5C303030755C303030735C303030695C3030306F5C3030306E} +\BKM@entry{id=4,dest={73656374696F6E2A2E34},srcline={239}}{5C3337365C3337375C3030304C5C303030695C3030306D5C303030695C303030745C303030615C303030745C303030695C3030306F5C3030306E5C30303073} +\BKM@entry{id=5,dest={73656374696F6E2A2E35},srcline={260}}{5C3337365C3337375C303030435C3030306F5C3030306E5C303030635C3030306C5C303030755C303030735C303030695C3030306F5C3030306E} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Screen-space ambient occlusion shader.}}{8}{figure.3}\protected@file@percent } \newlabel{fig:figure3}{{3}{8}{Screen-space ambient occlusion shader}{figure.3}{}} \@writefile{toc}{\contentsline {subsection}{Limitations}{8}{section*.4}\protected@file@percent } \newlabel{limitations}{{}{8}{Limitations}{section*.4}{}} -\BKM@entry{id=6,dest={73656374696F6E2A2E36},srcline={280}}{5C3337365C3337375C303030425C303030695C303030625C3030306C5C303030695C3030306F5C303030675C303030725C303030615C303030705C303030685C30303079} +\BKM@entry{id=6,dest={73656374696F6E2A2E36},srcline={275}}{5C3337365C3337375C303030425C303030695C303030625C3030306C5C303030695C3030306F5C303030675C303030725C303030615C303030705C303030685C30303079} \@writefile{toc}{\contentsline {subsection}{Conclusion}{9}{section*.5}\protected@file@percent } \newlabel{conclusion}{{}{9}{Conclusion}{section*.5}{}} \@writefile{toc}{\contentsline {subsection}{Bibliography}{9}{section*.6}\protected@file@percent } diff --git a/Reflective Report.md b/Reflective Report.md index 64f51df..2e2420d 100644 --- a/Reflective Report.md +++ b/Reflective Report.md @@ -3,32 +3,32 @@ The practical artefact implements many basic features of rendering with DirectX 11 (drawing geometry, using shaders to light pixels, altering pipeline states, mapping textures) as well as several more advanced techniques (SSAO, post-processing, normal mapping, shadow mapping, PBR shader) and scene control functionality (object hierarchy, resource management, JSON deserialisation). These features are demonstrated via a scene created using Blender. ## UML ![[UML.png]] -The artefact supports point, spot, and directional lights (up to 8 simultaneously) and shadow maps for spot/directional lights. Meshes are shaded with a PBR shader including albedo and normal mapping, and the artefact makes use of solid and wireframe rasterisers and triangle and line assembler modes. The artefact makes use of the full-screen-quad technique to implement post-processing, and supports multiple render passes (colour, normal, depth, SSAO). The artefact also allows for resizing of the window/viewport. During drawing, scene objects are sorted according to the shader used, to minimise the required context switches. When debug view is enabled, object axes and bounding boxes are drawn. These features are implemented via the `FGraphicsEngine` class. +The artefact supports point, spot, and directional lights (up to 8 simultaneously, though this can be increased trivially) and shadow maps for spot/directional lights. Meshes are shaded with a physically-based shader including albedo, normal mapping, roughness and metallic inputs, and the artefact makes use of both solid and wireframe rasterisers and both triangle and line assembler modes. The artefact makes use of the full-screen-quad technique to implement post-processing, and supports multiple render passes (colour, normal, depth, SSAO). The artefact also allows for resizing of the window/viewport, updating the various screen buffers accordingly. During drawing, scene objects are sorted according to the shader used, to minimise the required context switches. When debug view is enabled, object axes and bounding boxes are drawn. These features are implemented via the `FGraphicsEngine` class. -The post-processing shader includes a sharpening filter, and a sophisticated ASCII-art shader inspired by a YouTube video by Acerola (Gunnell (2024))^[7]. It also features an implementation of depth-based fog and a skybox. SSAO is performed in a separate pass by a dedicated shader. +The post-processing shader includes a sharpening filter, and a sophisticated ASCII-art shader inspired by a YouTube video by Acerola (Gunnell (2024))^[7] which reduces the colour palette and uses ASCII characters as a matrix for dithering between neighbouring colours. It also features an implementation of depth-based fog and a skybox. SSAO is performed in a separate pass by a dedicated shader, and makes use of the depth and normal buffers. Most meshes make use of the `PhysicalShader.hlsl` shader, which provides a thorough implementation of physically based rendering according to the mathematical formulae described by de Vries (2016)^[10]. -The artefact is built around a scene graph model, where a collection of objects (empty, mesh, light, camera are supported) are organised hierarchically using per-object transforms, similar to the `Transform` class provided by Unity (Unity (2024))^[6]. Transforms have parents and children, and may be transformed (translation, rotation, scaling) in both local and world space, implemented by the `FTransform` class. The `FScene` class manages objects, and provides functionality (start and update) which can be overridden by subclasses to create custom scenes (see `SurrealDemoScene`, `MyScene`, etc). +The engine is built around a scene graph, where a collection of objects (empty, mesh, light, camera are all supported) are organised hierarchically using per-object transforms, similar to the `Transform` class provided by Unity (Unity (2024))^[6]. Transforms have parents and children, and may be transformed (translation, rotation, scaling) in both local and world space, implemented by functions inside the `FTransform` class. This class also stores the world and local transform matrices of the object eliminating the need for these to be recalculated for rendering or transformation. The `FScene` class manages objects, and provides functionality (start and update) which can be overridden by subclasses to create custom scenes (see `SurrealDemoScene`, `MyScene`, etc). It also provides functionality to create a list of objects to be created when the scene initialises, which is necessary for JSON loading. Scenes may be stored on disk as JSON, which is deserialized at runtime. Required assets are loaded as needed. Materials may also be configured via JSON, allowing assignment of shader uniforms and textures. These parameters are stored within an `FMaterial` instance. JSON files are parsed by a custom algorithm, which includes support for block and line comments. -Loaded assets (meshes, textures, shaders) are managed by the `FResourceManager` class, preventing duplication and handling unloading assets when the program finishes. The artefact features a custom OBJ file loader, with the ability to load texture coordinates and compute tangents at runtime, implemented by the `FMesh` and `FMeshData` classes. +Loaded assets (meshes, textures, shaders) are managed by the `FResourceManager` class, handling unloading assets when the program finishes and preventing duplication. The artefact features a custom OBJ file loader, with the ability to load texture coordinates and compute tangents at runtime, implemented by the `FMesh` and `FMeshData` classes. ## Successes -One feature which was implemented successfully was post-processing support. This followed a standard technique where the scene is rendered to an intermediate buffer (rather than one of the framebuffers) which is then bound as a shader resource to be drawn on a single quad which fills the screen, allowing use of the shading language, along with data sampled from the intermediate buffers to produce a variety of stylistic effects (Magdics, et al. (2013))^[3]. The artefact closely follows this implementation, including the use of multiple render passes: colour, normal, depth, and SSAO buffers are exposed to the post-processing shader. The post-processing shader showcases an interesting stylised ASCII-art effect, as well as a sharpen filter. It is where the fog and skybox are drawn, based on the values in the depth buffer, eliminating the need for per-object fog or a separate skybox object. However, the current post-processing shader does not demonstrate use of the normal buffer for an effect, which is something that could be improved. Additionally, an optimisation could be made such that instead of the two triangles for a quad, a single triangle may be drawn which overfills the screen. This would improve the performance of the post-processing shader, but timing statistics show that the current shader has an extremely trivial performance cost (compared with drawing meshes). +One feature which was implemented successfully was post-processing support. This followed a standard technique where the scene is rendered to an intermediate buffer (rather than one of the framebuffers) which is then bound as a shader resource to be drawn on a single quad which fills the screen, allowing use of the shading language, along with data sampled from the intermediate buffers to produce a variety of stylistic effects (Magdics, et al. (2013))^[3]. The artefact closely follows this implementation, including the use of multiple render passes: colour, normal, depth, and SSAO buffers are exposed to the post-processing shader. The post-processing shader showcases an interesting stylised ASCII-art effect, as well as a sharpen filter. The former uses ASCII letters as a dithering mask to blend between colours in a reduced colour palette. This shader is also where the fog and skybox are drawn, based on the values in the depth buffer, eliminating the need for per-object fog or a separate skybox object. However, the current post-processing shader does not demonstrate use of the normal buffer for an effect, which is something that could be improved. Additionally, an optimisation could be made such that instead of the two triangles for a quad, a single triangle may be drawn which overfills the screen. This would improve the performance of the post-processing shader, but timing statistics show that the current shader has an extremely trivial performance cost (compared with drawing mesh objects). ![[ascii_postprocess.png]] -Another feature the artefact showcases is normal mapping. This is a somewhat advanced technique which makes use of an additional texture (a normal map) during shading to add the impression of denser surface detail, without additional geometry. This is done by using tangents and bitangents (vectors perpendicular to one another and to the surface normal), which represent the direction of the U and V texture coordinate axes in 3D space, to perturb the original surface normal according to the normal map texture (de Vries (2013))^[2]. The texture defines how to weight the sum of the normal, tangent, and bitangent vectors to produce the new surface normal. The artefact implements this using a T-B-N (tangent-bitangent-normal) matrix to transform the normal map colour value (in tangent space) into a 3D vector (in world space). This new normal is then used for lighting calculations instead of the normal given by the vertex data. Implementing this technique requires the provision of tangents, which are calculated by the mesh reading code at load time according to the algorithm described by Lengyel (2001)^[8]. This technique provides excellent surface detail and improves realism, however this additional calculation noticeably increases the time required to load large meshes, and this could be improved. +Another feature the artefact showcases is normal mapping. This is a somewhat advanced technique which makes use of an additional texture (a normal map) during shading to add the impression of denser surface detail, without additional geometry. This is done by using tangents and bitangents (vectors perpendicular to one another and to the surface normal), which represent the direction of the U and V texture coordinate axes in 3D space, to perturb the original surface normal according to the normal map texture (de Vries (2013))^[2]. The texture defines how to weight the sum of the normal, tangent, and bitangent vectors to produce the new surface normal. The artefact implements this using a T-B-N (tangent-bitangent-normal) matrix to transform the normal map colour value (in tangent space) into a 3D vector (in world space). This new normal is then used for lighting calculations instead of the normal given by the vertex data. Implementing this technique requires the provision of tangents, which are calculated by the mesh reading code at load time in my custom OBJ model loader, according to the algorithm described by Lengyel (2001)^[8]. This technique provides excellent surface detail and improves realism, however this additional calculation noticeably increases the time required to load large meshes, and this is something which could be improved. -The artefact also implements shadow mapping for spot and directional lights. This technique takes advantage of the depth-buffering solution to the visibility problem (the fundamental geometric problem which rendering involves) to resolve shadows without expensive raytracing; the scene is rendered from the perspective of each light, treating the light as a camera, and the resulting depth buffer is stored in a texture. This technique and its advantages are described by Everitt, Rege, and Cebenoyan (2001)^[1]. Later, when individual objects are rendered, this texture is sampled, and the value compared with the depth of the current geometry relative to the light. If the depth of the geometry is greater than the value in the texture, then the geometry must be shadowed. The artefact implements this technique by rendering all objects with a simple dedicated shader, with only a depth buffer bound. The artefact implements support for up to 8 lights total, though this number can be increased arbitrarily. However, the current implementation has limitations. The first of these is that spot lights are not supported; implementing support for these would require rendering the scene as a depth-cube-map from the light's position. The second limitation is that directional lights only render shadows in a fixed area around themselves, meaning that they must be positioned according to where the user wishes the shadow to have an effect. Dimitrov (2007)^[4] presents a way to resolve this by using multiple tiers of shadow maps (cascades) for directional lights, and by adjusting the position of these cascades according to the camera position to improve quality. +The artefact also implements shadow mapping for spot and directional lights. This technique takes advantage of the depth-buffering solution to the visibility problem (the fundamental geometric problem which rendering involves) to resolve shadows without expensive raytracing; the scene is rendered from the perspective of each light, treating the light as a camera, and the resulting depth buffer is stored in a texture. This technique and its advantages are described by Everitt, Rege, and Cebenoyan (2001)^[1]. Later, when individual objects are rendered, this texture is sampled, and the value is compared with the depth of the current geometry relative to the light. If the depth of the geometry is greater than the value in the texture, then the geometry must be shadowed. The artefact implements this technique by rendering all objects with a simple dedicated shader, with only a depth buffer bound. The artefact implements support for up to 8 lights total, though this number can be increased arbitrarily. However, the current implementation has limitations. The first of these is that spot lights are not supported; implementing support for these would require rendering the scene as a depth-cube-map from the light's position. The second limitation is that directional lights only render shadows in a fixed area around themselves, meaning that they must be positioned according to where the user wishes the shadow to have an effect. Dimitrov (2007)^[4] presents a way to resolve this by using multiple tiers of shadow maps (cascades) for directional lights, and by adjusting the position of these cascades according to the camera position to improve quality. Another limitation is that the artefact does not support blending/blurring to soften the jagged edges of shadows, a feature which most graphics engines offer which improves the visual look of mapped shadows and emulates the natural spread of lights which have non-zero source radius. ![[shadow_mapping.png]] -Another feature the artefact implements is screen space ambient occlusion (SSAO). This effect involves sampling the depth and normal buffers, generating randomly-offset samples in world space (relative to the pixel normal), and then testing those sampled positions against the depth buffer at that position. If the sample position is behind the depth buffer, the sample is treated as occluded. The ambient occlusion value is then provided by counting the number of samples which were not occluded. This implementation is based loosely on that described by Luna (2012)^[9]. An alteration made in the artefact is the use of a dithering matrix to compute random tangents/bitangents, giving AO an even, dithered look. The ambient occlusion values are output to a separate render target which is referenced by the post-processing shader. +Another feature the artefact implements is screen space ambient occlusion (SSAO). This effect involves sampling the depth and normal buffers, generating randomly-offset samples in world space (relative to the pixel normal), and then testing those sampled positions against the depth buffer at that position. If the sample position is behind the depth buffer, the sample is treated as occluded. The ambient occlusion value is then provided by counting the number of samples which were not occluded. This implementation is based loosely on that described by Luna (2012)^[9]. An alteration made in the artefact is the use of an ordered dithering matrix to compute random tangents/bitangents, giving AO an even, dithered look. The ambient occlusion values are output to a separate render target which is referenced by the post-processing shader. ![[ambient_occlusion.png]] ## Limitations One element of the framework which was never fully implemented was frustrum culling. I tried to develop an algorithm which would test the object's axis-aligned bounding-box against the view frustrum. Considering some test cases, I devised a solution where, after the bounding box corners are transformed into clip space, they can be trivially checked against the clip space bounds (if any AABB corners are within the clip space cube, then the object must be drawn). However, this solution missed several cases, for instance where the entire view frustrum was contained within the AABB, or if the AABB was very narrow and intersected across the middle of the frustrum without having contained corners. Despite adding additional checks intended to catch these edge cases, there still remain some scenarios where objects are incorrectly culled, and the frustrum culling feature is disabled in the current version of the project. In order to complete this implementation, it would be ideal to find a source paper describing a proven algorithm, such as the one presented by Sunar, Zin, and Sembok (2008)^[5]. ## Conclusion -The artefact successfully demonstrates a range of advanced techniques, arguably the most significant of which is shadow mapping, since it helps prevent the scene from looking flat, supplemented by the screen space ambient occlusion. The sample scene, which was created from scratch using Blender and inspired by surrealists like de Chirico, effectively showcases the majority of the functionality presented in the artefact. The sample scene skybox makes use of NASAs 2020 Deep Star Maps (https://svs.gsfc.nasa.gov/4851/ NASA/Goddard Space Flight Center Scientific Visualization Studio. Gaia DR2: ESA/Gaia/DPAC. Constellation figures based on those developed for the IAU by Alan MacRobert of Sky and Telescope magazine (Roger Sinnott and Rick Fienberg)). +The artefact successfully demonstrates a range of advanced techniques, arguably the most significant of which is shadow mapping, since it helps prevent the scene from looking flat, supplemented by the screen space ambient occlusion. The sample scene, which was created from scratch using Blender and inspired by surrealists like de Chirico, effectively showcases the majority of the functionality presented in the artefact. The sample scene skybox makes use of NASAs 2020 Deep Star Maps (https://svs.gsfc.nasa.gov/4851/ NASA/Goddard Space Flight Center Scientific Visualization Studio. Gaia DR2: ESA/Gaia/DPAC. Constellation figures based on those developed for the IAU by Alan MacRobert of Sky and Telescope magazine (Roger Sinnott and Rick Fienberg)). All textures and models are my own work, aside from the teapot and monkey models, which are included with Blender. ## Bibliography [1]: Everitt, C., Rege, A., and Cebenoyan, C. (2001) 'Hardware shadow mapping', _White paper, nVIDIA_, _2_. diff --git a/Reflective Report.pdf b/Reflective Report.pdf index 957afa30b39cb587beeef94bb3733b2d4c80e428..4c52e65af26fe7dbfbc9e6f07312e1d9508b7450 100644 GIT binary patch delta 17279 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 OG_d4SRdw}u;{pJg!&qhj delta 16341 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 Hd|3hj)jzrJ diff --git a/Reflective Report.tex b/Reflective Report.tex index 6a8abde..95056b2 100644 --- a/Reflective Report.tex +++ b/Reflective Report.tex @@ -94,13 +94,8 @@ \subsection{UML}\label{uml}} \newline \includegraphics{/mnt/REPOSITORY/Repository-of-Things/Coding/C/gdev50038-artefact-oculometric/UML_b.png}\\ The artefact supports point, spot, and directional lights (up to 8 -simultaneously) and shadow maps for spot/directional lights. Meshes are -shaded with a PBR shader including albedo and normal mapping, and the -artefact makes use of solid and wireframe rasterisers and triangle and -line assembler modes. The artefact makes use of the full-screen-quad -technique to implement post-processing, and supports multiple render -passes (colour, normal, depth, SSAO). The artefact also allows for -resizing of the window/viewport. During drawing, scene objects are +simultaneously, though this can be increased trivially) and shadow maps for spot/directional lights. Meshes are +shaded with a physically-based shader including albedo, normal mapping, roughness and metallic inputs, and the artefact makes use of both solid and wireframe rasterisers and both triangle and line assembler modes. The artefact makes use of the full-screen-quad technique to implement post-processing, and supports multiple render passes (colour, normal, depth, SSAO). The artefact also allows for resizing of the window/viewport, updating the various screen buffers accordingly. During drawing, scene objects are sorted according to the shader used, to minimise the required context switches. When debug view is enabled, object axes and bounding boxes are drawn. These features are implemented via the \texttt{FGraphicsEngine} @@ -108,7 +103,7 @@ \subsection{UML}\label{uml}} The post-processing shader includes a sharpening filter, and a sophisticated ASCII-art shader inspired by a YouTube video by Acerola -(Gunnell (2024))\textsuperscript{{[}1{]}}. It also features an +(Gunnell (2024))\textsuperscript{{[}1{]}} which reduces the colour palette and uses ASCII characters as a matrix for dithering between neighbouring colours. It also features an implementation of depth-based fog and a skybox. SSAO is performed in a separate pass by a dedicated shader. @@ -117,16 +112,16 @@ \subsection{UML}\label{uml}} according to the mathematical formulae described by de Vries (2016)\textsuperscript{{[}2{]}}. -The artefact is built around a scene graph model, where a collection of -objects (empty, mesh, light, camera are supported) are organised +The engine is built around a scene graph, where a collection of +objects (empty, mesh, light, camera are all supported) are organised hierarchically using per-object transforms, similar to the \texttt{Transform} class provided by Unity (Unity (2024))\textsuperscript{{[}3{]}}. Transforms have parents and children, and may be transformed (translation, rotation, scaling) in both local -and world space, implemented by the \texttt{FTransform} class. The +and world space, implemented by functions inside the \texttt{FTransform} class. This class also stores the world and local transform matrices of the object eliminating the need for these to be recalculated for rendering or transformation. The \texttt{FScene} class manages objects, and provides functionality (start and update) which can be overridden by subclasses to create custom -scenes (see \texttt{SurrealDemoScene}, \texttt{MyScene}, etc). +scenes (see \texttt{SurrealDemoScene}, \texttt{MyScene}, etc). It also provides functionality to create a list of objects to be created when the scene initialises, which is necessary for JSON loading. Scenes may be stored on disk as JSON, which is deserialized at runtime. Required assets are loaded as needed. Materials may also be configured @@ -155,7 +150,7 @@ \subsection{Successes}\label{successes}} closely follows this implementation, including the use of multiple render passes: colour, normal, depth, and SSAO buffers are exposed to the post-processing shader. The post-processing shader showcases an -interesting stylised ASCII-art effect, as well as a sharpen filter. It +interesting stylised ASCII-art effect, as well as a sharpen filter. The former uses ASCII letters as a dithering mask to blend between colours in a reduced colour palette. This shader is where the fog and skybox are drawn, based on the values in the depth buffer, eliminating the need for per-object fog or a separate skybox object. However, the current post-processing shader does not demonstrate @@ -165,7 +160,7 @@ \subsection{Successes}\label{successes}} overfills the screen. This would improve the performance of the post-processing shader, but timing statistics show that the current shader has an extremely trivial performance cost (compared with drawing -meshes).\\ +mesh objects).\\ \begin{figure}[H] \includegraphics{/mnt/REPOSITORY/Repository-of-Things/Coding/C/gdev50038-artefact-oculometric/ascii_postprocess.png} \caption{\label{fig:figure1} ASCII post-processing shader demo.} @@ -186,11 +181,11 @@ \subsection{Successes}\label{successes}} vector (in world space). This new normal is then used for lighting calculations instead of the normal given by the vertex data. Implementing this technique requires the provision of tangents, which -are calculated by the mesh reading code at load time according to the +are calculated by the mesh reading code at load time in my custom OBJ model loader, according to the algorithm described by Lengyel (2001)\textsuperscript{{[}6{]}}. This technique provides excellent surface detail and improves realism, however this additional calculation noticeably increases the time -required to load large meshes, and this could be improved. +required to load large meshes, and this is something which could be improved. \begin{figure}[H] \includegraphics{/mnt/REPOSITORY/Repository-of-Things/Coding/C/gdev50038-artefact-oculometric/shadow_mapping.png} @@ -204,7 +199,7 @@ \subsection{Successes}\label{successes}} as a camera, and the resulting depth buffer is stored in a texture. This technique and its advantages are described by Everitt, Rege, and Cebenoyan (2001)\textsuperscript{{[}7{]}}. Later, when individual -objects are rendered, this texture is sampled, and the value compared +objects are rendered, this texture is sampled, and the value is compared with the depth of the current geometry relative to the light. If the depth of the geometry is greater than the value in the texture, then the geometry must be shadowed. The artefact implements this technique by @@ -220,7 +215,7 @@ \subsection{Successes}\label{successes}} effect. Dimitrov (2007)\textsuperscript{{[}8{]}} presents a way to resolve this by using multiple tiers of shadow maps (cascades) for directional lights, and by adjusting the position of these cascades -according to the camera position to improve quality.\\ +according to the camera position to improve quality. Another limitation is that the artefact does not support blending/blurring to soften the jagged edges of shadows, a feature which most graphics engines offer which improves the visual look of mapped shadows and emulates the natural spread of lights which have non-zero source radius.\\ Another feature the artefact implements is screen space ambient occlusion (SSAO). This effect involves sampling the depth and normal @@ -231,7 +226,7 @@ \subsection{Successes}\label{successes}} value is then provided by counting the number of samples which were not occluded. This implementation is based loosely on that described by Luna (2012)\textsuperscript{{[}9{]}}. An alteration made in the artefact is -the use of a dithering matrix to compute random tangents/bitangents, +the use of an ordered dithering matrix to compute random tangents/bitangents, giving AO an even, dithered look. The ambient occlusion values are output to a separate render target which is referenced by the post-processing shader.\\ @@ -274,7 +269,7 @@ \subsection{Conclusion}\label{conclusion}} (\url{https://svs.gsfc.nasa.gov/4851/} NASA/Goddard Space Flight Center Scientific Visualization Studio. Gaia DR2: ESA/Gaia/DPAC. Constellation figures based on those developed for the IAU by Alan MacRobert of Sky -and Telescope magazine (Roger Sinnott and Rick Fienberg)). +and Telescope magazine (Roger Sinnott and Rick Fienberg)). All textures and models are my own work, aside from the teapot and monkey models, which are included with Blender. \hypertarget{bibliography}{% \subsection{Bibliography}\label{bibliography}}