SlideShare a Scribd company logo
1 of 24
Implementation II
Objectives
• Introduce clipping algorithms for polygons
• Survey hidden-surface algorithms
2
Polygon Clipping
• Not as simple as line segment clipping
• Clipping a line segment yields at most one line segment
• Clipping a polygon can yield multiple polygons
• However, clipping a convex polygon can yield at most one other
polygon
3
Tessellation and Convexity
•One strategy is to replace nonconvex (concave)
polygons with a set of triangular polygons (a
tessellation)
•Also makes fill easier
•Tessellation code in GLU library
4
Clipping as a Black Box
• Can consider line segment clipping as a process that takes in two
vertices and produces either no vertices or the vertices of a clipped
line segment
5
Pipeline Clipping of Line Segments
• Clipping against each side of window is independent of other sides
• Can use four independent clippers in a pipeline
6
Pipeline Clipping of Polygons
•Three dimensions: add front and back clippers
•Strategy used in SGI Geometry Engine
•Small increase in latency
7
Bounding Boxes
•Rather than doing clipping on a complex polygon, we
can use an axis-aligned bounding box or extent
• Smallest rectangle aligned with axes that encloses the polygon
• Simple to compute: max and min of x and y
8
Bounding boxes
Can usually determine accept/reject based only on bounding box
9
reject
accept
requires detailed
clipping
Clipping and Visibility
• Clipping has much in common with hidden-surface removal
• In both cases, we are trying to remove objects that are not visible to
the camera
• Often we can use visibility or occlusion testing early in the process to
eliminate as many polygons as possible before going through the
entire pipeline
10
Hidden Surface Removal
• Object-space approach: use pairwise testing between polygons
(objects)
• Worst case complexity O(n2
) for n polygons
11
partially obscuring can draw independently
Painter’s Algorithm
• Render polygons a back to front order so that polygons behind
others are simply painted over
12
B behind A as seen by viewer Fill B then A
Depth Sort
• Requires ordering of polygons first
• O(n log n) calculation for ordering
• Not every polygon is either in front or behind all other polygons
•Order polygons and deal with
easy cases first, harder later
13
Polygons sorted by
distance from COP
Easy Cases
• A lies behind all other polygons
• Can render
• Polygons overlap in z but not in either x or y
• Can render independently
14
Hard Cases
15
Overlap in all directions
but can one is fully on
one side of the other
cyclic overlap
penetration
Back-Face Removal (Culling)
θ
16
•face is visible iff 90 ≥ θ ≥ -90
equivalently cos θ ≥ 0
or v • n ≥ 0
•plane of face has form ax + by +cz +d =0
but after normalization n = ( 0 0 1 0)T
•need only test the sign of c
•In OpenGL we can simply enable culling
but may not work correctly if we have nonconvex objects
Image Space Approach
• Look at each projector (nm for an n x m frame buffer) and find
closest of k polygons
• Complexity O(nmk)
• Ray tracing
• z-buffer
17
z-Buffer Algorithm
•Use a buffer called the z or depth buffer to store the
depth of the closest object at each pixel found so far
•As we render each polygon, compare the depth of
each pixel to depth in z buffer
•If less, place shade of pixel in color buffer and update
z buffer
18
Efficiency
• If we work scan line by scan line as we move across a scan line, the
depth changes satisfy a∆x+b∆y+c∆z=0
19
Along scan line
∆y = 0
∆z = - ∆x
c
a
In screen space ∆x = 1
Scan-Line Algorithm
• Can combine shading and hsr through scan line algorithm
20
scan line i: no need for depth
information, can only be in no
or one polygon
scan line j: need depth
information only when in
more than one polygon
Implementation
• Need a data structure to store
• Flag for each polygon (inside/outside)
• Incremental structure for scan lines that stores which edges are encountered
• Parameters for planes
21
Visibility Testing
• In many realtime applications, such as games, we want to eliminate
as many objects as possible within the application
• Reduce burden on pipeline
• Reduce traffic on bus
• Partition space with Binary Spatial Partition (BSP) Tree
22
Simple Example
23
consider 6 parallel polygons
top view
The plane of A separates B and C from D, E and F
BSP Tree
• Can continue recursively
• Plane of C separates B from A
• Plane of D separates E and F
• Can put this information in a BSP tree
• Use for visibility and occlusion testing
24

More Related Content

What's hot

Relief Clipping Planes (SIGGRAPH ASIA 2008)
Relief Clipping Planes (SIGGRAPH ASIA 2008)Relief Clipping Planes (SIGGRAPH ASIA 2008)
Relief Clipping Planes (SIGGRAPH ASIA 2008)
Matthias Trapp
 
