<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://vista.su.domains/psych221wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bpatrick</id>
	<title>Psych 221 Image Systems Engineering - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://vista.su.domains/psych221wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bpatrick"/>
	<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Special:Contributions/Bpatrick"/>
	<updated>2026-04-18T16:57:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=PatrickThomasLee&amp;diff=61335</id>
		<title>PatrickThomasLee</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=PatrickThomasLee&amp;diff=61335"/>
		<updated>2024-12-13T21:41:20Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: Bpatrick moved page PatrickThomasLee to Water Surface Mesh Improvements for Underwater Imaging Simulations: Misspelled title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Water Surface Mesh Improvements for Underwater Imaging Simulations]]&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61334</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61334"/>
		<updated>2024-12-13T21:41:19Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: Bpatrick moved page PatrickThomasLee to Water Surface Mesh Improvements for Underwater Imaging Simulations: Misspelled title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61333</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61333"/>
		<updated>2024-12-13T21:38:45Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61332</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61332"/>
		<updated>2024-12-13T21:38:37Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw: test&lt;br /&gt;
== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61331</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61331"/>
		<updated>2024-12-13T21:38:28Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Manual: Test&lt;br /&gt;
== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61330</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61330"/>
		<updated>2024-12-13T21:37:44Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61329</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61329"/>
		<updated>2024-12-13T21:37:34Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{DISPLAYTITLE: Test}&lt;br /&gt;
== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61328</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61328"/>
		<updated>2024-12-13T21:37:23Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Test}}&lt;br /&gt;
== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61327</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61327"/>
		<updated>2024-12-13T21:32:06Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Appendix I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61326</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61326"/>
		<updated>2024-12-13T21:31:41Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Appendix I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
Trapezoidal Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeTrapezoids.m]&lt;br /&gt;
Rectangular Approximation of Sine Wave Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeSineApprox.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61325</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61325"/>
		<updated>2024-12-13T21:30:30Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Appendix I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
Rectangular Prism Submerge Scene: [https://github.com/bridgetepatrick/iset3d/blob/hblasinski/dev-oceanWaves/piSceneSubmergeRectangles.m]&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61320</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61320"/>
		<updated>2024-12-13T21:09:43Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Appendix II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
While we were able to get results using approximation built with cubes and trapezoid, something we hoped to get working was a method that directly used a mesh. We defined a mesh using a set of vertices and combinations of those vertices. This would give us a mesh of triangles, allowing us to create a much more accurate surface. However, we ran into a  problem with ISET3D and PBRT, where, even though the points were calculated, it wouldn&#039;t render the images properly. The primary method we attempted to implement with this was a 2D sine wave, simulating droplets on a surface. In the future, if this method were to work, it would greatly simplify our rendering process, and allow us to try different, more complex meshes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
*Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
*https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
*https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
*https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
&#039;&#039;&#039;Bridget:&#039;&#039;&#039;&lt;br /&gt;
Scheduled meetings with Henryk, Communicated with mentor and instructors, worked on MATLAB simulation, researched geometric sine wave representation methods, rendered geometric representation pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caelia:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched blue noise implementation methods, rendered blue noise pattern simulations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Brian:&#039;&#039;&#039;&lt;br /&gt;
Communicated with mentor and instructors, worked on MATLAB simulation, researched alternative mesh generation method with ISET3D and PBRT&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61312</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61312"/>
		<updated>2024-12-13T20:59:48Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
Future work for this project could include modifying the scene by submerging an object into a medium created by a new mesh.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
[Poisson-Disc intro] Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
[Poisson-Disc More] https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
[Sine Waves Introduction] https://arxiv.org/pdf/1109.6494&lt;br /&gt;
&lt;br /&gt;
[Effective Water Simulations] https://developer.nvidia.com/gpugems/gpugems/part-i-natural-effects/chapter-1-effective-water-simulation-physical-models&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61311</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61311"/>
		<updated>2024-12-13T20:58:55Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Conclusions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling [BN ref]. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points [PD ref], and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave patterns can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
The images rendered in the prior results section show that both geometric modifications and the addition of blue noise both add realistic texture to the cube. Through both of these methods, we learned that the simplest way to add texture to the scene is to modify the existing cube geometry into rectangular and trapezoidal prisms and add them in a desired pattern. &lt;br /&gt;
&lt;br /&gt;
Future work for this project could include modifying the scene by submerging an object into a medium created by a new mesh.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
[Poisson-Disc intro] Don P. Mitchell. 1991. [https://doi.org/10.1145/127719.122736 Spectrally optimal sampling for distribution ray tracing.]  SIGGRAPH Comput. Graph. 25, 4 (July 1991), 157–164.&lt;br /&gt;
&lt;br /&gt;
[Poisson-Disc More] https://jianweiguo.net/publications/papers/2015_JCST_BNMeshSurvey_compress.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61301</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61301"/>
		<updated>2024-12-13T20:46:26Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:trapezoids.png|Depiction of trapezoidal prism pattern&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61300</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61300"/>
		<updated>2024-12-13T20:45:38Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: trapezoids.png|400px|thumb|centre|Depiction of trapezoidal prism pattern]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61299</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61299"/>
		<updated>2024-12-13T20:45:18Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: trapezoids.png|400px|thumb|left|Depiction of trapezoidal prism pattern]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61298</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61298"/>
		<updated>2024-12-13T20:45:06Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
