Skip to content

McMerrison/Painters-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Painters Algorithm

CISC 360 Project

Group Members:

Steven Sell

Talha Ehtasham

Thomas Cardy

Melissa Purdy

Estella Aviles

Instructions To Run:

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

Be Sure To Take A Look At Our Sources

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

http://onlinemca.com/mca_course/kurukshetra_university/semester5/computergraphics/painter_algorithm.php

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://www.game-debate.com/news/?news=4788&game=None&title=Graphics%20Card%20Technology%20Part%201:%20Shader%20Processing%20Units

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

https://helpdesk.flexradio.com/hc/en-us/articles/202118528-What-is-important-in-choosing-a-Video-Graphics-Card-

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.techpowerup.com/forums/threads/explain-to-me-how-memory-width-128-192-256-bit-etc-is-related-to-memory-amount.170588/

http://www.techspot.com/community/topics/memory-size-vs-memory-bus.73182/

Overclocking

https://gaming.msi.com/article/need-more-fps-try-overclocking

About

Code used in Painter's Algorithm Analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages