字幕表 動画を再生する 英語字幕をプリント Hello and welcome everybody to the series of lectures on computer graphics. Today we have the introductory and the first lecture on computer graphics and this is a series of 40 lectures. So we start with the introduction on computer graphics. Well, computer graphics is an area of computer science and engineering which play a very important role in almost every applications of computer software and use of computer science. Computer graphics involves display, manipulation and storage of pictures and experimental data for proper visualization using a computer. Typically a graphics system comprises of a host computer which must have a support of a fast processor, a large memory and frame buffer along with a few other crucial components. The first of them is the display devices. Color monitors are one example of such display device. We need a set of input devices. Typical examples are the mouse, keyboard, joystick, touch screen, trackball etc. Through these input devices you provide input to the computer and display device is an output device which shows you the image. There are other examples of output devices like LCD panels, laser printers, color printers, plotters etc. You can also have interfacing devices for a computer graphic system such as video input output to a system or an interface to the TV. So these are some of the basic requirements necessary to build a computer graphic system. Well as u see now this flowchart gives the conceptual framework of interactive graphics system. On left hand side you see an application model which the designer of computer graphics system or software engineer will put his design. That is he will model the object he is planning to display. Then he writes the program based on the application model. This application program will run on the computer graphic system the output will come out to the screen and inputs could be obtained from keyboard or from the mouse, so that is the typical framework. There are lots of applications of computer graphics. So we will see just a few examples of application areas of computer graphics. The first and most important of them is the GUI as it is called. What is a Graphical User Interface or GUI as it is called? It has various components. A graphical interface is basically a piece of interface or a program which sits between the user and the graphics application program. It helps the graphics system to interact with the user both in terms of input and output. Let us see few examples. Typical components which are used in a Graphical User Interface are menus, icons, cursors, dialog boxes and scrollbars. We will see the few examples of these in the next slide. There are few other components which also could be used like buttons, valuators, grids, sketching and 3D- interface. Let us take an example to see what these different components are in typical graphical interface. As u see in the next slide what I have done here is taken an example of Graphical User Interface from software called Adobe Acrobat reader which is used for reading adobe documents or PDF files. Now this is an example which has various components of the graphical user interface which we have talked about. You see the list of menus on the top in terms of the components on the top screen bar and of course this is an example of what is called as a pull down menu. You can click one of these and then what will happen is you will get a pull down menu and adobe reader is one other example. You can try this with various other menus and Linux based software starting from Word, PowerPoint users, Linux, X fig and Paint Brush in Windows also so these are some of the menus. Let us go back and see the next example is the icons and the cursor. Of course you can see probably we can make out the cursor floating around to a point to a particular location. These are certain examples of icons in terms of the options which will help you. The icons are small representative pictures of tasks of computer graphics application program which you are using. So these are certain examples of the icons, cursors, the dialog boxes. Well, the next example does not have a dialog box. The dialog box is an example of a small window which is used by a computer graphic system to interact with the user by sending error or text messages. A typical dialog box is used to send an error message to the user that you have provided the wrong input let us say. So that is an example of a dialog box. The scroll bar is an example, on the right hand side you can see of this window of the example of this image which I have put here is a scroll bar which could be used to scroll up and down. Anything which you need to move within the screen right to left, up and down you can use scroll bars and it will give you the current status or position of where you are in terms of the screen location or the amount of data you are viewing. In this case the part shows here that you are somewhere on the top part of the page or top part of the document which you are viewing. The other examples of the graphical user interface which is probably not in the example I have taken such as buttons, valuators, grids and sketching. Just to give an example buttons could be considered equivalent to small icons. Valuators could be used to control the particular value which could be linear or circular you can assume it be a knob on a radio or a TV set which you control to control the volume or tune it to a certain frequency or it could be in the form of a slide which you could move from left to right or top to bottom to control a particular value to give as a input to the computer graphic system. Grids are used in two dimensional graphics packages to align your objects along a set of specific coordinates or positions those are called the grids. You can switch it on and off and display them on the screen. Sketching is an example which is used to draw lines, arcs, poly lines and various other objects. The most difficult part of the Graphical User Interface is at the bottom of your screen is what is given as a three dimensional interface. It is easy to interact and handle with two dimensional objects but when you are interacting with the three dimensional objects you need a three dimensional interface to pick up one of the 3D objects from a two dimensional screen. Essentially the computer monitor is just a two dimensional ray of pixels where the entire picture is projected and the picture could represent a three dimensional scene. So you need special type of interfaces to pick up or manipulate objects in 3D using a two dimensional interface. So you need special facilities for 3D interface to handle or manipulate three dimensional objects. The 3D interface is one of the hard topics of research in active areas and the part of the Graphical User Interface. Let us come back to other typical application areas of computer graphics. Plotting in business we need to plot various curves in the form of pi-charts or 2D or 3D graphs. And probably in business applications you need to show the growth rate of the company, the expenditure, the profit and the various other types of work forces that you have been using, various economical types of data for business applications and so you need plotting. You need to provide for office automation which are the standard packages of Word in Microsoft and the Microsoft Excel and PowerPoint are examples of office automation. Almost all software has Graphical User Interface along with desktop publication for designing documents, for designing PowerPoint slides like these you also need the help of graphical user systems. Plotting in science and technology, we discussed about plotting in business and plotting in science and technology is absolutely necessary in almost all areas of study, any branch of science and engineering and technology and I was talking of 2D or 3D graphs in the form of line drawings, surface plots, contour plots, ISO contour plots, pi charts, so various types of plotting are necessary in science and technology. And you probably cannot do without computer graphic systems which has replaced the traditional draftsmen which are to take the help about one or two decades ago for the help of plotting. Web business, commercial publishing and advertisements you need to design very good advertisements on the web or on the TV shows and for the commercial shoot outs may be post certain banners outside in the city and you do take the help of computer graphics to make your advertisement and very attractive and with that you can get a wide amount of publicity. Coming to engineering applications we talk of CAD/CAM design when we expand those terms it means computer aided design and computer aided manufacturing and typical example of CAD/CAM is a vast scope in many fields of engineering and technology. But I have taken three examples in this case VLSI Very Large Scale Integration constructions in the area of architecture and civil engineering and circuits designs in the area of electrical engineering. And these are the areas of CAD/CAM designs where we actually manufacture a particular chip in VLSI or a printed circuit board let us say in a circuit or an architecture, a bridge or road or it could be a building or a complex, a multi-storey complex we would like to design it in a computer graphic system to have a view and provide the interface and show what sort of design you have come up with. So there are various utilities of CAD/CAM designs in computer graphics which play a very crucial role. Scientific visualization is almost similar to what we talk of plotting in science and technology. But we need to visualize something we can say as multi-dimensional data, something which requires animation. Let us say you would like to visualize the effect of a nuclear explosion so those sorts of visualizations and you need to understand certain patterns in data, it could be in genetic engineering, biological sciences or mechanical sciences or anywhere else. You would also like to have a visualization of the scientific data and you demonstrate the activity which is going on in a system using a typical Graphical User Interface. Entertainment, very important, a huge market in the industry where you need computer graphics system to design movie, TV advertisements, video games in fact almost a majority of the market economy in computer graphic systems probably revolves around the entertainment world where we create not only animation or carton movies but we also make real time movies in between the real time characters. You make advertisements with the help of real characters and merge it with various types of steel frames, cartoon characters and things like that to create good advertisements. And of course, video games it is a very lovely market not only for young children but even adults get attracted to lots of video games and similar kinds of entertainment. Simulation studies and simulators I will put both of these together. Well this is another application I will say close to scientific visualization where you need to create a system with a good graphical interface for various applications. Simulation studies and simulators include areas such as computation, fluid dynamics, heat and mass transfer, various other mechanical and chemical processors, it could include even studies about nuclear explosion and disaster management, damage prediction in a certain area, flight simulators. If we talk of simulators, flight simulators car racing, docking of a naval ship or a space shuttle, you would like to train your pilots and engineers before going on to a particular mission and you can use simulators to really test the skill of a particular person. It could be even in the field of sports one would like to use simulators to study the reaction time of a particular individual. Cartography is an area which is connected to drawing, manipulation and creation of maps as I would say. It is an area in civil engineering, geology, geography, applied geophysics and Cartography is involved in the design of maps, creation of maps in geographical engineering systems and for other geographical applications. Basically it has to do with the creation of maps. Multimedia is vast area again it combines text, audio images, video, computer graphics everything together and the presentation must be very synchronized and computer graphics is a very important and integrated part of any multimedia presentation. Virtual reality, well we discussed about video games. That is probably a very classical example of virtual reality. Or even animation movies or movies synthesized with the help of computer graphic systems which takes you to a completely different world and you can acquire big set of movies which have come out in the last decade based on virtual reality. Either the movie shows itself or it can help you to design good simulators and training kids for people before like the pilot of an aircraft, before they go on to actually test a system you can test their skills using virtual reality systems. Process monitoring again in chemical and mechanical processors you can have a large plans where several activities are going simultaneously and we can have sensors fitted at various points which monitors the health and the flow of a particular assembly line or a system is going on and we need online monitoring to find out that the entire team is working true and in a correct form. The sensors are giving feedback simultaneously from different locations and if there is any wrong signal coming out from the sensor you can generate an alarm using a Graphical User Interface and alert the person who is probably monitoring it. So GUI could be used for process management as well. Digital management processing is a vast area by itself. But I will probably like to mention areas connected to computer graphics which involves manipulations, storage and editions of pictures, enhancing the quality of the pictures, the contrast of the pictures, removing the noise, the blurriness and all those types of manipulations of digital pictures, saving them in different types of formats starting from ENP, PGN, TIF, JPEG you name it sort of a thing as all are coming under the field of computer graphics. The last and not the least of for what we are also here, the computer graphics is also playing a major role in education and training not only in giving lecture series like the topics but today we are discussing but for any sort of education and training to individuals, professionals, students and may be even bureaucrats and politicians mainly where computer graphics systems could really become very helpful in training certain professionals and educating people. So we come out of computer graphics applications and move over to certain application packages and standards available in computer graphics. As we see here computer graphics packages and standards have evolved over time before of course we go on to tell you what is the standard we will name a few of these; core graphics was the traditional standard of computer graphics and then we had the GKS and then the SRGP, I will expand these terms and then we had PHIGS SPHIGS AND PEX 3D and currently we have the OpenGL with or without ActiveX and Direct3D and the OpenGL is also available on X11 based system on Linux operating system. We will try to see the expansion of GKS. It is a Graphics Kernel System which was defined as a standard, almost the first in computer graphics by ISO and ANSI you can see the expansion of the word ISO International Standards Organization and ANSI stands for American National Standards Institute. Why are we taking about standards? We are taking because you need, a programmer needs a certain set of rules, constraints, procedures, syntax and function cause within his programming environment to build a graphic system. We have not come across to learn how to build a graphic system but if every person comes up with his own different type of syntax, formats and function cause, then when you design a system nobody else will be able to use your system and build another system on top of it so we need to talk of standards. And ISO and ANSI came up with the first standard of the Graphic Kernel System and it was very popular till it was probably replaced for a very short while by SRGP or Simple Raster Graphics Package as it is called. SRGP was very simple but was soon replaced by the standard called PHIGS Programmers Hierarchical Interactive Graphics System. I repeat PHIGS stands for Programmers Hierarchical Interactive Graphics System. This was quite popular I should say probably up to the late 90s and then currently we have the OpenGL, let us go back, the PHIGS replaced by current standard as industry has accepted today called OpenGL graphics available on almost all system of Windows and Linux which are the most popular system used all over the world in industry as well as in educational institutions. And what you have to do is to download the device drivers, download the libraries, download the header files for OpenGL corresponding to your operating system and also the display adapter chord which you are using and then once you have the compiler when you talk about visual environment or dot net in windows system or in new environment or X11 graphics system is available on Linux you should be able to use OpenGL as a standard and write your own graphics, programs or packages. So this is how it has probably evolved over time, you do not need to know all of them, we will stick to OpenGL standards whenever you use comments and syntax for giving examples of graphic system. Sometimes you may use PHIGS also because just a few years back that was one of the popular standards. And I was saying sometime back these standards are available in almost all systems of course we have almost forgotten the use of the DOS or Distributed Operating System, most commonly used operating systems based on Windows or Linux and the OpenGL and PHIGS are available on both. You also have graphic systems and operating systems such as OS/2, silicon graphic system, SunOS, Solaris, HP-UX these are the old systems and Mac and DEC-OSF. But the most common platform are Linux and Windows but we should not forgot the silicon graphic systems and the Solaris which have been also quite popular in many parts of the world. Various utilities and tools which are available for computer graphic systems and specially for web-based design which includes Java, XML, VRML and GIF animators. These are mostly examples of tools which help you to create nice web pages I should clarify here. But when you are designing a graphic system you are not probably only interested in a web page design but you are interested to come up with say a computer game or demonstrate certain facts through virtual reality or simulators or simulate a certain scenario through animations. So you need an operating system with graphics library support and pick up a standard to use it. So most compilers starting from the current visual CC++ visual basic, the Borland’s turbo C Pascal, even new CC in Linux and java provide their own graphics libraries, API or Application programming environment and support and help for programming for both 2D as well as in 3D graphics. So you have to ensure that the proper operating systems, the proper compilers and correspondingly the proper libraries and APIs are all installed for your use to help you to design the computer graphic system. Well, you must be careful with some of these systems there are basically two types, some of them are device independent and some are device dependent. I should clarify here the difference between the two examples of device independent or X11 systems or OpenGL systems. Device dependent systems are the SGI systems and the old Hewlett Packard or advanced graphics packages probably which nobody uses these days. Device dependent systems had a drawback in the sense that once you design your own graphical computer graphic application program on a particular system it is almost impossible, it is very difficult to take that program and run it on any other system. So those are examples of device dependent system where if you program it on one particular platform, on one particular system which will run almost entirely on identical platforms, identical machines, identical systems. This is not the case for device independent systems. In device independent systems if you design a computer graphics program in a X11 system or an OpenGL system either it is Linux or Windows almost with very little change or no change in certain occasions you should be able to take that program and run it on any platform, any machine which has windows or Linux with OpenGL support, X11 supports OpenGL as well. You should be able to run such programs anywhere on a device independent system. So that is the difference between a device dependent one where you cannot run on any system, you have to run it on only that system or exactly identical systems whereas device independent you should be able to run it on any system. You can change your keyboard, your mouse, your monitors, you can change your operating system on platforms you should be able to run the device independent programs on any system independent of whatever type of devices you have been using. Well, what you draw? We are talking of standards, platforms, device dependent, device independent and all that. There are basically four basic output primitive elements for drawing pictures. You can draw a very complicated picture, you need to draw of course for most applications. But you basically draw almost any picture with a very few fundamental operation or what we call as output primitives. We will clarify output primitives later on but assuming for the time being that you hold on and look at these examples of what are called primitives. A few points to be clear, poly lines, you can draw a line from a point x1y1 to a point x2 y2. Take a graph paper plot a point x1 y1 and plot a point x2 y2 and then what you do draw a line so that is the simple example of drawing a line. What is a poly line? Well, you can have a set of n points with coordinates x1 y1 x2 y2 x3 y3 and so on up to xnyn in any order does not matter and the poly line command or the output primitive will draw lines from the first point x1y1 to a point x2y2 and then connect x2y2 to x3y3 and so on and it will connect the last set of pair of points basically connecting the points in that order as given in the function and that is an example of a poly line. The next feature or next output primitive which we see after poly line is called the filled polygon or also filled region you can call. But the technical term is a polygon or a filled polygon. Well, a polygon can be filled or it may not be filled. But what is the difference between the poly line and a polygon? Well, the difference is the following; in a poly line we discussed about a set of n points being joined by lines. The same set of n points could be for a polygon line. But in the case of a polygon the last and first point are joined together to enclose the region. You remember, in a polygon we started from x1y1 to x2y2 and we stopped at xnyn to draw a line. We kept on drawing lines and in the case of a polygon we take the last point also and connect it or join it with the first point so that will be the enclosed region. That is why it is also called a region but polygon is probably the proper terminology and then you can also fill it. Of course you will see in the algorithms how to fill the polygons with certain shades, textures and colors when the particular topic of drawing polygons and scanning polygons will come but that is also the functionality which is provided as an output. The next primitives are we talked of lines that we should be able to draw curves. And if we go back the output primitive for drawing curves is basically to draw an arc or a ellipse. So you should be able to draw a arc or a ellipse and remember you should bother about drawing a circle where geometrically if you see the equation of a circle and ellipse, the circle is a very special case of drawing an ellipse. So once you are given the option of drawing a ellipse or part of the ellipse as an arc you should be able to draw any arc, you should be able to draw a circle as well as ellipses. So that primitive must be there. In addition you should also be provided an option to text. Text with various kinds of fonts, various types of sizes, various types of scalable fonts and it could be in bold, italic font and all that with various such options. You should be provided an option to draw text and position it anywhere in any arbitrary orientation that option should be there in a computer graphics system. And the last but not the least is to draw a Raster IMAGE. You should have the option to open a Raster IMAGE, a digital image, it could be stored in any format. We discussed about a few of these examples format in applications of computer graphics or image processing where the format could be JPEG format a DMT format, a PGM or TIF but you should have the provision to read a particular digital image, display it on the screen, edit it, manipulate it, colors, give shades and whatever it is and then you can save it back, save it back to the disc or file. These options must be there as output primitives and once you have these I can almost assure that you can draw any picture which includes animation. That is of course a special feature but let us talk of static feature. Now, actually you should able to draw any complicated static picture once you have all these five basic primitives available on any computer graphics package or standard. Well the four major areas of computer graphics you will discuss in various lectures in a sequence later on but not necessarily in this sequence and they will be display of information, design and modeling, simulation and user interface. Well, we discussed about user interface already. Throughout the lecture we will talk about design and modeling which is the important part and in fact in the next lecture we will talk about display devices and then display of information. And of course to make the entire package work you must simulate it and make the application program work. So these are the four major areas where people work and also do research in the field of computer graphics. Well, computer graphics system could be active or passive. That is another terminology which you must know. Let us read the lines, as you see here in both cases the input to the system is the scene description and the output is a static or animated scene to be displayed. That is true for both active and passive systems. Your input is the scene description and the output is some picture, a static picture or animated picture. Then what is the difference? The difference is that in case of active systems the user controls the display with the help of a graphical user interface using an input device and that is only possible in active system. In passive system you do not have any control, you have to watch whatever is shown to you. A typical example of a passive system, whatever you see in your TV, well you can change the channel but you stick to the particular channel, you are forced to see whatever is broadcasted by that particular channel. You can switch off the TV and go to another channel but you do not have control of what is being viewed on the screen or what is being telecasted on the screen or projected on the screen by the channel broadcaster. So that is the example of a passive system. Example of an active system is very easy, the video games where almost you can decide where you want to go by giving an input through the mouse, through the keyboard, through the joystick so that is the example of an active system where the user play a prominent role and the pictures are shown depending upon the inputs given to the user. Although, the sequence is pre decided but you can provide many options for the games and quite a bit of randomness in the animation and the task which the video games will actually ask the user to do. It could be a very good active system in order to a passive one which you might think. Last but not the least of computer graphics introduction is, computer graphics is now-a-days is a significant components of all system applications of computers in every field of life. Right from the point the computer boots up the operating system comes up and the login prompt is provided to you then you log in inside the screen see your desktop options in windows and Linux everything is controlled by a computer graphics applications package or computer graphics software it is there in every field of life now which involves of course Computers, TVs, video shows and movies and one cannot think of systems without computer graphics. Well let us look at a list of the major concepts and principles of computer graphics which we will go through this course. This is an introductory course but let us move on to certain topics. Almost in this order we will talk of displays system in the next introduction lecture and in display systems we will talk of storage displays, random scan displays, raster refresh displays, CRT basics, video basics and flat panel displays. We will try to cover as much as possible with display devices and videos in the next lecture after introduction. Then we will move on to transformations, manipulations of computer graphics and computer graphical objects dealing with transformations which mean manipulation objects. And mathematically we have to learn about affine transformations which involve rotation, translations, scaling, reflection and shear then comes viewing transformations. The camera transformations in terms of various types of perspective projection, various types of orthographic, isometric, stereographic views the way we human beings see. And the corresponding quaternion of the mathematics is associated with transformations. Then the next we will see on how to draw a line. We discussed about an output primitive to draw a line or a curve as a function but actually how it is implemented in a graphics package we must also know. You can use the command to draw a line but you must know how the command is working inside the system to draw a line. So it involves learning about scan conversion and clipping, drawing of points, lines, line markers, curves, circles, ellipse, poly line, polygon, area filling, fill style, fill pattern, clipping algorithm and anti-aliasing. So there are various topics as you see on the board here for scan conversion and clipping. It involves many of these options. So we will study those, the algorithms involved in scan conversion algorithm. Well, hidden surface removal is the next task. We are moving from 2D to 3D now where we talk of three dimensional structures and objects. When you see a three dimensional object in front of you it is evident that you will be able to only see the faces which are in front of you. You will not be able to see the face which is on the back side. So how to come up with the algorithms using geometry, mathematical model to find out which part of the surface of an object is facing you and which part of the object is behind you. So those algorithms involve the concept of hidden surface removal. There are various ways and means and by which you can do by it hidden surface removal. The first and easiest is back face scaling. As you see on the board the next few algorithms are Painter’s algorithm, scanline algorithm, BSP-trees, Z buffer/sorting, Ray tracing etc. The most popular among these are the Z buffer and Ray tracing. But people also use back face culling and BSP trees. After you remove the hidden surfaces you need to shade and eliminate the surface facing the viewer or facing the design. It involves shading and illumination. There are various shades of model; Phong’s shading model, texture mapping, bump mapping, Gouraud shading, Shadows and background, Color models etc. So when you move to that chapter of lecture you will study the chapter of shading and illumination. Solid modeling, we need to model a solid object. There are various types of methods and algorithms and techniques by which you can model a solid object. I will give an example at the end of the talk today about wire-frame object. But we can use other representations like Octrees, Sweep representation, Boundary representation, regularized Boolean set operations and constructive solid geometry or what is also known CSG. In the last you also move towards curves and surfaces which involve special mathematical functions like Bezier or Bernstein polynomials curves, B-Splines, Cubic-Splines Quadratic surfaces, parametric and non-parametric forms, Hermite curves etc. Depending upon the time I will also cover some advanced aspects such as concept of Animation, Fractals, Projection and Viewing, Geometry, Modeling, Image File formats, Image Morphing, Interaction sample and event-driven etc. Also, if you have some background of computer architecture you will be able to follow the parts of my lecture which talks about Display Processors, Pipeline and parallel architectures, multi-processor systems, hybrid architectures, you need some good fantastic highly optimized high speed architectures to make your graphics program work really fast so that the user doesn’t have to wait for a certain event to occur after he provides the input. Well, these are the list of references or books on computer graphics which I will ask you to go through as a part of this lecture. You can at least purchase one of them. Well the most advance one is the first one which is Computer Graphics Principles and Practice by J. Foley A. Van Dam and Hughes that uses the fixed standard. The nest book is by Rogers and Adams which is taking about the Mathematical Aspect of Computer Graphics. The third book in fact is the book by Computer Graphics C Version Hearn and Baker which is simple and easy to read as it has lot of good illustrations and you can use that book as well. Well, if you are talking about the current standard of OpenGL I would recommend the fourth book. There are good examples and programs that you can take on and try it on your system to see whether it works and which gives you confidence. And the last but not the least is a book by Rogers on Procedure Elements of Computer Graphics. It is a good mixture of mathematics as well as concepts and algorithms on computer graphics. I do believe one should have one of these books, if possible two books at your disposal also to have a reading material in addition to listening to these lectures to understand computer graphics. Well, to wind up the lecture I have brought today some examples and illustration of computer graphical objects. Well, I will not have time today to tell you how these graphic objects are created but we will see examples of what computer graphical systems can do or generate. I discussed of a 3D solid modeling in one of the course contents. This is an example of wire–frame model of a sphere which uses the sweep representation. Well, if you see the sphere it looks like a sphere and how this has been created? Well, assume the surface of the sphere is a perfect sphere. We have learnt that in basic school geography and you can start to think of latitudes and longitudes on the surface of the earth. Remember, the vertical circles on the surface and the horizontal lines which are equidistance sort of a thing, and of course the vertical circle which intersects at the north and the South Pole probably that is the best example. So you have to take those sort of lines, latitudes and longitudes and the intersection points of those latitudes and longitudes give the vertices of the wire-frame model or basically the 3D coordinates of these sphere. Just to see an example of what I mean we will go to the next slide in the left hand side which has come out now. As u see some of the vertices have been marked by a light red color, a light reddish color and those are the vertices which are the intersection of the vertical lines and the horizontal parallel lines or something like the latitudes and the longitudes of the hard surface in the map of the earth. Of course it is a very fine grid but those intersection points are the most crucial for storing or representing the sphere. The 3D coordinates of the intersection points are basically stored to represent the wire-frame model of a sphere using a sweep representation. What is a sweep representative, you do not have to worry about this now. Just to give an example you can take a circle and rotate the circle in 3D vertically that will give some example of the sweep representation. But you can generate other types of objects as well. Well, if you see the third figure I have joined a set of three vertices, a few of them to show a set of triangles. now what you need is after you have the wire-frame model you need to apply techniques like hidden surface removal, then you need to apply illumination and shading and to do that you need to approximate the surface of a curved object like a sphere or even a planer surface could be a rectangular parallelepiped or a cube with a set of triangles or quadrilaterals or rectangles. We have taken the rectangular, that is the best approximation and that smaller patch which is curved is approximated basically by this triangle or linear patch. And once the coordinates of the triangle are known you can apply the algorithm of hidden surface removal, back face culling, illumination and shading to actually throw of the hidden surface which is back side as viewed. Now you do not need to shade the surfaces or the patches which are on the back side of the object, not visible to the viewer from the front and then you need to shade. So, all those shading algorithms and back face culling rely on the area, the surface normal and the orientation of those rectangular or triangular patches. So, these are the examples of the triangular patches which should be used for shading parts of this sphere, just an example. Well, these are some examples of simple 3D objects. This is an example of four objects here, well you can assume that at the bottom there is a flat table type of structure or a small very thin rectangular parallelepiped and on top of that there are three object a cube a sphere and a pyramid. Well, you can think this pyramid to be a cone but it does not have a rectangular base. I will say this is a pyramid with an octagonal base. A highly approximated sphere and in a cube there are four such objects and these are some examples of primitive objects that you can use, combine and manipulate to create other objects. Well, these are simple objects and then you can of course shade them. But to create complex objects let us take another example like this, this is a object which is already shaded, it is a pyramid, a perfect pyramid with a triangle base but it has a hole. We will see an example of how to create such a hole within an object with different examples. But this is an example of an object which is shaded it is slightly complex in the sense that it has a hole and that is an example. We will see the next example. These are another set of primitive objects which are very commonly used to generate other complex 3D structures. Examples are; a cylinder, a cube, a sphere, a perfect cone and a triad, a 3D triad. And these are examples of five objects which are used and combined and manipulated to generate other complicated structures. And in this case you can use sweep representation or a wire -frame to have the model of the object and then shade it. As you can see here it is shaded with a constant color and it gives an effect of the shadow as well. All these objects on the right hand side bottom as you see probably tells you that the light is falling on the object from the right hand side of the screen somewhere from the right hand side of the screen, the object. Now this is an example where the objects are shaded with textures. In the left hand side top wire-frame diagram that object is shaded with texture mat and four different textures on four different objects. And sometimes the texture gives a good feeling, it gives an idea of good shape of the object but sometimes it does not. It looks very nice but it does not give you the shape. To my feeling the texture gives a good revealing shape for the cone but I am not satisfied whether you are able to perceive the shape of the structure of the cube with the help of texture mapping which has been done. The texture sometimes reveals the shape sometimes. I will give another good example where the shape information is perceived by the viewer much better with the help of a texture than the normal flat type of uniform color shade. Before that we talked with a simple example to create a hole using CSG or constructive solid geometry. I am now interested to take to create a hole within a sphere. A small cylindrical hole within a sphere is my target so I basically I picked up an object which is a union or a combination of two parts where a sphere and a cylinder is passing through it. In virtual reality the computer graphics does not stop you from creating complicated structures or put a structure within another structure. So what I have done is I have started with a structure which is a union of a sphere and a cylinder through it. I start with a structure then what I need to do is basically take out this cylinder out of this sphere. Once I take, it is something like an object subtraction not mathematically but in terms of object structures. If you look into this screen I would like to subtract this cylinder from this sphere. So I have displayed with two colors so I am taking out that greenish cylinder out of that purple type sphere and if you can do that the resultant structure will be as shown on the right hand side bottom of the screen. You will be able to obtain a sphere with a cylindrical hole inside. The last couple of examples here are the shading effects of texture mapping and shadows. We will take the example of a simple parallelepiped, a linear patch at the bottom and some sort of the curve irregularly curved object on the top and that is the simple example again of a wire-frame or sweep representation and this is an example of constant uniform color shading. Now it is good for the platform which is rectangular patch at the bottom, uniform red color absolutely no problem. But I do not think you will be able to perceive the structure or the 3D shape of the curved object nicely with the help of shading information as given here in the grey shade. In this case it is better to put a texture mapping like this. As you can see both on the planar surface and curved object once I map it with the texture, the texture reveals the shading along with the shading effects the curvature or the structure of the objects both in planar and as well as definitely in the curved objects the shape information is revealed much more in a satisfactory and better manner with the help of texture. This is a very good example why texture is better than normal shading in terms of revealing the structure of an object, the structure is good. I did say it helps to visualize the shape and structure of objects, typical examples of geometrical structures being mapped on artificial object synthesized by computer graphics are given on the left hand side of the screen. Two examples I do not think there is any problem in visualizing the 3D structure of these objects. Well, we have to end the sphere on the top as you can see forgot the color of the scene part of it. Even if it is in black and white there is no problem, you need to visualize the structure and at the bottom you typically have four curved parts of the structure. It could be a structure on a wall, or a ceiling, or a roof of a particular building which could have these particular shapes and this texture helps you to understand the shape in formation of the structure of the object much more basically. Textures are good, it helps to reveal this shape in formation, makes the picture very attractive but there are some textures which are in fact very difficult to draw. Stochastic textures, real world textures, not the texture which you see on a garment, or in cleaning, or in a table top, or on my cloth, or the garment which you are wearing because all are having textures in general but in real world Stochastic textures occur in almost every part of the world makes the computer graphics scene or picture more appealing or realistic. It is very difficult to draw and that is the typical example of Stochastic texture. Here is an example of a water image. As you can see here, you can stand on the banks of the river or even on the sea shore and keep watching the water as it goes away from you, this is the example of such an image which is put on the screen now. It is not generated by computer graphics system. This is a real digital picture or a digital image taken by a camera. It also has a texture but you can see, I will say that this texture has a random effect. I will call this texture as a Stochastic texture, difficult to draw or difficult to implement using computer algorithms. In most cases you will find such examples of Stochastic or real world textures. If you look around in a street, go out and see in a garden, in a bed of roses or go to the mountain top and keep watching the scenario around, go to a high raised building, look at the clouds, walk around a field and you can see various types of examples of real world textures and to incorporate that in a scene to give it a realistic effect is probably the most challenging task in computer graphic system. What we are trying to do in computer graphics? We are trying to generate pictures and make it look almost like real life so that people will not be able to discriminate and find out whether you have actually taken the picture or generated that picture using a computer graphics application or a program. If you can do that you have almost become a real professional or a good expert in computer graphics systems. We will see one example of what is called visual realism, trying to create the visual effects of real pictures or realistic effects of real world picture around you on to your computer graphics system. From the previous example we had seen the case where synthetic pictures look alright but they are not that realistic. They do not appear that realistic. You will often be able to discriminate realistic pictures as to whether you are being shown an animation picture, a static picture, or real world picture taken by a camera and shot like what is being done now. That is the difference between synthetic and real world pictures. And the task of computer graphics programmers, systems designers is to make pictures, animation pictures and static pictures as close as possible to real world. But of course, we must first learn the basics and then try to put in effects of real world scenarios or visual realism as it is called into the picture to make it look almost real world. Well, we wind up the talk today with these examples and we will start the next lecture with the talk on display devices and video basics, thank you very much. �
B1 中級 Lecture - 1 Introduction to computer graphics 132 6 Why Why に公開 2013 年 03 月 26 日 シェア シェア 保存 報告 動画の中の単語