===Absorption===&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
===Scattering===&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:rectangles.png|Depiction of rectangular prism pattern&lt;br /&gt;
File:rectangles2.png|Depiction of rectangular prism pattern using more rectangles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: trapezoids.png|400px|thumb|centre|Depiction of trapezoidal prism pattern]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Trapezoids.png&amp;diff=61297</id>
		<title>File:Trapezoids.png</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Trapezoids.png&amp;diff=61297"/>
		<updated>2024-12-13T20:43:08Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Rectangles2.png&amp;diff=61296</id>
		<title>File:Rectangles2.png</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Rectangles2.png&amp;diff=61296"/>
		<updated>2024-12-13T20:43:00Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Rectangles.png&amp;diff=61294</id>
		<title>File:Rectangles.png</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Rectangles.png&amp;diff=61294"/>
		<updated>2024-12-13T20:41:10Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61291</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61291"/>
		<updated>2024-12-13T20:39:46Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1.png|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3.png|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61290</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61290"/>
		<updated>2024-12-13T20:39:06Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern1|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern2|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern3|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61288</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61288"/>
		<updated>2024-12-13T20:37:56Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern-1.jpg|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern-2.png|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern-3|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61287</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61287"/>
		<updated>2024-12-13T20:37:27Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:sine-pattern-1|Depiction of sine wave pattern without the cube &lt;br /&gt;
File:sine-pattern-2|Depiction of the sine pattern waves shape&lt;br /&gt;
File:sine-pattern-3|Depiction of original cube with the sine wave pattern added&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61286</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61286"/>
		<updated>2024-12-13T20:35:48Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:Sine-pattern-1|Lorem ipsum&lt;br /&gt;
File:Sine-pattern-2|Lorem ipsum&lt;br /&gt;
File:Sine-pattern-3|Lorem ipsum&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
[BN intro] https://eprints.bournemouth.ac.uk/22610/4/Blue_noise_sampling.pdf&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Sine-pattern1.png&amp;diff=61284</id>
		<title>File:Sine-pattern1.png</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Sine-pattern1.png&amp;diff=61284"/>
		<updated>2024-12-13T20:34:42Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Sine-pattern3.png&amp;diff=61283</id>
		<title>File:Sine-pattern3.png</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Sine-pattern3.png&amp;diff=61283"/>
		<updated>2024-12-13T20:34:22Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Sine-pattern2.png&amp;diff=61282</id>
		<title>File:Sine-pattern2.png</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Sine-pattern2.png&amp;diff=61282"/>
		<updated>2024-12-13T20:34:11Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61281</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61281"/>
		<updated>2024-12-13T20:27:18Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300 heights=200&amp;gt;&lt;br /&gt;
File:LightAttenuation.png|Lorem ipsum&lt;br /&gt;
File:LightAttenuation.png|Lorem ipsum&lt;br /&gt;
File:LightAttenuation.png|Lorem ipsum&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61280</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61280"/>
		<updated>2024-12-13T20:24:49Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61279</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61279"/>
		<updated>2024-12-13T20:24:24Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|300px|thumb|left|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|300px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|300px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61278</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61278"/>
		<updated>2024-12-13T20:23:54Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|200px|thumb|left|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|200px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|200px|thumb|right|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61277</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61277"/>
		<updated>2024-12-13T20:23:39Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|left|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|right|Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61275</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61275"/>
		<updated>2024-12-13T20:20:30Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Trapezoidal Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sine Wave Approximation with Rectangular Prisms &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61274</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61274"/>
		<updated>2024-12-13T20:19:17Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (Wang et al. 2023). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