7th math c2 -l20
7th math c2 -l207th math c2 -l20
7th math c2 -l20
jdurst65
 
Analytical models of learning curves with variable processing time
Analytical models of learning curves with variable processing timeAnalytical models of learning curves with variable processing time
Analytical models of learning curves with variable processing time
Sagarika Muthukumarana
 
for "Parallelizing Multiple Group-by Queries using MapReduce"
for "Parallelizing Multiple Group-by Queries using MapReduce"for "Parallelizing Multiple Group-by Queries using MapReduce"
for "Parallelizing Multiple Group-by Queries using MapReduce"
Yun-Yan Chi
 
07 a70110 remotesensingandgisapplications
07 a70110 remotesensingandgisapplications07 a70110 remotesensingandgisapplications
07 a70110 remotesensingandgisapplications
imaduddin91
 
Viscomp2 Course: Textures
Viscomp2 Course: TexturesViscomp2 Course: Textures
Viscomp2 Course: Textures
cristiangb
 

What's hot (19)

Relief Clipping Planes (SIGGRAPH ASIA 2008)
Relief Clipping Planes (SIGGRAPH ASIA 2008)Relief Clipping Planes (SIGGRAPH ASIA 2008)
Relief Clipping Planes (SIGGRAPH ASIA 2008)
 
Continuously Adaptive Mean Shift(CAMSHIFT)
Continuously Adaptive Mean Shift(CAMSHIFT)Continuously Adaptive Mean Shift(CAMSHIFT)
Continuously Adaptive Mean Shift(CAMSHIFT)
 
Programmable Piplelines
Programmable PiplelinesProgrammable Piplelines
Programmable Piplelines
 
Shive
ShiveShive
Shive
 
Machine vision technique to avoid alignment failure in space launch vehicle
Machine vision technique to avoid alignment failure in space launch vehicleMachine vision technique to avoid alignment failure in space launch vehicle
Machine vision technique to avoid alignment failure in space launch vehicle
 
Efficient HPR-based Rendering of Point Clouds
Efficient HPR-based Rendering of Point CloudsEfficient HPR-based Rendering of Point Clouds
Efficient HPR-based Rendering of Point Clouds
 
final_presentation
final_presentationfinal_presentation
final_presentation
 
GeoHex LT at FOSS4G 2010 Tokyo
GeoHex LT at FOSS4G 2010 Tokyo GeoHex LT at FOSS4G 2010 Tokyo
GeoHex LT at FOSS4G 2010 Tokyo
 
7th math c2 -l20
7th math c2 -l207th math c2 -l20
7th math c2 -l20
 
Analytical models of learning curves with variable processing time
Analytical models of learning curves with variable processing timeAnalytical models of learning curves with variable processing time
Analytical models of learning curves with variable processing time
 
Ray casting algorithm by mhm
Ray casting algorithm by mhmRay casting algorithm by mhm
Ray casting algorithm by mhm
 
Things to do with OpenStreetMap
Things to do with OpenStreetMapThings to do with OpenStreetMap
Things to do with OpenStreetMap
 
workspace_analysis
workspace_analysisworkspace_analysis
workspace_analysis
 
Hubba Deep Learning
Hubba Deep LearningHubba Deep Learning
Hubba Deep Learning
 
Deep Learning meetup
Deep Learning meetupDeep Learning meetup
Deep Learning meetup
 
Meetup 12/12/2018: Augmented & Virtual Reality: wat zijn de mogelijkheden voo...
Meetup 12/12/2018: Augmented & Virtual Reality: wat zijn de mogelijkheden voo...Meetup 12/12/2018: Augmented & Virtual Reality: wat zijn de mogelijkheden voo...
Meetup 12/12/2018: Augmented & Virtual Reality: wat zijn de mogelijkheden voo...
 
for "Parallelizing Multiple Group-by Queries using MapReduce"
for "Parallelizing Multiple Group-by Queries using MapReduce"for "Parallelizing Multiple Group-by Queries using MapReduce"
for "Parallelizing Multiple Group-by Queries using MapReduce"
 
07 a70110 remotesensingandgisapplications
07 a70110 remotesensingandgisapplications07 a70110 remotesensingandgisapplications
07 a70110 remotesensingandgisapplications
 
Viscomp2 Course: Textures
Viscomp2 Course: TexturesViscomp2 Course: Textures
Viscomp2 Course: Textures
 

Similar to Implementation

Lecture 08 uninformed search techniques
Lecture 08 uninformed search techniquesLecture 08 uninformed search techniques
Lecture 08 uninformed search techniques
Hema Kashyap
 

