This document summarizes a class on interaction and computer graphics. It discusses an in-class quiz, the requirements for Project 2 on programmable shaders, and interaction techniques like back projection for picking objects. New interaction paradigms like multi-touch are presented, along with future directions involving visual, tactile, gesture, speech and emotionally aware interfaces. Students are reminded that the first part of Project 2 is due on April 2nd.
Presented at SIGGRAPH 2004 in Los Angeles on Tuesday, August 10th during the "Real-Time Shadowing Techniques" course. Jan Kautz and Marc Stamminger organized the course. The presentation covers robust shadow volume rendering techniques for GPUs.
NV_path_rendering is an OpenGL extension for CUDA-capable NVIDIA GPUs for performing resolution-independent 2D rendering. Standards such as Scalable Vector Graphics (SVG), PostScript, PDF, Adobe Flash, and TrueType fonts rely on path rendering. With NV_path_rendering, this important class of rendering is accelerated by the GPU in a way that co-exists with conventional 3D rendering.
For more information see:
http://developer.nvidia.com/nv-path-rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingMark Kilgard
Twenty-five years ago, Crow published the shadow volume approach for determining shadowed regions in a scene. A decade ago, Heidmann described a hardware-accelerated stencil bufferbased shadow volume algorithm. However, hardware-accelerated stenciled shadow volume techniques have not been widely adopted by 3D games and applications due in large part to the lack of robustness of described techniques. This situation persists despite widely available hardware support. Specifically what has been lacking is a technique that robustly handles various "hard" situations created by near or far plane clipping of shadow volumes. We describe a robust, artifact-free technique for hardwareaccelerated rendering of stenciled shadow volumes. Assuming existing hardware, we resolve the issues otherwise caused by shadow volume near and far plane clipping through a combination of (1) placing the conventional far clip plane “at infinity”, (2) rasterization with infinite shadow volume polygons via homogeneous coordinates, and (3) adopting a zfail stencil-testing scheme. Depth clamping, a new rasterization feature provided by NVIDIA's GeForce3 & GeForce4 Ti GPUs, preserves existing depth precision by not requiring the far plane to be placed at infinity. We also propose two-sided stencil testing to improve the efficiency of rendering stenciled shadow volumes.
March 12, 2002.
This was submitted to the SIGGRAPH 2002 papers committee but was rejected.
Presented at SIGGRAPH 2004 in Los Angeles on Tuesday, August 10th during the "Real-Time Shadowing Techniques" course. Jan Kautz and Marc Stamminger organized the course. The presentation covers robust shadow volume rendering techniques for GPUs.
NV_path_rendering is an OpenGL extension for CUDA-capable NVIDIA GPUs for performing resolution-independent 2D rendering. Standards such as Scalable Vector Graphics (SVG), PostScript, PDF, Adobe Flash, and TrueType fonts rely on path rendering. With NV_path_rendering, this important class of rendering is accelerated by the GPU in a way that co-exists with conventional 3D rendering.
For more information see:
http://developer.nvidia.com/nv-path-rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingMark Kilgard
Twenty-five years ago, Crow published the shadow volume approach for determining shadowed regions in a scene. A decade ago, Heidmann described a hardware-accelerated stencil bufferbased shadow volume algorithm. However, hardware-accelerated stenciled shadow volume techniques have not been widely adopted by 3D games and applications due in large part to the lack of robustness of described techniques. This situation persists despite widely available hardware support. Specifically what has been lacking is a technique that robustly handles various "hard" situations created by near or far plane clipping of shadow volumes. We describe a robust, artifact-free technique for hardwareaccelerated rendering of stenciled shadow volumes. Assuming existing hardware, we resolve the issues otherwise caused by shadow volume near and far plane clipping through a combination of (1) placing the conventional far clip plane “at infinity”, (2) rasterization with infinite shadow volume polygons via homogeneous coordinates, and (3) adopting a zfail stencil-testing scheme. Depth clamping, a new rasterization feature provided by NVIDIA's GeForce3 & GeForce4 Ti GPUs, preserves existing depth precision by not requiring the far plane to be placed at infinity. We also propose two-sided stencil testing to improve the efficiency of rendering stenciled shadow volumes.
March 12, 2002.
This was submitted to the SIGGRAPH 2002 papers committee but was rejected.
[AI07] Revolutionizing Image Processing with Cognitive Toolkitde:code 2017
Deep Learning has revolutionized the field of image processing. I'll show real-world examples using CNTK, from anomaly classification using CNNs to generation using Generative Adversarial Networks.
製品/テクノロジ: AI (人工知能)/Deep Learning (深層学習)/Microsoft Azure/Machine Learning (機械学習)
Michael Lanzetta
Microsoft Corporation
Developer Experience and Evangelism
Principal Software Development Engineer
Colloque IMT -04/04/2019- L'IA au cœur des mutations industrielles - L'IA pou...I MT
Colloque IMT - L'IA au cœur des mutations industrielles - Session Optimisation: L'IA pour la performance des réseaux. Présentation par Léonardo Linguaglossa, Chercheur post-doctorant (Télécom ParisTech)
A fast-paced introduction to Deep Learning concepts, such as activation functions, cost functions, backpropagation, and then a quick dive into CNNs. Basic knowledge of vectors, matrices, and elementary calculus (derivatives), are helpful in order to derive the maximum benefit from this session.
Next we'll see a simple neural network using Keras, followed by an introduction to TensorFlow and TensorBoard. (Bonus points if you know Zorn's Lemma, the Well-Ordering Theorem, and the Axiom of Choice.)
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaGoDataDriven
Matei Zaharia is an assistant professor of computer science at Stanford University, Chief Technologist and Co-founder of Databricks. He started the Spark project at UC Berkeley and continues to serve as its vice president at Apache. Matei also co-started the Apache Mesos project and is a committer on Apache Hadoop. Matei’s research work on datacenter systems was recognized through two Best Paper awards and the 2014 ACM Doctoral Dissertation Award.
How to Create 3D Mashups by Integrating GIS, CAD, and BIMSafe Software
Find out how you can easily integrate GIS, CAD, BIM, and other spatial data to create accurate 3D representations using FME. You'll discover how to manipulate 3D data across popular formats like CityGML and SketchUp, as well as transform BIM data to load only the required information into your GIS. You'll also hear how FME enabled one customer to take vintage 2D CAD data and create informative 3D PDFs and 3D AutoCAD DWG files to help in the decommissioning of a nuclear power plant
2009 - Node XL v.84+ - Social Media Network Visualization Tools For Excel 2007Marc Smith
Overview of the NodeXL project (Network Overview, Discovery and Exploration) that adds social network metrics and visualization features to Excel 2007. Contains updated images from version .84 of the NodeXL project.
Machine and Deep Learning Application.
Applying big data learning techniques for a malware classification problem.
Code:
https://gist.github.com/indraneeld/7ffb182fd8eb87d6d463dedc001efad0
Acknowledgments:
Canadian Institute for Cybersecurity (CIC) project in collaboration with Canadian Centre for Cyber Security (CCCS).
Cloud Graphical Rendering: A New ParadigmJoel Isaacson
Cloud rendering of modern graphics is typically performed via remote hardware rendering and pixel-based video compression techniques for image transmission. These solutions perform poorly, profligately expending both system and network resources. In response, Ascender Technologies developed novel enabling technology where the rendering of pixels is performed only on the local client, which makes for a much more affordable solution without expensive graphical hardware in the cloud. In addition, Ascender’s compression techniques reduce the networking overhead, typically by over an order of magnitude.
D11: a high-performance, protocol-optional, transport-optional, window system...Mark Kilgard
Consider the dual pressures toward a more tightly integrated workstation window system: 1) the need to efficiently handle high bandwidth services such as video, audio, and three-dimensional graphics; and 2) the desire to achieve the under-realized potential for local window system performance in X11.
This paper proposes a new window system architecture called D11 that seeks higher performance while preserving compatibility with the industry-standard X11 window system. D11 reinvents the X11 client/server architecture using a new operating system facility similar in concept to the Unix kernel's traditional implementation but designed for user-level execution. This new architecture allows local D11 programs to execute within the D11 window system kernel without compromising the window sytem's integrity. This scheme minimizes context switching, eliminates protocol packing and unpacking, and greatly reduces data copying. D11 programs fall back to the X11 protocol when running remote or connecting to an X11 server. A special D11 program acts as an X11 protocol translator to allow X11 programs to utilize a D11 window system.
[The described system was never implemented.]
NVIDIA OpenGL and Vulkan Support for 2017Mark Kilgard
Learn how NVIDIA continues improving both Vulkan and OpenGL for cross-platform graphics and compute development. This high-level talk is intended for anyone wanting to understand the state of Vulkan and OpenGL in 2017 on NVIDIA GPUs. For OpenGL, the latest standard update maintains the compatibility and feature-richness you expect. For Vulkan, NVIDIA has enabled the latest NVIDIA GPU hardware features and now provides explicit support for multiple GPUs. And for either API, NVIDIA's SDKs and Nsight tools help you develop and debug your application faster.
NVIDIA booth theater presentation at SIGGRAPH in Los Angeles, August 1, 2017.
http://www.nvidia.com/object/siggraph2017-schedule.html?id=sig1732
Get your SIGGRAPH driver release with OpenGL 4.6 and the latest Vulkan functionality from
https://developer.nvidia.com/opengl-driver
EXT_window_rectangles extends OpenGL with a new per-fragment test called the "window rectangles test" for use with FBOs that provides 8 or more inclusive or exclusive rectangles for rasterized fragments. Applications of this functionality include web browsers and virtual reality.
Slides: Accelerating Vector Graphics Rendering using the Graphics Hardware Pi...Mark Kilgard
Slides for SIGGRAPH paper presentation of "Accelerating Vector Graphics Rendering using the Graphics Hardware Pipeline".
Presented by Vineet Batra (Adobe) on Thursday, August 13, 2015 at 2:00 pm - 3:30 pm, Los Angeles Convention Center, Room 150/151.
Accelerating Vector Graphics Rendering using the Graphics Hardware PipelineMark Kilgard
SIGGRAPH 2015 paper.
We describe our successful initiative to accelerate Adobe Illustrator with the graphics hardware pipeline of modern GPUs. Relying on OpenGL 4.4 plus recent OpenGL extensions for advanced blend modes and first-class GPU-accelerated path rendering, we accelerate the Adobe Graphics Model (AGM) layer responsible for rendering sophisticated Illustrator scenes. Illustrator documents render in either an RGB or CMYK color mode. While GPUs are designed and optimized for RGB rendering, we orchestrate OpenGL rendering of vector content in the proper CMYK color space and accommodate the 5+ color components required. We support both non-isolated and isolated transparency groups, knockout, patterns, and arbitrary path clipping. We harness GPU tessellation to shade paths smoothly with gradient meshes. We do all this and render complex Illustrator scenes 2 to 6x faster than CPU rendering at Full HD resolutions; and 5 to 16x faster at Ultra HD resolutions.
NV_path_rendering is an OpenGL extension for GPU-accelerated path rendering. Recent functionality improvements provide better performance, better typography, rounded rectangles, conics, and OpenGL ES support. This functionality is available today with NVIDIA's 337.88 drivers.
The latest NV_path_rendering specification documents these new functional improvements:
https://www.opengl.org/registry/specs/NV/path_rendering.txt
You can find sample code here:
https://github.com/markkilgard/NVprSDK
presented at SIGGRAPH 2014 in Vancouver during NVIDIA's "Best of GTC" sponsored sessions
http://www.nvidia.com/object/siggraph2014-best-gtc.html
Watch the replay that includes a demo of GPU-accelerated Illustrator and several OpenGL 4 demos running on NVIDIA's Tegra Shield tablet.
http://www.ustream.tv/recorded/51255959
Find out more about the OpenGL examples for GameWorks:
https://developer.nvidia.com/gameworks-opengl-samples
SIGGRAPH Asia 2012: GPU-accelerated Path RenderingMark Kilgard
Presented at SIGGRAPH Asia 2012 in Singapore on Friday, 30 November 14:15 - 16:00 during the "Points and Vectors" session.
Find the paper at http://developer.nvidia.com/game/gpu-accelerated-path-rendering or on Slideshare.
For thirty years, resolution-independent 2D standards (e.g. PostScript, SVG) have relied largely on CPU-based algorithms for the filling and stroking of paths. Learn about our approach to accelerate path rendering with our GPU-based "Stencil, then Cover" programming interface. We've built and productized our OpenGL-based system.
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and BeyondMark Kilgard
Location: Conference Hall K, Singapore EXPO
Date: Thursday, November 29, 2012
Time: 11:00 AM - 11:50 PM
Presenter: Mark Kilgard (Principal Software Engineer, NVIDIA, Austin, Texas)
Abstract: Attend this session to get the most out of OpenGL on NVIDIA Quadro and GeForce GPUs. Learn about the new features in OpenGL 4.3, particularly Compute Shaders. Other topics include bindless graphics; Linux improvements; and how to best use the modern OpenGL graphics pipeline. Learn how your application can benefit from NVIDIA's leadership driving OpenGL as a cross-platform, open industry standard.
Topic Areas: Computer Graphics; Development Tools & Libraries; Visualization; Image and Video Processing
Level: Intermediate
Preprint for SIGGRAPH Asia 2012
Copyright ACM, 2012
For thirty years, resolution-independent 2D standards (e.g. PostScript,
SVG) have depended on CPU-based algorithms for the filling and
stroking of paths. However advances in graphics hardware have largely
ignored the problem of accelerating resolution-independent 2D graphics
rendered from paths.
Our work builds on prior work to re-factor the path rendering task
to leverage existing capabilities of modern pipelined and massively
parallel GPUs. We introduce a two-step “Stencil, then Cover” (StC)
paradigm that explicitly decouples path rendering into one GPU
step to determine a path’s filled or stenciled coverage and a second
step to rasterize conservative geometry intended to test and reset the
coverage determinations of the first step while shading color samples
within the path. Our goals are completeness, correctness, quality, and
performance—but we go further to unify path rendering with OpenGL’s
established 3D rendering pipeline. We have built and productized our
approach to accelerate path rendering as an OpenGL extension.
SIGGRAPH 2012: GPU-Accelerated 2D and Web RenderingMark Kilgard
Video replay: http://nvidia.fullviewmedia.com/siggraph2012/ondemand/SS106.html
Location: West Hall Meeting Room 503, Los Angeles Convention Center
Date: Wednesday, August 8, 2012
Time: 2:40 PM – 3:40 PM
The future of GPU-based visual computing integrates the web, resolution-independent 2D graphics, and 3D to maximize interactivity and quality while minimizing consumed power. See what NVIDIA is doing today to accelerate resolution-independent 2D graphics for web content. This presentation explains NVIDIA's unique "stencil, then cover" approach to accelerating path rendering with OpenGL and demonstrates the wide variety of web content that can be accelerated with this approach.
More information: http://developer.nvidia.com/nv-path-rendering
Video replay: http://nvidia.fullviewmedia.com/siggraph2012/ondemand/SS104.html
Date: Wednesday, August 8, 2012
Time: 11:50 AM - 12:50 PM
Location: SIGGRAPH 2012, Los Angeles
Attend this session to get the most out of OpenGL on NVIDIA Quadro and GeForce GPUs. Learn about the new features in OpenGL 4.3, particularly Compute Shaders. Other topics include bindless graphics; Linux improvements; and how to best use the modern OpenGL graphics pipeline. Learn how your application can benefit from NVIDIA's leadership driving OpenGL as a cross-platform, open industry standard.
Get OpenGL 4.3 beta drivers for NVIDIA GPUs from http://www.nvidia.com/content/devzone/opengl-driver-4.3.html
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
3. CS 354 3
My Office Hours
Tuesday, before class
Painter (PAI) 5.35
8:45 a.m. to 9:15
Thursday, after class
ACE 6.302
11:00 a.m. to 12
Randy’s office hours
Monday & Wednesday
11 a.m. to 12:00
Painter (PAI) 5.33
4. CS 354 4
Last time, this time
Last lecture, we discussed
Project 2 on Programmable Shaders
Compression for Computer Graphics
This lecture
Project 2 discussion
Get started now
Interaction
5. CS 354 5
On a sheet of paper
Daily Quiz • Write your EID, name, and date
• Write #1, #2, #3, #4 followed by its answer
True or False: A True or False: Run-
hardware texture length encoding works
compression scheme well for digital
must be capable of photographs.
random access
decompression. If the surface normals in
a mesh are each stored
True or False: Floating as an index into a set of
point values are required 256 quantized normals
to have at least 23 bits rather than as three 32-
devoted to the mantissa bit floating point
and 8 bits for the numbers, what
exponent. compression ratio is
achieved over the
floating-point
representation?
6. CS 354 6
Project 2
Project is NOW available
PDF + code to use
Requirements
Mostly writing GLSL shaders
Small amount of C/C++ code
Convert height map to normal map
Implement NormalMap::computeNormal method
Intermediate milestone
Monday, April 2nd
Submit snapshots and GLSL code for first two shaders
Complete project
Due Friday, April 6th
All 9 shaders
Embellish for additional credit
7. CS 354 7
By April 2
Have these first two shaders tasks
implemented
Task 1: apply decal
Task 0: roll torus
8. CS 354 8
Procedurally Generating a
Torus from a 2D Grid
2D grid over (s,t)∈[0,1]
Tessellated torus
9. CS 354 9
GLSL Standard Library Routines
You’ll Need for Project 2
texture2D—accesses a 2D texture through a sampler2D and a 2-component
texture coordinate set (s,t)
textureCube—access a cube map with a samplerCube and a 3-component
texture coordinate set (s,t,r)
normalize—normalizes a vector
cross—computes a cross product of 2 vectors
dot—computes a dot (inner) product of 2 vectors
max—compute the maximum of two values
reflect—compute a reflection vector given an incident vector and a normal
vector
vec3—constructor for 3-component vector from scalars
mat3—constructor for 3x3 matrix from column vectors
*—matrix-by-vector or vector-by-matrix multiplication
sin—sine trigonometric function
cos—cosine trigonometric function
pow—raise a number to a power, exponentiation (hint: specular)
10. CS 354 10
Interaction with
Computer Graphics
Graphics isn’t just about pretty pictures
It’s also about interacting with pictures
SketchPad
1963
Ivan Sutherland
11. CS 354 11
Event Models
Polling
“while loop” reads events & processes them
Good for events arriving at a regular rate
Appropriate when events aren’t “digital”
May require sampling analog signals
Event-driven
Structured to avoid “busy waiting”
Callback-driven programming
GLUT’s event loop is callback-driven
12. CS 354 12
Physical Events vs.
Logical Events
Physical events Logical events
Real-world input Examples
Examples Key press delivered to
a particular window the
Key presses
mouse cusor is in
Physical link layer for Byte stream from a
networking
network socket
Charged-coupled Mouse clicked on an
device (CCD) captures
object in a 3D scene
image
May require signal
Higher-level
processing to make
into a digital event
Prone to noise
13. CS 354 13
Routing Events
What entity is interested in an event?
How is the event routed to the interested
entity?
Example: window system events
Mouse events generated by mouse
Button clicks and movement must go to the
correct window region
Window regions arranged hierarchically
Two or more events may be connected
The press & release of a mouse must be paired
14. CS 354 14
Model-View-Controller
Software architecture approach
Separates concerns
Model
updates modifies
Data and logic
View Controller
modifies
Interface / display User input
user responds to view with input
15. CS 354 15
Interactivity
Interaction Latency
Time from visual display to user action to
displayed response to user interaction
Low latency provides illusion of continuous
interaction
Graphics device display frames
Roughly 60 frames/second provides
continuous interaction
Roughly 16.6 milliseconds
Display devices tuned to this
16. CS 354 16
Frame Buffering
Problem with just one framebuffer
Updating the buffer you are displaying results in flicker and
tearing
One solution
Timing framebuffer updates to not be updating pixels about to be
scanned out
Known as “racing the beam”
Solution: Two buffers
One to display NOW
One to render NOW so to display NEXT
Ping-pong between the two buffers
Alternatively, copy “draw” buffer to “display” buffer every frame
Either approach needs synchornization
17. CS 354 17
Synchronized Buffer Swaps
Stall generate next frame until displaying
the last frame
16.6 milliseconds
18. CS 354 18
Unsynchronized Buffers Swaps
More frame rendered and lower latency to display
But tearing artifacts on displays
And some frames rendered but never displayed
Wasted work
16.6 milliseconds
tearing artifacts
19. CS 354 19
Triple Buffering
Expensive Compromise
Needs more memory, now 3 buffers
Renders frames that may never be displayed
But avoids tearing while minimizing latency
16.6 milliseconds
20. CS 354 20
Complex Interactions
Dragging objects
Cut-and-paste
Pop-up and pull-down menus
Selecting an object within a 3D scene
21. CS 354 21
State Machines to Managed
Complex Interactions
Think of on-screen “button”
You can click with the mouse
How does it really logically work?
22. CS 354 22
Manipulators and Choosers
Open Inventor
23. CS 354 23
Intuitive Interactions
Make computer behave in a way that’s natural to
humans
NOT the other way around
Good rules of thumb
Hint what the result of an interaction will be
Locate highlight buttons
Change cursor shape based on its position
Provide immediate and continuous display of state
Show mercy, people make mistakes, be able to undo
Make manipulation as direct as possible
Examples
Dragging and dropping objects
Pointing to indicate interest
24. CS 354 24
Back Projection
User clicks on screen…
Question: What object got “clicked”?
Known as “picking” in 3D applications
Basic operation in 3D applications
Process
Window system maps click to (x,y) in a particular window
Delivers the event to application selecting events on the window
Applications gets (x,y) in window space
Walk through scene graph
Invert viewport, projection, and modelview transforms
Back project point to object space ray
Intersect the ray with each object in scene graph
Does the ray intersect the object?
What intersected object is the closest?
Return the nearest object intersecting the ray as a “hit”
29. CS 354 29
Next Class
Next lecture
Procedural methods
Making shape, appearance, and animation from
programs—instead of data
Project 2
Start learning GLSL and doing project
Due Friday, April 6th
Incremental deadline on April 2nd
First two tasks