&lt;br /&gt;
The geometric modifications to approximate wave pattern can be evaluated through the following images. &lt;br /&gt;
&lt;br /&gt;
=== Rectangular Prisms ===&lt;br /&gt;
&lt;br /&gt;
=== Trapezoidal Prisms ===&lt;br /&gt;
&lt;br /&gt;
=== Rectangular Si&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61267</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61267"/>
		<updated>2024-12-13T20:03:08Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Geometric Modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (https://ieeexplore.ieee.org/document/10172181). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of rectangular prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61266</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61266"/>
		<updated>2024-12-13T20:00:51Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Underwater imaging is an important problem in the field of computer graphics due to a variety of factors, including the difficulty of the problem itself and the central role the idea of submerging cameras in a medium is in rendering. In the film industry, we look to movies like Avatar 2, which make extensive use of underwater imaging, while in academia, we have studies looking at the role of underwater imaging in enhancing the quality of images taken from an underwater perspective (https://ieeexplore.ieee.org/document/10172181). While the rendering of the scene itself has already been done well, one aspect that it lacks is the proper rendering of the surfaces of water. This affects the actual render in two ways. The first, which is in a non-underwater frame of reference, looking at the surface itself. The second, which we are focusing on, is the effect it has on our actual underwater frame of reference in the way it casts shadows onto the underwater scene. By doing this, we hope to be able to generate underwater images that are more realistic.&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
Our work is based on two categories of previous work. The first is the rendering of the underwater scene itself. We primarily derived this from a modified version of ISET3D&#039;s tutorial script, which generates a simple baseline from which we will build up. The second is the modification of the surface of the underwater scene as mentioned above, and we chose a number of methods based on prior knowledge of water surface movements.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
We begin with the baseline created using a modified version of the ISET3D repository&#039;s tutorial code. With it, we use ISET3D to build up a recipe for a scene containing two things. The first is the actual water itself, which has variations depending on the type of water we want to render (seawater or freshwater). The water is created as a simple cube, with 6 flat surfaces. The second is the object within the scene that is used to visualize the actual effects of the medium as well as any other factors, in our case the shadows cast by the surface. For our object, we used a Macbeth Chart. After the recipe is generated, it is passed into PBRT (Physically Based Rendering Tool). PBRT renders the scene using rules derived from the way real optics work by creating simulated lights and materials, and then rendering the way the two interact with each other. The reason this is our baseline is that while the rendering of the medium itself is quite good, it doesn&#039;t accurately represent what a real scene would look like; an ocean&#039;s surface is never perfectly flat.&lt;br /&gt;
&lt;br /&gt;
=== Geometric Modifications ===&lt;br /&gt;
This method aimed to develop and explore geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface. The new pattern was implemented on the face of the cube that points towards the camera. &lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, explored the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61253</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61253"/>
		<updated>2024-12-13T19:51:42Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, 5pi/12, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61251</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61251"/>
		<updated>2024-12-13T19:51:08Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to pi/12, pi/6, pi/4, pi/3, and pi/2. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 2: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61249</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61249"/>
		<updated>2024-12-13T19:50:38Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to &amp;lt;math&amp;gt; pi/12, pi/6, pi/4, pi/3, and pi/2 &amp;lt;/math&amp;gt;. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approx_math.jpg|400px|thumb|centre|Fig. 1: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61247</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61247"/>
		<updated>2024-12-13T19:49:56Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to &amp;lt;math&amp;gt; pi/12, pi/6, pi/4, pi/3, and pi/2 &amp;lt;/math&amp;gt;. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: sine_wave_approximation_math.jpg|400px|thumb|centre|Fig. 1: Representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=File:Sine_wave_approx_math.jpg&amp;diff=61245</id>
		<title>File:Sine wave approx math.jpg</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=File:Sine_wave_approx_math.jpg&amp;diff=61245"/>
		<updated>2024-12-13T19:49:07Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61234</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61234"/>
		<updated>2024-12-13T19:44:47Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water. Water behaves differently than air, so attenuation must be handled differently in underwater imaging.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to &amp;lt;math&amp;gt; pi/12, pi/6, pi/4, pi/3, and pi/2 &amp;lt;/math&amp;gt;. The heights of the cubes were then scaled in order to create a visible wave pattern. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Visual representation of sine wave approximation using rectangles.]]&lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61225</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61225"/>
		<updated>2024-12-13T19:41:34Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s initial flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to &amp;lt;math&amp;gt; π/12, π/6, π/4, π/3, and π/2 &amp;lt;/math&amp;gt;. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61215</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=61215"/>
		<updated>2024-12-13T19:37:39Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Underwater imaging is difficult largely due to light attenuation. Attenuation in this case refers to the reduction in the intensity of light as it passes through the water.&lt;br /&gt;