Similar to Implementation (20)

Implementation
ImplementationImplementation
Implementation
 
visible surface detection in 3D objects for viewing
visible surface detection in 3D objects for viewingvisible surface detection in 3D objects for viewing
visible surface detection in 3D objects for viewing
 
99995327.ppt
99995327.ppt99995327.ppt
99995327.ppt
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithm
 
CS401_M2_L6_Solid Area Scan Conversion.pptx
CS401_M2_L6_Solid Area Scan Conversion.pptxCS401_M2_L6_Solid Area Scan Conversion.pptx
CS401_M2_L6_Solid Area Scan Conversion.pptx
 
7-Clipping-16 (1).pdf
7-Clipping-16 (1).pdf7-Clipping-16 (1).pdf
7-Clipping-16 (1).pdf
 
Clipping & Rasterization
Clipping & RasterizationClipping & Rasterization
Clipping & Rasterization
 
ch4.pptx
ch4.pptxch4.pptx
ch4.pptx
 
Clipping
ClippingClipping
Clipping
 
2IV60_11_hidden_surfaces (6).ppt
2IV60_11_hidden_surfaces (6).ppt2IV60_11_hidden_surfaces (6).ppt
2IV60_11_hidden_surfaces (6).ppt
 
hidden surface removal in computer graphics
hidden surface removal in computer graphicshidden surface removal in computer graphics
hidden surface removal in computer graphics
 
Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal Algorithm
 
Clipping
ClippingClipping
Clipping
 
lecture8 clipping
lecture8 clippinglecture8 clipping
lecture8 clipping
 
CAD/CAM/CAE - Notes
CAD/CAM/CAE - NotesCAD/CAM/CAE - Notes
CAD/CAM/CAE - Notes
 
Clipping 22
Clipping 22Clipping 22
Clipping 22
 
Clipping 22
Clipping 22Clipping 22
Clipping 22
 
Lecture 08 uninformed search techniques
Lecture 08 uninformed search techniquesLecture 08 uninformed search techniques
Lecture 08 uninformed search techniques
 
Surface design and visible surfaces
Surface design and visible surfacesSurface design and visible surfaces
Surface design and visible surfaces
 
cg mod2.pdf
cg mod2.pdfcg mod2.pdf
cg mod2.pdf
 

More from Syed Zaid Irshad

Basic Concept of Information Technology
Basic Concept of Information TechnologyBasic Concept of Information Technology
Basic Concept of Information Technology
Syed Zaid Irshad
 
Introduction to ICS 1st Year Book
Introduction to ICS 1st Year BookIntroduction to ICS 1st Year Book
Introduction to ICS 1st Year Book
Syed Zaid Irshad
 

More from Syed Zaid Irshad (20)

Operating System.pdf
Operating System.pdfOperating System.pdf
Operating System.pdf
 
DBMS_Lab_Manual_&_Solution
DBMS_Lab_Manual_&_SolutionDBMS_Lab_Manual_&_Solution
DBMS_Lab_Manual_&_Solution
 
Data Structure and Algorithms.pptx
Data Structure and Algorithms.pptxData Structure and Algorithms.pptx
Data Structure and Algorithms.pptx
 
Design and Analysis of Algorithms.pptx
Design and Analysis of Algorithms.pptxDesign and Analysis of Algorithms.pptx
Design and Analysis of Algorithms.pptx
 
Professional Issues in Computing
Professional Issues in ComputingProfessional Issues in Computing
Professional Issues in Computing
 
Reduce course notes class xi
Reduce course notes class xiReduce course notes class xi
Reduce course notes class xi
 
Reduce course notes class xii
Reduce course notes class xiiReduce course notes class xii
Reduce course notes class xii
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
C Language
C LanguageC Language
C Language
 
Flowchart
FlowchartFlowchart
Flowchart
 
Algorithm Pseudo
Algorithm PseudoAlgorithm Pseudo
Algorithm Pseudo
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 
ICS 2nd Year Book Introduction
ICS 2nd Year Book IntroductionICS 2nd Year Book Introduction
ICS 2nd Year Book Introduction
 
Security, Copyright and the Law
Security, Copyright and the LawSecurity, Copyright and the Law
Security, Copyright and the Law
 
Computer Architecture
Computer ArchitectureComputer Architecture
Computer Architecture
 
Data Communication
Data CommunicationData Communication
Data Communication
 
Information Networks
Information NetworksInformation Networks
Information Networks
 
Basic Concept of Information Technology
Basic Concept of Information TechnologyBasic Concept of Information Technology
Basic Concept of Information Technology
 
