Download Data Structures - SIUE Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Spatial anti-aliasing wikipedia , lookup

Color vision wikipedia , lookup

Dither wikipedia , lookup

List of 8-bit computer hardware palettes wikipedia , lookup

BSAVE (bitmap format) wikipedia , lookup

Hold-And-Modify wikipedia , lookup

Indexed color wikipedia , lookup

Transcript
COMPUTER GRAPHICS
CS 482 – FALL 2016
CHAPTER 37
DATA STRUCTURES
•
•
•
•
QUAD TREES
OCTREES
K-D TREES
BINARY SPACE
PARTITIONING
QUAD TREES
2D PARTITIONING
QUAD TREES ARE USED TO PARTITION TWO-DIMENSIONAL SPACE BY
RECURSIVELY SUBDIVIDING IT INTO QUADRANTS UNTIL EACH QUADRANT
CONTAINS ALL OR PART OF A SINGLE SHAPE OR REACHES SOME MINIMUM SIZE
(USUALLY A PIXEL).
QUAD TREES ARE EFFECTIVELY UTILIZED IN APPLICATIONS SUCH AS IMAGE
REPRESENTATION, EFFICIENT 2D COLLISION DETECTION, AND FRACTAL IMAGE ANALYSIS.
CS 482 – FALL 2016
CHAPTER 37: DATA STRUCTURES
PAGE 267
QUAD TREES
RECURSIVE SUBDIVISION OF TOPOGRAPHICAL SURFACES
IN THE APPLICATION, A TOPOGRAPHICAL MAP IS RECURSIVELY SUBDIVIDED
UNTIL EACH REGION IS REASONABLY FLAT (I.E., THE CENTER AND FOUR
CORNERS ARE WITHIN TEN METERS OF EACH OTHER IN ELEVATION).
•
•
•
PINK REGIONS AREN’T FLAT ENOUGH
YELLOW-GREEN REGIONS BECAME FLAT ENOUGH ON THIS ITERATION
TAN REGIONS DON’T REQUIRE FURTHER SUBDIVISION
FINAL SUBDIVISION SQUARES
CIRCLE DRAWN IN CENTER OF EACH SQUARE
CIRCLES COLORED WITH A GRADIENT
CS 482 – FALL 2016
CHAPTER 37: DATA STRUCTURES
PAGE 268
OCTREES
3D PARTITIONING
OCTREES EXTEND THE NOTION OF QUAD TREES INTO THREE DIMENSIONS BY
RECURSIVELY SUBDIVIDING 3D SPACE INTO OCTANTS UNTIL EACH CONTAINS
ALL OR PART OF A SINGLE SHAPE OR REACHES SOME MINIMUM SIZE (USUALLY A
VOXEL).
COMMONLY USED FOR VIEW 3D IMAGE
REPRESENTATION, FRUSTUM CULLING, AND 3D
COLLISION DETECTION, OCTREES HAVE ALSO PROVEN
EFFECTIVE IN REDUCING A SCENE’S COLOR PALETTE.
CS 482 – FALL 2016
CHAPTER 37: DATA STRUCTURES
PAGE 269
OCTREES
COLOR QUANTIZATION
TO RESTRICT AN IMAGE’S COLOR PALETTE TO A PARTICULAR SIZE, THE FOLLOWING
OCTREE ALGORITHM STARTS BY CREATING AN OCTREE WHOSE LEAF NODES CONSTITUTE
A COUNT OF HOW MANY PIXELS IN THE IMAGE POSSESS A PARTICULAR COLOR.
1. FOR EACH COLOR IN THE SCENE, SEPARATE THE COLOR INTO 8-BIT RGB COMPONENTS.
RGB=(100, 117, 214)
R: 01100100
G: 01110101
B: 11010110
2. STARTING WITH THE MOST SIGNIFICANT BIT FOR EACH PRIMARY COLOR, USE THE EIGHT 3-BIT
SEQUENCES TO GENERATE INDICES BETWEEN 0 AND 7 BY ADDING R+2G+4B.
0014 1117 1103 0116 0000 1117 0014 0102
3. TRAVERSE THE OCTREE STRUCTURE, USING THE
COMPUTED INDICES TO DETERMINE WHICH
OFFSPRING TO VISIT, ADDING ONE TO THE COUNT OF
THE COLOR IN QUESTION IN THE LEAF NODE.
4. AFTER FINISHING ALL PIXELS, IF THE NUMBER OF LEAF NODES
EXCEEDS THE DESIRED PALETTE SIZE, START MERGING LEAF
NODES WITH LOW COUNTS INTO THEIR PARENT.
CS 482 – FALL 2016
CHAPTER 37: DATA STRUCTURES
PAGE 270
OCTREES
COLOR QUANTIZATION
FULL COLOR IMAGE
CS 482 – FALL 2016
16-COLOR OCTREE QUANTIZATION
CHAPTER 37: DATA STRUCTURES
PAGE 271
K-D TREES
BALANCED PARTITIONING
K-D TREES PARTITION SPACE IN A BALANCED MANNER BY ALTERNATING
BETWEEN VERTICAL AND HORIZONTAL SPLITTING OF REGIONS INTO TWO
PARTS, EACH CONTAINING HALF OF THE REGION’S OBJECTS.
CS 482 – FALL 2016
CHAPTER 37: DATA STRUCTURES
PAGE 272
K-D TREES
NEAREST NEIGHBOR ALGORITHM
K-D TREES MAY BE USED TO DETERMINE WHICH OF THE ORIGINAL
OBJECTS IN THE SCENE ARE CLOSEST TO A PARTICULAR LOCATION.
1. RECURSIVELY TRAVERSE THE TREE
UNTIL YOU DETERMINE WHICH SECTOR
THE NEW LOCATION BELONGS IN. THE
OBJECT IN THIS SECTOR IS THE INITIAL
CANDIDATE FOR BEING CLOSEST.
2. BACKTRACK UP THE TREE FROM THE LEAF NODE TO THE
ROOT, DETERMINING WHETHER THE SUBTREE ON THE
OTHER SIDE OF EACH PARTITION CONTAINS AN OBJECT
THAT’S CLOSER TO THE LOCATION IN QUESTION, WHICH
WOULD MAKE IT THE NEW CANDIDATE FOR CLOSEST.
3. ONCE THE BACKTRACKING REACHES THE ROOT OF THE
TREE, THE CURRENT CANDIDATE OBJECT IS THE ACTUAL
CLOSEST OBJECT TO THE SPECIFIED LOCATION.
CS 482 – FALL 2016
THIS ALGORITHM MAY
BE USED TO SPEED UP
RAY TRACING (BY
DETERMINING THAT A
RAY DOESN’T
INTERSECT PARTICULAR
PORTIONED SECTORS).
CHAPTER 37: DATA STRUCTURES
PAGE 273
BINARY SPACE PARTITIONING
BSP TREES
USING A BINARY TREE STRUCTURE, OBJECT SPACE CAN BE PARTITIONED INTO NUMEROUS HALFSPACES, AND THE VIEWPOINT’S POSITION IN THESE HALF-SPACES CAN BE USED TO DETERMINE THE
ORDER IN WHICH THEY SHOULD BE RENDERED IN THE PAINTER’S ALGORITHM.
C
PICK A POLYGON AND SPLIT THE
SPACE INTO THE PART IN FRONT
OF THE POLYGON AND THE PART
IN BACK OF IT (SPLITTING ALL
INTERSECTED POLYGONS)
A
F
E
A,D2,E,F
A
D2
A
F
D2
E
B
B
D1
F
FRONT
D1
E
D2
B
FRONT
F
FRONT
D2,E
BACK
FRONT
BACK
C,D1
A
CS 482 – FALL 2016
F
FRONT
D2,E
A
D1
A
D1
BACK
C
FRONT
BACK
C
FRONT
BACK
D2
BACK
BACK
F
FRONT
B
C,D1
C
B
D1
BACK
D2
E
C
B
A
FRONT
D1
F
C
CONTINUE
THIS
PROCESS
B
B
E
THE PROCESS ENDS WHEN EACH TREE NODE
CONTAINS ONE OBJECT (OR SUB-OBJECT)
CHAPTER 37: DATA STRUCTURES
PAGE 274
BINARY SPACE PARTITIONING
PAINTER’S ALGORITHM IMPLEMENTATION
B
FRONT
BACK
F
C
WHEN DETERMINING THE ORDER IN WHICH THE OBJECTS SHOULD BE
DISPLAYED (E.G., IN A PAINTER’S ALGORITHM) FOR A PARTICULAR
VIEWPOINT, MERELY TRAVERSE THE BSP TREE RECURSIVELY:
IF THE VIEWPOINT IS IN FRONT OF THE ROOT, TRAVERSE BACKROOT-FRONT; OTHERWISE, TRAVERSE FRONT-ROOT-BACK.
FRONT
BACK
FRONT
D2
A
D1
BACK
E
EXAMPLE 1
EXAMPLE 2
C
B
C
A
F
D1
E
B
A
D2
F
D1
E
D2
VIEWPOINT
VIEWPOINT
B-SUBTREE: IN FRONT  C-SUBTREE, B, F-SUBTREE
C-SUBTREE: IN FRONT  C, D1
F-SUBTREE: IN FRONT  A, F, D2-SUBTREE
D2-SUBTREE: IN BACK  D2, E
COMPLETE TRAVERSAL: C, D1, B, A, F, D2, E
CS 482 – FALL 2016
B-SUBTREE: IN BACK  F-SUBTREE, B, C-SUBTREE
F-SUBTREE: IN FRONT  A, F, D2-SUBTREE
D2-SUBTREE: IN FRONT  E, D2
C-SUBTREE: IN FRONT  C, D1
COMPLETE TRAVERSAL: A, F, E, D2, B, C, D1
CHAPTER 37: DATA STRUCTURES
PAGE 275