Steven Sell
Talha Ehtasham
Thomas Cardy
Melissa Purdy
Estella Aviles
Runnable Files Located In Original
Directory
PixelPaintersORIG
, PixelPaintersSEQ
, and PixelPaintersACC
Type make clean && make all
To Compile All Files
Type ./
And The Name Of The Executable You'd Like To Run
./PixelPaintersORIG
Will Run Our Original Implementation Of The Algorithm (Non-Optimized & Sequential)
./PixelPaintersSEQ
Will Run A Sequential Implementation Of The Algorithm (Optimized)
./PixelPaintersACC
Will Run An OpenACC Parallelized & Optimized Implementation Of The Algorithm
Working Topic: Painter’s algorithm
https://en.wikipedia.org/wiki/Painter%27s_algorithm
Math stuff (more related to camera POV)
http://aldream.net/article/2013-04-13-painter-s-algorithm
Some pseudocode (helpful but it’s a forum so idk how we would cite this)
http://www.experts-exchange.com/questions/27183782/Painter's-Algorithm-Implementation.html
Related solution:
https://en.wikipedia.org/wiki/Z-buffering
C code for the algorithm (from Silicon Graphics Inc., somewhat outdated, I believe it’s open source)
http://www.sv.vt.edu/classes/opengl/examples/depth_buffer/painter.c
Bunch of C code
http://www.csee.umbc.edu/~squire/cs437_l9a.html
An open source iOS framework for GPU-based image and video processing
https://github.com/BradLarson/GPUImage
A C++ implementation of Depth Sorting (another name for the Painter's Algorithm)
http://www.visualizationlibrary.org/documentation/pag_guide_polygon_depth_sorting.html
Psuedocode and Overview of the algorithm
Overview of GPU / Painter's Algorithm
http://compsci.hunter.cuny.edu/~sweiss/course_materials/csci360/lecture_notes/gpus.pdf
Javascript implementations (skip down the page or just do a ctrl-f for "painter"):
http://www.cores2.com/3D_Tutorial/#development-tools-conventions
http://www.garybeene.com/3d/3d-purejs.htm
Paper on rendering 3D scene, some info onf Painter's Algorithm
https://hal-upec-upem.archives-ouvertes.fr/hal-00622389/document
More detailed description of how GPUs create scenes
https://www.google.com/patents/US7499051
OpenGL info article on depth sort
https://www.opengl.org/wiki/Transparency_Sorting#Depth_Sorting
Another similar algorithm for the visibility problem
http://www.idav.ucdavis.edu/education/GraphicsNotes/Z-Buffer-Algorithm.pdf
Specifications of GTX 970 Graphics Card
http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-970/specifications
Basic OpenGL on opening window, drawing 2D shapes
http://csclab.murraystate.edu/bob.pilgrim/515/lectures_02.html
Z-culling (optimization)
http://developer.amd.com/wordpress/media/2012/10/ShadingCourse2004_EarlyZ.pdf
Z-fighting (complication)
http://wiki.step-project.com/Guide:Z-Fighting
Shaders:
http://hexus.net/tech/tech-explained/graphics/17992-the-gpu-graphics-processing-unit/
https://www.youtube.com/watch?v=TDZMSozKZ20
http://stackoverflow.com/questions/832545/what-are-vertex-and-pixel-shaders
http://www.m2h.nl/files/LiteraturestudyShaders.pdf
Motion Blurring
https://www.youtube.com/watch?v=2-84Bfvh0Pc
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html
http://john-chapman-graphics.blogspot.com/2013/01/what-is-motion-blur-motion-pictures-are.html
https://software.intel.com/en-us/blogs/2014/07/15/an-investigation-of-fast-real-time-gpu-based-image-blur-algorithms - possibly too in-depth
Lighting
http://http.developer.nvidia.com/GPUGems/gpugems_ch10.html
http://http.developer.nvidia.com/GPUGems/gpugems_part02.html
http://http.developer.nvidia.com/GPUGems/gpugems_ch19.html
Effects of various elements on GPU Performance
http://www.tomshardware.com/reviews/graphics-card-myths,3694-5.html
Effects of memory bandwidth on GPU Performance
http://www.gpureview.com/memory-bandwidth-article-356.html
Effects of clocks on GPU Performance
http://www.gpureview.com/core-clock-article-354.html
http://www.gpureview.com/memory-clock-article-355.html
Effects of memory bus width on GPU Performance
https://linustechtips.com/main/topic/44197-memory-bus-size-and-how-it-effects-your-vram-usage/
http://www.techspot.com/community/topics/memory-size-vs-memory-bus.73182/
Overclocking
https://gaming.msi.com/article/need-more-fps-try-overclocking