Introduction to ICS 1st Year Book
Introduction to ICS 1st Year BookIntroduction to ICS 1st Year Book
Introduction to ICS 1st Year Book
 
Using the set operators
Using the set operatorsUsing the set operators
Using the set operators
 

Recently uploaded

Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 

Recently uploaded (20)

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 

Implementation

  • 2. Objectives • Introduce clipping algorithms for polygons • Survey hidden-surface algorithms 2
  • 3. Polygon Clipping • Not as simple as line segment clipping • Clipping a line segment yields at most one line segment • Clipping a polygon can yield multiple polygons • However, clipping a convex polygon can yield at most one other polygon 3
  • 4. Tessellation and Convexity •One strategy is to replace nonconvex (concave) polygons with a set of triangular polygons (a tessellation) •Also makes fill easier •Tessellation code in GLU library 4
  • 5. Clipping as a Black Box • Can consider line segment clipping as a process that takes in two vertices and produces either no vertices or the vertices of a clipped line segment 5
  • 6. Pipeline Clipping of Line Segments • Clipping against each side of window is independent of other sides • Can use four independent clippers in a pipeline 6
  • 7. Pipeline Clipping of Polygons •Three dimensions: add front and back clippers •Strategy used in SGI Geometry Engine •Small increase in latency 7
  • 8. Bounding Boxes •Rather than doing clipping on a complex polygon, we can use an axis-aligned bounding box or extent • Smallest rectangle aligned with axes that encloses the polygon • Simple to compute: max and min of x and y 8
  • 9. Bounding boxes Can usually determine accept/reject based only on bounding box 9 reject accept requires detailed clipping
  • 10. Clipping and Visibility • Clipping has much in common with hidden-surface removal • In both cases, we are trying to remove objects that are not visible to the camera • Often we can use visibility or occlusion testing early in the process to eliminate as many polygons as possible before going through the entire pipeline 10
  • 11. Hidden Surface Removal • Object-space approach: use pairwise testing between polygons (objects) • Worst case complexity O(n2 ) for n polygons 11 partially obscuring can draw independently
  • 12. Painter’s Algorithm • Render polygons a back to front order so that polygons behind others are simply painted over 12 B behind A as seen by viewer Fill B then A
  • 13. Depth Sort • Requires ordering of polygons first • O(n log n) calculation for ordering • Not every polygon is either in front or behind all other polygons •Order polygons and deal with easy cases first, harder later 13 Polygons sorted by distance from COP
  • 14. Easy Cases • A lies behind all other polygons • Can render • Polygons overlap in z but not in either x or y • Can render independently 14
  • 15. Hard Cases 15 Overlap in all directions but can one is fully on one side of the other cyclic overlap penetration
  • 16. Back-Face Removal (Culling) θ 16 •face is visible iff 90 ≥ θ ≥ -90 equivalently cos θ ≥ 0 or v • n ≥ 0 •plane of face has form ax + by +cz +d =0 but after normalization n = ( 0 0 1 0)T •need only test the sign of c •In OpenGL we can simply enable culling but may not work correctly if we have nonconvex objects
  • 17. Image Space Approach • Look at each projector (nm for an n x m frame buffer) and find closest of k polygons • Complexity O(nmk) • Ray tracing • z-buffer 17
  • 18. z-Buffer Algorithm •Use a buffer called the z or depth buffer to store the depth of the closest object at each pixel found so far •As we render each polygon, compare the depth of each pixel to depth in z buffer •If less, place shade of pixel in color buffer and update z buffer 18
  • 19. Efficiency • If we work scan line by scan line as we move across a scan line, the depth changes satisfy a∆x+b∆y+c∆z=0 19 Along scan line ∆y = 0 ∆z = - ∆x c a In screen space ∆x = 1
  • 20. Scan-Line Algorithm • Can combine shading and hsr through scan line algorithm 20 scan line i: no need for depth information, can only be in no or one polygon scan line j: need depth information only when in more than one polygon
  • 21. Implementation • Need a data structure to store • Flag for each polygon (inside/outside) • Incremental structure for scan lines that stores which edges are encountered • Parameters for planes 21
  • 22. Visibility Testing • In many realtime applications, such as games, we want to eliminate as many objects as possible within the application • Reduce burden on pipeline • Reduce traffic on bus • Partition space with Binary Spatial Partition (BSP) Tree 22
  • 23. Simple Example 23 consider 6 parallel polygons top view The plane of A separates B and C from D, E and F
  • 24. BSP Tree • Can continue recursively • Plane of C separates B from A • Plane of D separates E and F • Can put this information in a BSP tree • Use for visibility and occlusion testing 24