powerful memory.memoy这套资料好吗?

您的访问出错了(404错误)
很抱歉,您要访问的页面不存在。
1、请检查您输入的地址是否正确。
2、感谢您使用本站,通过
进行查找。
3、使用搜索框直接进行搜索Develop Perfect Memory With the Memory Palace Technique - Litemind3D-Graphics-Cards and OpenGLAuthor: Andreas Pilz Hauptseminar Elektrotechnik 98/99 Lehrstuhl für Prozessrechentechnik LPR TU MünchenTable of Contents1 Introduction 2. The Graphics
Pipeling 3. Algorithms for 3D-Graphics 3.1 Homogeneous coordinates 3.2 Shading models 1. Flat shading 2. Gourand shading 3. Phong shading3.3 Z-Buffering 3.4 Texture-Mapping 3.5 Environment-Mapping 3.6 Texture- and Environment-Mapping 3.7 Bump-Mapping 3.8 Transparent Textures (Alpha-Buffer)4. Graphics-cards with integrated 3D-Accelerator 4.1 Basics of graphics-cards 1. Function 2. Bottlenecks, which affect the performance BUS-System and AGP Video Chipset, Video Memory and RAMDAC3. Driver4.2 Up to date Low-End graphics-cards 1. RIVA TNT versus Voodoo2 2. Performance Windows98 3. Performance Windown NT4.04.3 High-End: Example 3DLabs Oxygen GMX 4.4 Comparison of Low- and High-End 4.5 Summary5. OpenGL 6. Literature 7. Appendix1 IntroductionIn the beginning of the computer technology the output device providing data for the user were simple lights, punched cards and prints in bad quality. But it was not very efficient to program a computer using about 20 switches and the same number of LEDs. As the computers became more powerful and faster, a appropriate output display was necessary, in order to be able to interact with the computer in a comfortable way. The idea was to combine a computer with the CRT-technology (Cathode-Ray-Tube). The first computer systems supplied with monochrome CRT-displays were text based with 40 or 80 characters per line. But the fast innovation of the processors made it possible to think of visualising data. As the resolution of the old text-based systems was too poor, new graphics-standards like CGA, EGA, VGA and XGA were created and graphics-cards with 2D-accelerators were designed, in order to increase performance and quality. The next evolution was to generate 3D-graphics for e.g. CAD or even animations for movies. However special hardware has to be used and is still be used. The leader in high-end 3D-graphics-systems for professionals is Silicon Graphics. But its hardware is very expensive, beginning at $75,000 for a standard version of a SGI Onyx IR2 up to several million dollars.But nowadays the idea of generating moving 3D-graphics in photo quality and in real-time even for consumer PCs is the motivation for developing new graphics-cards with integrated 3D-accelerators. These accelerators are very complex chips, which consist of more than 7,5 million transistors (Intel Pentium II processor: ~7 million transistors). As there is a big market for computer games with very good 3D-graphics (e.g. Quake, Forsaken), the innovation process in the consumer market is very fast. As a result of this, new versions of each graphics-chipset are presented every half year and a lot of new features are introduced. Therefore it is not surprising, that the cheap consumer graphics-chipsets make up for the professional market, e.g. the Elsa Syngergy II, a professional card, is based on the RIVA TNT chipset.This essay is only able to give a overview on the recent 3D-graphics technology and features, because of the rapid product cycle. After that recent low- and high-end graphics-cards for PCs are compared. In the last section the OpenGL library is introduced. Table of Contents2 The Graphics Pipeline The Application program creates a hierarchical 3D-wireframe-model, which is described in world coordinates. In addition to the creation of the 3D-model the illumination and shading model is defined. This scene is transferred to the 3D-Graphics-card. First of all this card performs Transformations, like rotation, translation, shearing, scaling, ... on the given objects, using a internal coordinate system and the integrated accelerator. After that the Shading model is calculated. As a result of this there are several objects, which are illuminated and shaded and which are positioned in 3D-space. Now there is a very important step: The conversion from 3D-space into 2D-space of the screen including the Visible-surface Determination. A common method to solve the visibility problem is the z-Buffer algorithm. Then Texture Mapping (papering a object with a image) and Anti-Aliasing (reduction of edges and steps) is performed. In the last step of this pipeline the digital image information is converted into an analog signal for the monitor. Table of Contents3 Algorithms for 3D-Graphics3.1 Homogeneous coordinatesA uniform representation of all transformations in matrix notation is necessary for implementing these transformations in hardware. As it is not possible to describe the translation in matrix notation in cartesian coordinates, the homogeneous coordinates have to be used. But it is very easy to transform cartesian into homogeneous coordinates and vice versa. The following formulas show the relation of cartesian and homogenous coordinates and describe the translation in matrix notation in homogenous coordinates: Therefore in homogeneous coordinates it is possible to describe any transformation in matrix notations:This universal matrix for transformations can be devided into four function blocks:The homogeneous matrix representations of common transformations are shown in the appendix. Therefore it is possible to describe all three-dimensional geometric transformations in matrix form. As a result of this, one single structure has to be implemented in hardware, in order to compute any geometric transformation. Important: ? A sequence of transformations can be represented by one matrix: T=T1*T2*T3*... ? If there is a sequence of transformations to be executed, then first of all calculate the matrix, which represents the whole sequence. After that perform the transformation on the given data. ? The order of the transformations effects the result!Table of Contents3.2 Shading modelsThe usage of a shading model makes it possible to calculate reflexions and shades. Therefore the image of the 3D-scene is more realistic. But there are additional parameters necessary for shading models: ? ? ? Description of the light source Characterization of the surface Relative positions of the light sources and of the observer The following figure shows the ideal reflexion:Objects with dull, matte surfaces can be describe by the so-called Lambert-Reflection. As these surfaces reflect light with equal intensity in all directions, they appear equal bright from all viewing. The diffuse illumination equation is: Table of Contents3.2.1 Flat shadingFlat shading is the easiest method for calculating shades and reflexions: The shading model is performed at one single point of a polygon. The calculated color of this point is the fill-color of the whole polygon. Therefore the colors have to be only calculated at as many points as many polygons the object consist of. Because of this, flat shading is very fast and easy, but if the polygons are big, then the image of the scene looks filed and it is not very realistic. Table of Contents3.2.2 Gourand shadingThe idea of Gourand shading is the interpolation of the color of each single point using the colors at the vertices. The colors at the vertices are computed using the shading model. There are the two following steps: 1. Calculating the color of the vertexes First of all the normals at the vertices are computed by avering the normals of the polygons connected to a vertex:Now the exact color of each vertex can be computed by using the shading model. 2. Projection & Interpolation (=Rendering) In the second step the 3D object is projected into the 2D space. As a resolution is defined for the screen representation (e.g. 640 * 480 pixels) the image has to be rasterized. The following diagram shows the 2D projection of an 3D example triangle:The rasterization is done by scanning the 2D image along so-called scanlines, which correspond to the pixel rows of the display. In the diagram one scanline is shown. It cuts the triangle at the point Il(eft) and Ir(igth). The color values at these two points are interpolated using the calculated color values at the points I1, I2 and I3 and the following formulas: Now the color values along the scanline can be calculated by using the following formulas:The pixels are computed in the same way. Gourand shading is suitable for diffuse objects. The problems of this method are fast changes of the intensity. Table of Contents3.2.3 Phong shadingContrary to the Gourand shading method Phong shading interpolates the normal vectors at each pixel and performs the illumination and shading calculation at each point using the interpolated normals:The Phong-shading method is able to calculate reflections. But the expenditure of computing power is bigger, because of the interpolation of the normal vector and of the calculation of the shading model at each single point. Table of Contents3.3 Z-BufferingBy performing the projection from the 3D modell into the 2D viewplane, the information of which point is in the front and which is in the back is lost. Therefore it is necessary to calculate and store the depth of each single pixel in additional to its color. This depth (z-value) is stored in the so-called z-Buffer. When a new point is projected into the 2D space, it can be decided, if it is in the front of an existing point and therefore has to be drawn or if it is in the back and can be skipped. The most important advantage of the z-Buffer method is, that the objects of a 3D-scene can be transformed into the 2D viewplane in any order and that objects can be added to the scene at any time. The following figure shows the projection of a object (yellow) in the XYZ-space into the 2D-UV-viewplane (blue) and the line of sight N:VRP VPN VUPView Reference Point View Plane Normal View-Up Vector Table of Contents3.4 Texture-MappingUp to now, illuminated and shaded objects can be drawn, but there is no photorealistic effect. Texture-mapping makes it possible to project 2D images to the surfaces of an object. It can be compared to papering a wall. It is even possible to use 3D-textures e.g. in order to give the impression of veined wood. The following picture shows an example of texture mapping: There are several methods for texture-mapping like rasterization of textured triangles, box-mapping... The following discussion concentrates on the rasterization of textured triangles. The condition for this method is, that the objects consist of plane polygons. This polygons are devided into triangles. A triangle is created within the texture map, too. Now it is possible to create a relation between the triangle of the object and the triangle of the texture map. As a result of this it is possible to paper the object:The texture-mapping method generates quite realistic images and in contrast to the Raytracing-method it is very cheap, too. Table of Contents 3.5 Environment-MappingThe so-called Environment-Mapping method takes the indirect illumination into consideration, which is caused by multiple reflections. In contrast to the very complex Raytracing-method the Environment-Mapping method is only a approximation, which uses textures. The idea of this method is, that a 3D-scene is limited to a virtual 3D-box. The sides of the box is papered with 2D-Textures, which represent the environment of the scene. A part of the virtual environment is reflected by the object. The illumination and shading calculation takes this reflections into consideration.The following pictures shows an example of Environment-mapping (The space ship has a dark basic color): Table of Contents3.6 Texture- and Environment-MappingIt is possible to combine Texture- and Environment-mapping. The result of these two methods is quite good and nearly photorealistic, if high resolutions and fine textures are used:Table of Contents3.7 Bump-MappingBut there is still something missing. The surfaces of the objects are too smooth. It is theoretically possible to use a huge amount of polygons in order to create coarse surfaces. But in the practice the amount of data, which has to be calculated and saved is to big. However it is possible to use the so-called Bump-mapping method, in order to give the impression of coarse surfaces. The following two pictures show the result of using Bump-mappingBump-mappingNo Bump-mapping The Bump-mapping is similar to the Texture-mapping method. The difference is, that the data in the texture map are information on the relative height of a point and not on the color. This height-information is added to the original surface. Then the new normals of the offset-surface are calculated and after that the illumination and shading model is performed on the object. This of course only works, if a shading model with an explicit calculation at each single pixel, e.g. Phong-Shading or Raytracing is used.original surface and normals(geometry)Bump-Mapoffset-surfacenew normals(illumination and shading modell)Table of Contents 3.8 Transparent Textures with Gourand-shading (Alpha-Buffer)Objects can be transparent, too. The following picture shows the effect of transparent textures with Gourand-shading:As one can see in the picture, the color value of a pixel is a mixture of the color of the texture and the background. The transparency is defined by the so-called Alpha-value and the transparency data are stored in the so-called Alpha-Buffer. Table of Contents4 Graphics-cards with integrated 3D-AcceleratorSeveral algorithms for 3D-Graphics were introduced in chapter 3. As these algorithms are very complex and the amount of data is huge, the power of a common processor is not sufficient. Therefore special graphics-cards were developed, which accelerate these algorithms in order to increase 3D performance.4.1 Basics of grafic-cards 4.1.1 FunctionThe following diagram shows the basic components of graphics-cards: Flow of data within a graphics-card: o o o The BUS-System transports the data from the CPU to the video chipset of the graphics-card. The video chipset interprets the data and executes the transformations to the video buffer, which is stored in the video memory. The so-called RAMDAC (=RAM Digital Analog Converter) reads out the screen mirror and converts the digitally stored information into analog data for the monitor. (There are special graphics-cards available, which are designed to be connected to an digital LCD-monitor. Then the digital analog conversion is not necessary.)Table of Contents4.1.2 Bottlenecks, which affect the performanceThe internal structure of a graphics-card is a pipeline. Therefore the slowest element determines the overall speed.4.1.2.1 BUS-Systems and AGPThe BUS-System transfers the data between CPU and Video Chipset. Generally the performance of this transport depends on the chipset of the mainboard, the mainboard itself, the type of bus and its speed. Here is a little example, which calculates the amount of data to be transfered: Maximum data transfer rate for 2D GraphicsResolution800 * 600 Pixel = 480000 Pixel * Colour depth = Necessary memory for One full screen image65536 colorus = 16 Bit 7680000 Bit = 960000 Byte* Frames per second necessary 30 for fluent animations = Data transfer rate necessary for ~ 30 MByte/second 2D graphics (worst case)Maximum data transfer rate for 3D Graphics Data transfer rate necessary for 30 MByte/second 2D graphics * Depth Complexity (worst case) = Data transfer rate for 123D 360 MByte/secondgraphics (worst case and fluent animations)Data transfer rates of common BUS-systemsISA PCI AGP AGP (2x-Mode)8 MBytes/second 133 MBytes/second 267 MBytes/second 533 MBytes/secondFacing this fact, the maxium data transfer rate of the old ISA-BUS is much too low (about 8MBytes/sec). Therefore new BUS systems were designed. At the moment, the two fastest BUS-Systems are PCI and AGP. The maximum data transfer rate of the PCI bus is 133 MBytes/sec. This is about more than 16 times the rate of the old ISA bus. But the speed of the PCI bus mainly depends on the mainboards and its clock, e.g. in a Pentium 75, 90, 120 or 150 system the PCI bus speed is only 25 or 30 MHz. However the maximum available speed for PCI is 33 MHz. But even in this case the maxium data transfer rate is not as high as recommended for complex 3D graphics. Contrary to the PCI bus the AGP (2x-Mode) is fast enough for 3D Graphics. The Accelerated Graphics Port is not a real bus. It is a port, because only one card can be connected to it. The AGP runs on 66 MHz and normally transports data at the rising edge of a clock cycle (1x-Mode). But there is the 2x -Mode, too. In this mode data is transported not only at the rising, but also at the falling edge of a clock cycle. Therefore its data transfer rate is about 533 MBytes/second. But the most important feature of AGP is, that the graphics-card itself has access to the main system memory. Therefore very large textures can be stored outside the graphics-card. But a AGP graphics-card is not necessarily faster than an PCI one, because the data transfer bandwith is not always the limiting factor of current PCI or AGP cards. However AGP is much better fitted for displaying very complex graphics using cheap hardware, because of the possibility to store textures in the main system RAM. Table of Contents4.1.2.2 Video Chipset, Video Memory and RAMDACThe combination of video chipset, video memory and RAMDAC is a very important factor influencing the performance of a graphics-card. The video chipsets differ in the way the commands of the CPU are executed and how many graphic functions are integrated in silicon. The common rule is, that functions integrated in silicon are much faster than functions integrated in software. There are expensive cards, in which all OpenGL commands are completly integrated in silicon and therefore those cards are very fast. But also very complex and fast video chipsets need enough memory in order to store their results. And here is another problem: The video chipset and the RAMDAC have to share the same memory. Therefore it is possible, that the video chipset wants to write data into the same memory area, which is being read by the RAMDAC at the same time. As a result, the video chipset has to wait until the RAMDAC has stopped reading the memory cell and vice versa. But both RAMDAC and video chipset have to write and read the memory continuosly. There is another problem, too. The higher the resolution of the screen and the more colors are used, the more data has to be transferred to the video memory. Three different ways were found in order to fight these problems: o DUAL PORTED RAM: Dual ported video memory guarantees, that the video chipset and the RAMDAC can write and read simultaneously the same memory cell. Therefore the performance and the refresh rate of the card is nearly independent from the amount of data generated by the video chipset, resolution and colour depth contrary to the single ported RAM, such as DRAM, SRAM, EDO-RAM or SGRAM. There are two types of dual ported memory, which are nowadays used in graphics-cards: VRAM and WRAM. VRAM is very expensive and quite fast. But WRAM is 20% cheaper to produce than VRAM and is smarter organised. Therefore WRAM is even faster than VRAM.oINCREASE VIDEO MEMORY BUS SIZE: With a really wide video memory bus size the performance is that good, that the cheaper RAM can be used instead of the expensive VRAM and WRAM. The following shows the wideness of common video memoy bus system:Data path Bytes in one go Miniummemoryforoptimalperformance (8x1Mbit: 32 bit wide) 32 bit 64 bit 128 bit 4 8 16 1 MB 2 MB 4 MB oINCREASE CLOCK SPEED OF VIDEO CHIPSET, RAM AND RAMDAC: This is the easiest way to improve performance. In the following the frequently used memory types and their maximum clock speed is listed:Memory SDRAM SGRAMClock speed Up to 100 MHz (10 ns) Up to 133 MHz (7ns)Summary? ?The faster the clock speed of the Video Chipset and RAMDAC and the wider the video memory data path, the better the performance. The fastest RAM is VRAM and WRAM. But it is the most expensive memory, too. It is not necessary, if the video memory data path is wide enough.4.1.3 DriverA very important factor, which affects the performance of a graphics-card, is the driver software. The different versions of drivers for the same graphics-card may have differences in the supported features of the hardware and performance. Therefore graphics-cards with the same chipset and ram, but produced by diverse manufacturer, even show different benchmark results, when tested with the driver shipped with the card. Table of Contents4.2 Up to date Low-End Graphic cardsAt the moment there are very dynamically movements on the Low-End market. Nearly every half year a new acccelerator generation is designed. The changes are so fast, that the manufacturer of graphics-cards do not have enough time to optimize the drivers of the chipset. They simply use the standard driver of the chipset manufacturer. In the following two paragraphs the new RIVA TNT and the &old& Voodoo2 are compared. After that a short overview of the common Low-End Graphics-cards is presented.4.2.1 RIVA TNT versus Voodoo2 Graphics cardVoodoo 23Dfx ~ 250 DM 3D add-on card PCI 135 MHz -12 MB EDO-RAMRIVA TNTNVIDIA ~ 280 DM Full 2D & 3D graphics-card AGP 250 MHz Standard 16 MB (SDRAM/SGRAM) 1600 * 1200 32 Bit Yes Yes Yes Yes no XFree86 3.3.3.Manufacturer Price 2D/3D BUS RAMDAC MemoryMax. Resolution (true-color) Z-Buffer Full-Scene-Antialiasing Single-Pass Multitexturing Bump-Mapping OpenGL ICD (Win 9x/NT) Glide Special features800 * 600 16 Bit No Yes Yes No Yes SLI-modeThe Voodoo 2 card is now nearly about 1 year old. It is only a additionally 3D add-on card. Therefore a normal graphics-card must be installed, too. The signal of the normal card is directed to the Voodoo 2, which switches either the signal from the normal card to the monitor or the graphics signal of the Voodoo 2 card. Contrary to the Voodoo card, the RIVA TNT is a full 2D & 3D graphics-card. Both cards support Single-Pass Multitexturing. Therefore they can calculate two textures at the same time on one point. This is very useful, if texture- and environment-mapping is performed. However there a differences in the programming interface. The Voodoo 2 card has its own interface called GLIDE. Only the Voodoo1, Voodoo2 and the Voodoo Banshee support this interface. The RIVA TNT has no special interface. It even supports OpenGL ICD(Installable Client D Chapter 5). The special feature of the Voodoo 2 is the SLI-mode. In this mode two Voodoo 2 can work parallel together in one computer. The following diagram show the advantage of SLI:Performance Pentium II 400 MHz - Game: F Frames per SecondResolution640 * 480 800 * 600SLI Voodoo 2246 fps 192 fpsVoodoo 2155 fps 98 fpsRIVA TNT207 fps 144 fps 1024 * 748118 fpsN/A87 fpsA advantage of the RIVA TNT is, that it is supported by XFree86 3.3.3. Moreover NVIDIA has announced, that in spring 1999 the process of manufactering will be improved so, that the RIVA TNT chipset will run on 125 MHz instead of the current 100 MHz. Table of Contents4.2.2 Performance Windows98Table of Contents4.2.3 Performance Windows NT 4.0 Table of Contents4.3 High-End: Example 3Dlabs Oxygen GMXData-sheet:? 2 Gflop processor ? ? ? ? ?16 MB VRAM framebuffer 80 MB EDO-RAM localbuffer up to 2048 * 2048 resolutionup to 1920 * 1024 resolution in true-color?HDTV-support overlayOpenGL: The Geometry Pipeline is completly implemented in hardware: hardware-shading up to 16 lights, texture-mapping, fogging, gourand shading, anti-aliasing, full graphics?Windows NT: OpenGL 1.1 ICD-drivers? AGP-BUS ? Price $1700Summary: The 3Dlabs Oxygen GMX is a very fast high-end graphics-card at a very good price! Table of Contents4.4 Comparison of the Performance of Low- and High-End Graphics-cardsThe Indy3D Benchmark is a Benchmark program, which is available for the Windows 9x/NT and Unix. It is free and can be downloaded via Internet (). Therefore it is possible to compare &normal& PCs to real high-end graphic systems, like the SGI Onyx2 IR2 (basic version: $75,000). In the reference SGI machine 1GB RAM and two graphics-card with each 64 MB RAM on-board were installed. It is a real fast machine. In the charts there are 2 high-end graphics-cards for PC mentioned. The first one is the Oxygen GMX, the other one is the AccelGALAXY. First of all there is the MCAD 40. It a test, in which 40.000 polygons are drawn. The results are:As one can see, the high-end cards are about three times faster than the fastest consumer cards. But the reference machines are more than twice as fast as the high-end cards and up to 5 times faster than the low-end ones. The next chart shows the result of the MCAD 150 test (150,000 polygons instead of 40,000): As you can see the Oxygen GMX is the fastest High-End graphics-card for the PC, if a huge number of polygons are used, because of its huge localbuffer (80MB; AccelGALAXY overal memory: 24MB). In comparison to the reference machines, the performance of the GMX is about half of the performance of the real high-end machines. Table of Contents4.5 SummaryOne or two years ago the graphics-card was the limiting factor for the 3D graphics-performance. Nowadays the cards are as fast, that only the high-end processors are able to calculate enough data for the cards. Some chipset manufactuerer suggest, that their new cards should only be used in a Pentium II 350MHz system or in even faster systems. Therefore it is not very effective to update a old PC with the latest graphics-card, because the processor is too slow. In this case a lot of money is spent on a very good card, but the processor is not able to generate enough data for it. Instead of a update with a brand-new card, it is much better and cheaper to buy a card, which is a little bit older and fits to the performance of the CPU, e.g. a Voodoo 1 card is suitable for a Pentium 166 MHz. Result: A optimum of 3D-performance is only achievable, if you combine a fast CPU and a up-to-date graphics-card. Table of Contents 5 OpenGLIn this last chapter a short overview of OpenGL is presented. OpenGL is a standard, which was originally designed by Silicon Graphics. SGI has turned over control of the OpenGL standard to the OpenGL Architectural Review Board (ARB). The founders of this group were DEC, IBM, Intel, Microsoft and SGI. OpenGL is short for Open Graphics Library. This Library consist of more than 350 graphics routines for 2D and 3D graphics processing. OpenGL does not handle events or is able to draw any windows. It is mainly a rendering library with several levels of abstraction. Therefore OpenGL can be used close to the hardware or very abstract. It is scalable, because the architecture of OpenGL is flexible. The frontier between soft- and hardware-implementation is flexible, too. It is independent from the window manager and is available on Unix, Linux, Windows NT, Windows 9x, Max/OS, OpenStep, BeOS ... systems. Furthermore OpenGL supports a lot of programming languages like Ada, C, C++, Fortran, Java ... The basic model of OpenGL can be described as a abstract state machine, which keeps parameters until they are changed. OpenGL is like a black-box: There are a number of states in it and it can perform a defined number of commands. The commands are put into the &machine& and it performs them. But one can to look inside the box and get information on the status of it. The output of the machine is a picture on the screen or a file. The following diagram shows the concept of OpenGL (red):The model used for interpretation of OpenGL commands is client-server. It is a abstract model. The client-server model means that the boundaries between a programm and OpenGL is well defined. Furthermore OpenGL operates over a wire protocol. Using a wire protocol means that all OpenGL operations can be sent over a network. But the wire protocol can be bypassed and then one has direct access to the graphics hardware. When for example a polygon is rendered using OpenGL, a set of rendering modes and their associated parameters are chosen. One can think of this set as a rendering path through the OpenGL implementation. If there is no hardware implementation for only one feature within a rendering path, the complete rendering path falls back to software implementation. This means, that having a feature in hardware does not ensure that the hardware can be used on every rendering path! Table of Contents 6 Literature? ? ? Vera B. Anand: Computer Graphics and Geometric Modeling for Engineers, Clemson University, John Wiley & Sons Inc. 1993 J. Encarnacao/W. Stra?er/R. Klein: Graphische Datenverarbeitung 1, R. Oldenbourg Verlag 1997 J. Encarnacao/W. Stra?er/R. Klein: Graphische Datenverarbeitung 2, R. Oldenbourg Verlag 1997 ? ? ? Foley/van Dam/Feiner/Hughes: Computer Graphics: Principles and Practice, Addison-Wesley Publishing Company 1990 Mark J. Kilgard: OpenGL: Programming for the X Window System, Addison-Wesley Publishing Company 1996 PC INTERN 12/98: 3D-Grafik, page 34-67, DATA Becker GmbH & CO. KG Düsseldorf 1998 ? ? ? PC Professionell 11/98: 3D-Grafikkarten, page 88-133, ZIFF-DAVIS 1998 Heinz Heise GmbH & Co. KG Hannover 1998 PC MAGAZIN 10/97: Grafikschnittstelle: Intels Accelerated Graphics Port, page 254-261, DMV Daten- und Medienverlag GmbH & Co. KG, Feldkirchen ? Tom?s hardware guide:
? ? ? CNET:
Silicon Graphics:
? ? ? ? ? ? Intel:
Table of Contents C?T 15/98: Grafikkarten: Low-End-AGP für Text und 2D-Grafik, page 178-191, VerlagEvans&Sutherland: http://www.evans&7 AppendixTransformations in three-dimensions using homogeneous coordinatesThe usage of homogeneous coordinates in three-dimensional space makes it possible to represent all transformations in three-dimensional space by 4x4 matrices: The matrix can be partitioned as follows:ScalingThe following transformation performs local scaling:Global scaling is performed by the following matrix:Important:? ?If the value of S is larger than one, then the size of the object is reduced. If the value of S is less than one, then the size of the object is increased. ?If global scaling is used, the fourth element of the vector containing the result of this operation may not be equal to 1. Therefore this vector has to be normalized. Then the new x, y and z homogenous coordinates become cartesian ones.TranslationThe following matrix translates a point (x_old, y_old, z_old) to a new point (x_new, y_new, z_new):The relative movement of the point in x, y, z directories is presented by J, K and L.RotationCounterclockwise (positive):X axis rotationY axis rotationZ axis rotationCounterwise (negative):X axis rotationY axis rotationZ axis rotation Rotation about arbitrary axes Rotations about arbitrary axes can be made up by several rotations about the x, y and z axes and by translations. The following sequence of steps provides a universal proceeding for rotations about any arbitrary axis:1. Translate the arbitrary axis so that one of its endpoints coincides with the origin. 2. Perform rotations about the x and y axes to align the arbitrary axis with the positive z axis. 3. Rotate about the z axis by desired angle θ.Apply the reverse rotations about the y and x axes.This will bring the arbitrary axis back to its original position from the origin.4. Apply the reverse translation to place the arbitrary axis back in its initial position in place.All these transformations can be concatenated into a single matrix:ReflectionPlaneX=0Y=0Z=0Point (0,0,0)Shearing Shear Control Axis X Y ZShearing Matrix Effect on a Point PCoordinate system transformation In some real applications there is a need of switching from one coordinate system to another. By the means of a sequence of the above mentioned transformations a single matrix can be found, which transforms a coordinate system into another one. Table of Contents
3D graphics card and OpenGL―汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。

我要回帖

更多关于 powerful情趣用品店 的文章

 

随机推荐