&lt;br /&gt;
[[File: LightAttenuation.png|400px|thumb|centre|Fig. 1: Simplification of the different ways that light interacts with water as a medium.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Absorption&#039;&#039;&#039;&lt;br /&gt;
The absorption of light, in the scope of this project, is caused by the water molecules of the medium interacting with certain energy levels of light, and consequently absorbing specific wavelengths of light. Light absorption directly affects the quantity and energy level of the light that a camera will use at an imaging location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scattering&#039;&#039;&#039;&lt;br /&gt;
Light interacts with water molecules and impurities to be absorbed and re-emitted differently. The resulting light rays have a deviated path, and they may have a different wavelength.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s inital flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation &amp;lt;math&amp;gt; y = sin(x) &amp;lt;/math&amp;gt;, where x values were set to &amp;lt;math&amp;gt; pi/12, pi/6, pi//4, pi/3, and pi/2 &amp;lt;/math&amp;gt;. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
In some computer graphic applications, designers use blue noise dithering to texture the surface of water in a non-photorealistic way. Blue noise is a sampling pattern that adds an aspect of uniformity to random sampling. In layman&#039;s terms, a set of points satisfies blue noise sampling if all points have a random location whilst maintaining an approximately standard distance between each other. Poisson-Disc sampling is one possible method of obtaining this set of points, and it was the method of choice for texturing the cube face in this study.&lt;br /&gt;
&lt;br /&gt;
Modifying the cube face geometry involved the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blue Noise Locations&#039;&#039;&#039;&lt;br /&gt;
Treating the sampling points as pixels, small meshes can be added to the cube face at each pixel location. To execute this, a Poisson-Disc sampling function takes in boundary conditions, minimum point distances, and a specified number of points to generate the desired pixel locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cube Pixels&#039;&#039;&#039;&lt;br /&gt;
Multiple cube meshes were created and shrunken down to act as “pixels” for the blue noise texture. Each cube-pixel was then added to the cube face in each pixel location. This was done in a loop, where each cube-pixel was individually created and added to the respective pixel location indicated at the time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Pixels&#039;&#039;&#039;&lt;br /&gt;
To observe a surface pattern that is a closer approximation to random destructive wave patterns, the method was repeated with trapezoidal-shaped “pixels” instead. Each trapezoidal-pixel was added to the cube face in a similar method as the cube-pixels, with the core difference being the defined trapezoidal geometries being used for each pixel instead of a cube geometry.&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60369</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60369"/>
		<updated>2024-12-13T00:39:02Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Sine Wave */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
- What is known from the literature.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
To more accurately represent natural water surfaces, the first approach was to use a sine wave pattern along the face of the cube that the camera is pointed to captured the scene. The flat, uniform top face of the cube does not adequately simulate the variability characteristic of natural water surfaces. To address this limitation, this method aimed to develop additional geometric modifications that can be implemented to create wave-like patterns on the cube&#039;s surface.&lt;br /&gt;
&lt;br /&gt;
The modifications to the cube&#039;s geometry, aimed at replicating water surface characteristics, involved the following transformations:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rectangular Prisms&#039;&#039;&#039; Initially, the cube was transformed into a rectangular prism by extending its length to align with the dimensions of the target face within the scene. Multiple rectangular prisms were then arranged in a repeating pattern across the face of the cube. This arrangement was achieved through a for loop, which determined the number of prisms based on the specified width of the prisms, spacing between them, and the overall width of the target face.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trapezoidal Prisms&#039;&#039;&#039; To introduce a closer approximation to the curvature of a sine wave, the rectangular prisms were modified into trapezoidal prisms with slanted sides. This intermediate transformation introduced gradual undulations to the cube’s inital flat surface, enhancing its resemblance to natural waveforms. The method for generating and positioning the trapezoidal prisms is similar to that of the rectangular prisms, with the primary difference being the adjustment of the vertices on the top face of the cube.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sine Wave Approximation with Rectangular Prisms&#039;&#039;&#039; Building on the previous methods, a sine wave pattern was approximated using multiple rectangular prisms of varying heights. Five rectangles were used to follow the equation y=sin(x), where x values were set to pi/12, pi/6, pi//4, pi/3, and pi/2. This approach captured the oscillations of a sine wave, resulting in a more realistic simulation of natural water surface dynamics. The rectangular prisms all had the same height and width, with the height of the prism changing depending on location across the cube. &lt;br /&gt;
&lt;br /&gt;
These transformations were integrated into the scene while preserving the realistic scattering and absorption properties of the original cubic medium. This iterative approach effectively balanced geometric complexity with computational efficiency.&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60303</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60303"/>
		<updated>2024-12-12T23:33:02Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Technique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
- What is known from the literature.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
* include baseline perfect cube/pbrt here&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
-intro to method&lt;br /&gt;
&lt;br /&gt;
- rectangles&lt;br /&gt;
 &lt;br /&gt;
- trapezoidal approx&lt;br /&gt;
&lt;br /&gt;
- using rectangles to estimate sine wave&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60294</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60294"/>
		<updated>2024-12-12T23:25:18Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
- What is known from the literature.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
-intro to method&lt;br /&gt;
&lt;br /&gt;
- rectangles&lt;br /&gt;
 &lt;br /&gt;
- trapezoidal approx&lt;br /&gt;
&lt;br /&gt;
- using rectangles to estimate sine wave&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
=== Metric ===&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
	<entry>
		<id>http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60293</id>
		<title>Water Surface Mesh Improvements for Underwater Imaging Simulations</title>
		<link rel="alternate" type="text/html" href="http://vista.su.domains/psych221wiki/index.php?title=Water_Surface_Mesh_Improvements_for_Underwater_Imaging_Simulations&amp;diff=60293"/>
		<updated>2024-12-12T23:24:24Z</updated>

		<summary type="html">&lt;p&gt;Bpatrick: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
- Motivate the problem. Describe what has been done in the past.&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
&lt;br /&gt;
=== Previous Work ===&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
- What is known from the literature.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
- Describe techniques you used to measure and analyze. Describe the instruments, and experimental procedures in enough detail so that someone could repeat your analysis. What software did you use? What was the idea of the algorithms and data analysis?&lt;br /&gt;
&lt;br /&gt;
=== Simulation Tools ===&lt;br /&gt;
&lt;br /&gt;
For this project, we have used three simulation tools:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; iset3d toolbox&#039;&#039;&#039; We used the iset3d toolbox in MATLAB to provide a physically-accurate ray traced rendering of 3D scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; PBRT &#039;&#039;&#039; We Ran PBRT in MATLAB to produce physically accurate images by physically based and ray tracing through scenes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039; Docker &#039;&#039;&#039; The implementation of iset3d with PBRT is available in a set of Docker containers.&lt;br /&gt;
&lt;br /&gt;
=== Technique ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sine Wave ===&lt;br /&gt;
-intro to method&lt;br /&gt;
&lt;br /&gt;
- rectangles&lt;br /&gt;
 &lt;br /&gt;
- trapezoidal approx&lt;br /&gt;
&lt;br /&gt;
- using rectangles to estimate sine wave&lt;br /&gt;
&lt;br /&gt;
=== Blue Noise ===&lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader&#039;s attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
- Describe what you learned. What worked? What didn&#039;t? Why? What should someone next year try?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
- List references. Include links to papers that are online.&lt;br /&gt;
&lt;br /&gt;
== Appendix I ==&lt;br /&gt;
- Upload source code, test images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas.&lt;br /&gt;
&lt;br /&gt;
== Appendix II ==&lt;br /&gt;
- (for groups only) - Work breakdown. Explain how the project work was divided among group members.&lt;br /&gt;
&lt;br /&gt;
Bridget:&lt;br /&gt;
&lt;br /&gt;
Caelia:&lt;br /&gt;
&lt;br /&gt;
Brian:&lt;/div&gt;</summary>
		<author><name>Bpatrick</name></author>
	</entry>
</feed>