Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
History is littered with hundreds of conflicts over the future of a community, group, location or business that were "resolved" when one of the parties stepped ahead and destroyed what was there. With the original point of contention destroyed, the debates would fall to the wayside. Archive Team believes that by duplicated condemned data, the conversation and debate can continue, as well as the richness and insight gained by keeping the materials. Our projects have ranged in size from a single volunteer downloading the data to a small-but-critical site, to over 100 volunteers stepping forward to acquire terabytes of user-created data to save for future generations.
The main site for Archive Team is at archiveteam.org and contains up to the date information on various projects, manifestos, plans and walkthroughs.
This collection contains the output of many Archive Team projects, both ongoing and completed. Thanks to the generous providing of disk space by the Internet Archive, multi-terabyte datasets can be made available, as well as in use by the Wayback Machine, providing a path back to lost websites and work.
Our collection has grown to the point of having sub-collections for the type of data we acquire. If you are seeking to browse the contents of these collections, the Wayback Machine is the best first stop. Otherwise, you are free to dig into the stacks to see what you may find.
The Archive Team Panic Downloads are full pulldowns of currently extant websites, meant to serve as emergency backups for needed sites that are in danger of closing, or which will be missed dearly if suddenly lost due to hard drive crashes or server failures.
This collection is a set of Github repository archives from two major sets: A panic grab upon the acquisition by Microsoft, and a larger, ongoing set of Pretty Much Everything.
TIMESTAMPS
The Wayback Machine - https://web.archive.org/web/20201216000451/https://github.com/byumjin/Project4-CUDA-Rasterizer
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 4
Byumjin Kim
Tested on: Windows 10, i7-6700HQ @ 2.60GHz 15.89GB (Personal labtop)
Overview
Model : Johanna.gltf
Resolution : 800 x 800
Physically-based rendering material
Texture mapping
Normal mapping
Environment Map
Bloom (HDR)
In this project, I have used CUDA to implement a simplified rasterized graphics pipeline, similar to the OpenGL pipeline vertex shading, primitive assembly, rasterization, fragment shading, and a framebuffer for basic features.
Complete requirements
Basic Features
Vertex shading
Primitive assembly
Rasterization
Fragment shading
A depth buffer for storing and depth testing fragments
Fragment-to-depth-buffer writing
Blinn-Phong shading
Additional Features
Correct color interpolation between points on a primitive
Bloom with Using shared memory
Backface culling with using stream compaction
Blending Stage
UV texture mapping with bilinear texture filtering and perspective correct texture coordinates
Super Sample Anti-Aliasing
Independent features
Physically-based BRDF shading
Environment mapping
Normal mapping
Correct color interpolation between points on a primitive
Normal Vertex
Corrected Vertex
Comparision
In graphics API such as DirectX or OpenGL, persepctive correction is adjusted automatically.
But, we need to implement it for this project, manually. I have refered to scratchapixel's web page.
When we try to get texture colors along UV coordinates, it will make blocky artifacts because texture's color information is consist of texel beased on integer.
Instead of using this raw integer information, we can interpolate this texel information with float UV coordinates to remove the artifact.
Normal(Bump) mapping
Vertex Normal
Normal mapping
Example
Backface culling
Normal
Back Face Culling
If we don't need translucent material and use only convex polygons, we don't need to draw back-faces of our objects.
if the result of dot product between view vector and triangle's face normal is minus value, we can assume it is back-face.
Using thrust functions, I could use stream compaction, easily
Super Sample Anti-Aliasing
x1 Sample
x16 Sample
Comparision
I think, Super Sample Anti-Aliasing is the worst efficient AA method.
Physically-based BRDF shading
Diffuse
Roughness
Metallic
I added Physically-based rendering material based on cook-torrence BRDF model.
According to its Roughness value per fragment, it decides its unique surface texture.
Environment
PBS
PBS + Bloom
And, for this project, I also added Metallic value which indicates the degree how the surface is more like metal.
So, if the metallic value is close to 1.0, it will relfect its environment more.
Environment mapping
Environment Only
Reflection on Shield
If the fragment's metallic is not zero, it takes a color from enviroment map with reflection vector's direction.
Bloom & Blending Stage (Post Process)
Extract HDR Fragments
Bloom Only
PBS + Bloom
Bloom (sometimes referred to as light bloom or glow) is a computer graphics effect used in video games, demos, and high dynamic range rendering (HDRR) to reproduce an imaging artifact of real-world cameras.
For the first stage, I extracted very bright fragments of the scene. Then, to blur image, I used Gaussian blurring method, which is called two passes (The first pass is for Horizontal Blurring and, the second pass is for Vertical Blurring). Because, for this method, it was easy to use shared memory feature to get its near fragment information per each pixel.
Finally, add fragments of bloom effect to original scene fragment through Blending stage.
Performance Analysis
Pipeline stage performance
unit : micro seconds
Vertex Shader
Backface Culling
Rasterize
Fragment Shader
0.354
1.809
2.598
2.832
Perspective correct texture coordinates
Off
On
142
140
Bilinear texture filtering
Off
On
140
68
Backface culling
Off
IF-STATEMENT
THRUST
122
141
57
An interesting point is Thrust backfaceCulling makes much slower.
You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.
We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products.
Learn more.
We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products.
You can always update your selection by clicking Cookie Preferences at the bottom of the page.
For more information, see our Privacy Statement.
Essential cookies
We use essential cookies to perform essential website functions, e.g. they're used to log you in.
Learn more
Always active
Analytics cookies
We use analytics cookies to understand how you use our websites so we can make them better, e.g. they're used to gather information about the pages you visit and how many clicks you need to accomplish a task.
Learn more