Course Hero - We put you ahead of the curve!
You have requested the below document.

WebServerArchitecture BYU C S 360
Sign up now to view this document for free!
  • Title: WebServerArchitecture
  • Type: Notes
  • School: BYU
  • Course: C S 360
  • Term: Winter

Coursehero >> Utah >> BYU >> C S 360
Course Hero has millions of student submitted documents similar to the one below including study guides, homework solutions, papers, and exam answer keys.

Server Web Architecture Web Server Architecture Complex Items to consider Response Time Features Helpful to consider best design practices Use concurrency HTTP/1.1 CGI Web Server Architecture Client http use dup2 to redirect stdin and stdout back to the web server Web Server stdin stdout CGI program Web Server Architecture Thread Pool Log Writer Open file while(1) m = deQ() write m Close file Log Queue Client Con Main Thread for(j=0;j<nthread; pthread_create() while(1) newsock = accept() enQ(newsock) while(1) while(1) sock = deQ() while(1) sock recv() = deQ() while(1) sock recv() process = deQ() while(1) recv() process send()sock = deQ() while(1) recv() process send()sock close(sock) = deQ() while(1) recv() process send()sock close(sock) = deQ() sock recv() = deQ() process send() close(sock) recv() process send() close(sock) process send() close(sock) send() close(sock) close(sock) enQ(logmess) nec t() Connection Queue Web Server Architecture Minimize Overhead Launch threads that stay around Use semaphores to eliminate busy wait Connection Queue Log Files Be Careful with shared data structures Producer main thread Consumers connection handling threads Producers connection handling threads Consumer log writer thread #include Web Server Architecture void *HandleConn(void *args) { while(we are still running) { // This call should block until I have a connection // You will need producer-consumer code sock = connectionQ.deQ(); recv(sock, message ) processURL() logQ.enQ( Retrieving URL: %s , URL) if (cgi) DoCGI() else { read file send(sock, response ) close(sock) .) logQ.enQ( } } } Queue connectionQ; Queue logQ; main() { // Use signal handlers to shut down nicely SetUpSignalHandlers() SetUpSocket() for(j = 0; j < nthreads; j++) pthread_create(thread[j], HandleConn,args) pthread_create(logthread, LogWriter, args) while(1) { sock = accept( ) connectionQ.enQ(sock) } } void LogWriter(void *args) { open the file while(we are still running) { message = logQ.deQ() write message to file } close the file } Shared Data Structures Queue of socket connections Queue of logging messages Strategy Write a template queue that inherits from the STL queue class Override the enqueue and dequeue methods template <class Elem> void MyQueue<Elem>::enqueue(const Elem &Item) { wait(EmptySem) template <class Elem> wait(mutex) Elem MyQueue<Elem>::dequeue(void) super.enqueue(Item) { signal(mutex) wait(FullSem) signal(FullSem) wait(mutex) } super.enqueue(Item) signal(mutex) signal(EmptySem) } Sample Exchange GET /path/file.html HTTP/1.1 Host: www.host1.com:80 [blank line here] HTTP/1.0 200 OK Date: Fri, 31 Dec 1999 23:59:59 GMT Content-Type: text/html Content-Length: 1354 <html> <body> <h1>Happy New Year!</h1> (more fiile contents) . . . </body> </html> Web Request Processing Receive the request Process the URL GET /CS360 HTTP/1.1 Host: star.cs.byu.edu Send Response Append URL to DocumentRoot Use stat to determine if file exists or if it is a directory HTTP/1.1 200 OK Content type: text/html, image/jpg or other mime type Content length: #bytes as reported by stat Binary Data (Write a loop that reads a buffer full of data and writes it to the socket until EOF)

Find millions of documents here - Study Guides, Homework Solutions, Papers, Exam Answer Keys and more. Course Hero has millions of course related materials that will enable you to learn better, faster and get an A in all your courses.
Below is a small sample set of documents:

fork.ppt
Path: BYU >> C S >> 360 Winter, 2008

Description: Process Control Major Requirements of an Operating System Interleave the execution of several processes to maximize processor utilization while providing reasonable response time Allocate resources to processes Support interprocess communication and...
WebApplicationDesignPatterns.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Web Application Design Patterns Large Scale Architectures Early systems were monolithic applications Then came the client-server applications WWW has changed things Standard extensible client Standard server platform Standard protocol Had to ...
firewall.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Web Security Firewalls, Buffer overflows and proxy servers system vulnerabilities Almost all vulnerabilities come from bugs in the implementation of, or misconfigurations of, the OS and/or apps Rarely, a problem with a protocol itself Vulnerabiliti...
Lec-1-perl.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: CS360 InternetProgramming Objectivesforthisclassperiod Webprogrammingisimportant Administrativeorganizationofthecourse Introductiontofirsttwolabs BasicPerl JobPostings Intermsofspecifictechnologiesyoushouldbe familiarwith,youshouldbec...
PeerToPeer.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Peer to Peer Networking Network Models => Mainframe Ex: Terminal User needs direct connection to mainframe Secure Account driven QuickTime and a TIFF (LZW) decompressor are needed to see this picture. administrator controlled Batch proces...
SSL.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Secure Socket Layer SSL and TLS SSL Protocol Peernegotiationforalgorithmsupport Publickeyencryptionbasedkey exchangeandcertificatebased authentication Symmetriccipherbasedtraffic encryption TLS,SSL,HTTPS Transport Layer Security, Secure Socket Lay...
AJAX.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: AJAX Asynchronous Javascript And XML AJAX A lot of hype It has been around for a while Not complex Think differently Powerful approach to building websites Allows for more interactive web applications Gmail, docs.google.com, Flickr, ajax13,...
Javascript.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: JavaScript Language Fundamentals Dec 11, 2008 About JavaScript JavaScript is not Java, or even related to Java The original name for JavaScript was LiveScript The name was changed when Java became popular Now that Microsoft no longer likes Ja...
HTTP.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: HTTP Introduction Client-Server communication protocol Request-response Version 1.0 Stateless Version 1.1 added the ability to keep connections open virtual hosting etc Request/Response Request - Response Architecture Client makes request ...
QueuingAnalysis.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: Q UEUING A NALYSIS William Stallings WHY QUEUING ANALYSIS? .2 QUEUING MODELS..3 The Single-Server Queue.3 Queue Parameters .4 The Multiserver Queue ..5 Basic Queuing Relationships .5 Assumptions..5 SINGLE-SERVER QUEUES.6 MULTISERVER QUEUES.7 NETWORKS...
self-similar.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Self-Similarity But First a a Queuing Theory Examples You know that the user tolerance for delay in displaying a web page is 8.3 seconds. You are launching a new product and expect to have 1100requests/minute during the peak of your offering. You ...
RubyOnRailsAndAjax.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: AJAX in Ruby-on-Rails Ruby on Rails and AJAX AJAX can be done with just Javascript Easier if you use libraries Prototype SAJAX jQuery Libraries only handle the client side Ruby on Rails also makes it easy on the server side Simple Consisten...
LURP.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: UDP User Datagram Protocol (UDP) Unreliable and unordered datagram service Adds multiplexing 0 16 SrcPort No flow control Checksum Endpoints identified by ports 31 DstPort Length servers have well-known ports see /etc/services on Unix pseudo...
WebCaching.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Web Caching Why Caching? Faster browsing experience for users Cache hit rate Traffic Prioritization Reduce network bandwidth requirements significantly Live media stream splitting Control who goes where and who does what and when they can do it ...
WebApplicationDesignPatterns.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Web Application Design Patterns Large Scale Architectures Early systems were monolithic applications Then came the client-server applications WWW has changed things Standard extensible client Standard server platform Standard protocol Had to ...
Threads.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Programming with Threads Threads Sometimescalledalightweightprocess smallerexecutionunitthanaprocess Consistsof: programcounter registerset stackspace Threadsshare: memoryspace codesection OSresources(openfiles,signals,etc.) Thr...
PerformanceEvaluation.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Performance Analysis What is it? & Why do I care? Performance analysis is the careful measurement of the capabilities and capacity of a system. identify limits find bugs know before you go Many bugs/problems only show up under extreme situatio...
JSPandJDBC.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Java Server Pages Java Server Pages Servlets are nice, but Its a pain to put in all those out.println stmts JSPs mix Java and HTML Within the same document Nice for team based projects Web page designers dont need to know Java Programmers d...
mysql.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: SQL What is a database? 4 a collection of data 4 Usually consists of entities and relations 4 An entity is an individual object that exists and is distinguishable from other individuals. Example: specific person, company, event, plant 4 Entities h...
Lecture06.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: Lecture 6:Web Server Architectures Kenneth Sundberg CS 360 Computer Science Department Brigham Young University Provo, Utah 84602, USA May 12, 2008 CS 360 Lecture 6:Web Server Architectures Complexity Web Servers are complex, so it is helpful to ...
DataModeling.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Data Modeling 1 Data Modeling A database can model a world which is seen as: a collection of entities, relationships among entities. An entity(-instance) is an individual object that exists and is distinguishable from other individuals. Exampl...
DataModeling.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Data Modeling 1 Data Modeling A database can model a world which is seen as: a collection of entities, relationships among entities. An entity(-instance) is an individual object that exists and is distinguishable from other individuals. Exampl...
CGI.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: CGI CGIProgramming Whatis\"CGI\"? CommonGatewayInterface Ameansofrunninganexecutableprogramvia theWeb. CGIisnotaPerlspecificconcept.Almostany languagecanproduceCGIprogramseven C+(gasp!) However,Perldoeshavea*very*nice interfacetocreatingCGImetho...
Lecture05.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: fork Signals Lecture 5:Fork, Exec, and Signals Kenneth Sundberg CS 360 Computer Science Department Brigham Young University Provo, Utah 84602, USA May 9, 2008 CS 360 Lecture 5:Fork, Exec, and Signals fork Signals The concept of fork fork fork(...
security1.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Authentication SHK Protocols CHK,knownare keys by Three-way handshake Client Server ClientID ,E(x,C HK) SHK) both sides When this message is received by the server, the identity of the client is not known At this point the server knows the client be...
self-similar.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: On the Self-Similar Nature of Ethernet Trafc Will E. Leland wel@bellcore.com Walter Willinger walter@bellcore.com Bellcore 445 South Street Morristown, NJ 07960-6438 Murad S. Taqqu murad@bu-ma.bu.edu Daniel V. Wilson dvw@bellcore.com Department of Ma...
Stat-Pipes.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: SystemCommandsand InterprocessCommunication chroot intchroot(constchar*path); chrootchangestherootdirectorytothat specifiedinpath. Thisdirectorywillbeusedforpathnames beginningwith/. Therootdirectoryisinheritedbyallchildren ofthecurrentprocess. ...
RubyOnRails.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Ruby on Rails Ruby on Rails Web Framework for Ruby Designed to make it easier to develop, deploy, and maintain web applications Design with Model-View-Controller Also based on DRY concept almost forced Dont Repeat Yourself (DRY) Every piece o...
Lecture01.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: Syllabus PERL TCP/IP Lecture 1: Syllabus, PERL, and TCP/IP Kenneth Sundberg CS 360 Computer Science Department Brigham Young University Provo, Utah 84602, USA April 30, 2008 CS 360 Lecture 1: Syllabus, PERL, and TCP/IP Syllabus PERL TCP/IP Cour...
PerformanceEvaluation.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Performance Analysis What is it? & Why do I care? Performance analysis is the careful measurement of the capabilities and capacity of a system. identify limits find bugs know before you go Many bugs/problems only show up under extreme sit...
RubyOnRails.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Ruby on Rails Ruby on Rails Web Framework for Ruby Designed to make it easier to develop, deploy, and maintain web applications Design with Model-View-Controller Also based on DRY concept almost forced Dont Repeat Yourself (DRY) Every piece o...
pipes.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: SystemCommandsand InterprocessCommunication chroot intchroot(constchar*path); chrootchangestherootdirectorytothat specifiedinpath. Thisdirectorywillbeusedforpathnames beginningwith/. Therootdirectoryisinheritedbyallchildren ofthecurrentprocess. ...
Lec-4-sockets.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Sockets Socket Berkeley Software Distribution Handle-like data structure for communicating A socket is an endpoint Send and receive Attach a protocol UDP TCP stream) user datagram (best effort) transmission control (reliable Sockets Connect...
Lec-2-perl.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: CS 360 Perl Part 2 Remember Assignments are Due Today Make a web page for all of your assignments You get to design it so it works well for you Email the TA with the URL Lab is due Monday Clean out your directory We are asking for more space ...
Lecture02.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: Sockets HTTP Lecture 2: Sockets HTTP Sockets HTTP Berkeley Socket Library C Sockets PERL Sockets ...
signals.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Signals Signals s s s Introduced in UNIX systems to simplify IPC. Used by the kernel to notify processes of system events. A signal is a short message sent to a process, or group of processes, containing the number identifying the signal. Example...
RubyOnRails-Databases-clement.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Data Modeling Data Modeling A database can model a world which is seen as: An entity(-instance) is an individual object that exists and is distinguishable from other individuals. Example: specific person, company, event, plant Entities have attri...
JavaServlets.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Java Web Applications WAR Web Archive Introduced with servlet 2.2 specification Portable deployment mechanism for web applications Defines directory structure Jard into a .war file for deployment Uses XML deployment descriptor Directory Stru...
AJAX.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: AJAX Asynchronous Javascript And XML AJAX A lot of hype It has been around for a while Not complex Think differently Powerful approach to building websites Allows for more interactive web applications Gmail, docs.google.com, Flickr, ajax13,...
Lec-3-tcpip.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Networking The Network is the Computer Client-Server computing Peer-to-Peer The Web Todays networking is wonderful, but How is it done? Ethernet Frame Format Addresses: Unique, 48-bit unicast address assigned to each adaptor Example: 8:0:2b...
etd1436.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: LOCAL URL RESOLUTION PROTOCOL by Joseph C. Ekstrom A thesis submitted to the faculty of Brigham Young University in partial fulllment of the requirements for the degree of Master of Science Department of Computer Science Brigham Young University ...
WebApplicationDesign-clement.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Web Application Design Large Scale Architectures Early systems were monolithic applications Then came the client-server applications WWW has changed things Standard extensible client Standard server platform Standard protocol Had to design cl...
Presenting.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Presenting Research Facts Most people are intimidated in front of and audience. Most people prepare way to much material for the time allotted Actual presentations go slower Often more intimidating than flying, poisonous snakes, death There ar...
QUEUE.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Queuing Theory Web Performance We talked about the importance of performance in web applications It is not easy to separate the different components of response time It is important to be able to make predictions from information that is easy to...
CGI.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: CGI CGIProgramming Whatis\"CGI\"? CommonGatewayInterface Ameansofrunninganexecutableprogramvia theWeb. CGIisnotaPerlspecificconcept.Almostany languagecanproduceCGIprograms However,Perldoeshavea*very*nice interfacetocreatingCGImethods evenC+(gas...
Semaphores.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Announcements Cooperating Processes Operatingsystemsallowforthecreation andconcurrentexecutionofmultiple processes&threads Cantheyworktogether?How? Messages? Whataboutsharedmemory? easesprogramcomplexity increasesefficiency Problems wi...
Lecture03.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: Threads Mutual Exclusion Lecture 3: Threads and Mutual Exclusion Kenneth Sundberg CS 360 Computer Science Department Brigham Young University Provo, Utah 84602, USA May 5, 2008 CS 360 Lecture 3: Threads and Mutual Exclusion Threads Mutual Exclus...
php.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Developing Web Applications with PHP RAD for the World Wide Web Agenda Introduction PHP Language Basics Built-in Functions PHP on Linux and Windows Tricks and Tips PHP 5 Examples Questions? Introduction What is PHP? PHP stands for \"PHP Hy...
Queue-equations.doc
Path: BYU >> C S >> 360 Winter, 2008
Description: ...
WebServerArchitecture.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: WebServerArchitecture WebServerArchitecture Complex Itemstoconsider ResponseTime Features Helpfultoconsiderbestdesignpractices Useconcurrency HTTP/1.1 CGI WebServerArchitecture Client http Web Server stdin stdout CGI program WebServerArc...
Semaphores.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Announcements Cooperating Processes Operatingsystemsallowforthe creationandconcurrentexecutionof multipleprocesses&threads Cantheyworktogether?How? Messages? Whataboutsharedmemory? easesprogramcomplexity increasesefficiency Problems with conc...
Lecture04.pdf
Path: BYU >> C S >> 360 Winter, 2008
Description: stat pipes HTML and CSS Lecture 4: Stat and Pipes, HTML and CSS Kenneth Sundberg CS 360 Computer Science Department Brigham Young University Provo, Utah 84602, USA May 7, 2008 CS 360 Lecture 4: Stat and Pipes, HTML and CSS stat pipes HTML and CS...
Ruby.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Ruby Know your roots Ruby Yukihiro Matsumoto aka Matz Created in 1993 Released to public in 1995 Designed to make programming fun, creative, and less stressful Stays out of your way so that you can concentrate on problem solving Know your roo...
fork.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: The Concept of Fork The Unix system call for process creation is called fork(). The fork system call creates a child process that is a clone of the parent. Child has a (virtual) copy of the parents virtual memory. Child is running the same program ...
RubyOnRailsAndAjax.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: AJAX in Ruby-on-Rails Ruby on Rails and AJAX AJAX can be done with just Javascript Easier if you use libraries Prototype SAJAX jQuery Libraries only handle the client side Ruby on Rails also makes it easy on the server side Simple Consisten...
LURP.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: UDP Unreliable and unordered datagram service Adds multiplexing 0 16 No flow control SrcPort Endpoints identified by ports servers have well-known ports see /etc/services on Unix Checksum Simple Demultiplexor (User Datagram Protocol UDP) 31 ...
Lec-3-tcpip.ppt
Path: BYU >> C S >> 360 Winter, 2008
Description: Networking The Network is the Computer Client-Server computing Peer-to-Peer The Web Todays networking is wonderful, but How is it done? Ethernet Frame Format Addresses: Unique, 48-bit unicast address assigned to each adaptor Example: 8:0:2b...
TITLEIX.pdf
Path: BYU >> C S >> 404 Winter, 2008
Description: Title IX and Women in Academics By Senator Ron Wyden This fall the athletic fields of America\'s elementary and secondary schools, colleges and universities will resound with the voices of girls and young women who choose to include sports as part and...
prospects.pdf
Path: BYU >> C S >> 404 Winter, 2008
Description: Prospects for Human Level Intelligence for Humanoid Robots Rodney A. Brooks MIT Artificial Intelligence Laboratory 545 Technology Square Cambridge, MA 02139, USA brooks@ai.mit.edu Abstract Both direct, and evolved, behavior-based approaches to mobile...
Lecture08-WindowToViewportTransforms.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Window to Viewport Transformations Compositing Transformations Does order matter? Case 1: translate by (2, 0), scale by (2, 2) Case 2: scale by (2, 2), translate by (-2, 0) Begin: red, 1st transform: purple, 2nd: green...
Lecture05-Clipping.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Clipping Line Clipping What happens when one or both endpoints of a line segment are not inside the specified drawing area? Drawing Area Draw just the portions of a line (or object) that fall within a given region/window/...
Lecture12-Color.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Color What is Color? Color is the spectra of light being perceived by some the human visual system Light is electromagnetic energy in the 400 to 700 nm wavelength range of the electromagnetic spectrum Direct: light rea...
Lecture09-3DTransforms.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Three-Dimensional Transformations 3D Space We want to extend the idea of transformations to deal with 3D objects More complex than 2D, but essentially the same ideas work Coordinate systems: y x y z x Left-handed z Righ...
Lecture16-RayTracingIntersections.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Ray-Object Intersections Curve and Surface Types Implicit f(x, y) = 0 plug in an (x, y) point - if f = 0, the point is on the surface - if f < 0, the point is inside the object - if f > 0, the point is outside the obje...
hints_program2.pdf
Path: BYU >> C S >> 455 Spring, 2008
Description: T.A. Hints for Program 2 CS 455 Computer Graphics Brigham Young University Justin Talbot The Big Picture for Programs 2 and 3 1 2 3 4 5 Point (x, y, z) 3D Modeling Coordinates This is what you read in from the file. Object Transformations (Compo...
Lecture11-Viewing-II.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Viewing Transformations II Arbitrary Views Suppose we want to look at the environment from somewhere other than along the z-axis How do we do this? What is the perspective matrix? Where should an object project onto ou...
Lecture05-Z-Buffering.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Z-buffering Z-Buffering Image precision algorithm: Determine which object is visible at each pixel Order of polygons not critical Works for dynamic scenes Rasterize (scan-convert) each polygon, one at a time Keep track...
Lecture22-Curves-II.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Curves II Curve Applet Bezier Curves Similar to the approach for Hermite Curves, but the constraints are different Specifying tangent vectors is difficult It is easier to specify points that represent the tangent vector...
Lecture01-Intro.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Introduction Course Content Graphics devices 2D and 3D graphics Drawing algorithms Transformations Shading Viewing Rendering Prerequisites Programming assignments: C+ or Java OpenGL: some in class, some on your ...
Lecture13-IlluminationShading.ppt
Path: BYU >> C S >> 455 Spring, 2008
Description: CS 455 Computer Graphics Illumination & Shading What is a Shading Model? A way to paint the object with light We will discuss the common, heuristic shading models: Diffuse Gouraud Phong Not physically based: hacks that work well in practice...

Course Hero is not sponsored or endorsed by any college or university.