We present a clean algorithm for determining whether a ray intersects a triangle. The algorithm translates the origin of the ray and then changes the base of that vector which yields a vector (t u v)T, where t is the distance to the plane in which the triangle lies and (u, v) represents the coordinates inside the triangle.One advantage of this method is that the plane equation need not be computed on the fly nor be stored, which can amount to significant memory savings for triangle meshes. As we found our method to be comparable in speed to previous methods, we believe it is the fastest ray/triangle intersection routine for triangles which do not have precomputed plane equations.
我们提出了一种确定射线是否与三角形相交的简洁算法。该算法转换光线的原点,然后改变该向量的底,从而得到向量(t u v) t,其中t是到三角形所在平面的距离,(u, v)表示三角形内部的坐标。这种方法的一个优点是,平面方程不需要在飞行中计算,也不需要存储,这可以为三角形网格节省大量内存。由于我们发现我们的方法在速度上与以前的方法相当,我们相信对于没有预先计算平面方程的三角形,它是最快的射线/三角形相交例程。
{"title":"Fast, minimum storage ray/triangle intersection","authors":"T. Akenine-Möller, Ben Trumbore","doi":"10.1145/1198555.1198746","DOIUrl":"https://doi.org/10.1145/1198555.1198746","url":null,"abstract":"We present a clean algorithm for determining whether a ray intersects a triangle. The algorithm translates the origin of the ray and then changes the base of that vector which yields a vector (t u v)T, where t is the distance to the plane in which the triangle lies and (u, v) represents the coordinates inside the triangle.One advantage of this method is that the plane equation need not be computed on the fly nor be stored, which can amount to significant memory savings for triangle meshes. As we found our method to be comparable in speed to previous methods, we believe it is the fastest ray/triangle intersection routine for triangles which do not have precomputed plane equations.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126053994","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Course Description: This course intends to present a concise and self-contained introduction to quantum computing and its application to computer graphics. Besides providing a general overview of quantum computing, we will discuss the theoretical limitations of classical computing for graphics and simulation, and how quantum computers can overcome these restrictions. Prerequisites: The course will be self-contained and will not assume any prior knowledge of quantum physics or quantum computing. Familiarity with classical rendering algorithms such as Z-Buffering and ray casting will be helpful. A basic understanding of linear algebra and vector spaces is absolutely required. Siggraph Course Materials:-We have included the full set of slides intended for the Siggraph 2005 course.-We have also included our paper, " Hybrid Quantum-Classical Computing with Applications to Computer Graphics " , which reviews the highlights from our previous technical publications on the application of quantum computing to computer graphics.-The Glassner directory has a copy of Andrew Glassner's brilliant introduction to Quantum Computing.-The NIST directory has the source code and documentation provided by Paul Black for the NIST quantum computer simulator. Introduction Introduction Motivation to study quantum computing and its applications to computer graphics • At very small scales, nature is described by quantum physics instead of classical physics. • Before the year 2020, miniaturization will reach subatomic scales, and quantum phenomena will drastically affect the behavior of semiconductors and microchips. • Around the year 2020 improving the performance of classical bit-oriented computers will reach a fundamental physical limit. The impact on computer graphics (1) • Final Fantasy, a quasi-photo-realistic computer generated animated film opened in 2001. • The average rendering time for a single frame was about 10 hrs on a 933 MHz Pentium processor. • To have a stereoscopic Virtual Reality system running at 60 fps of quality similar to Final Fantasy means a speedup of about 2,160,000. • Moore's law predicts such a processor by the year 2032, but this is well after the point at which classical computing will have exceeded the limitations of semiconductors. • Therefore, such a VR system will not be made of traditional silicon microchips. – Recent developments in dedicated graphics processors (i.e. graphics cards) may push back the date to about 2021 (optimistic but still problematic), and not before 2011 (even in this highly optimistic case, Final Fantasy is not completely photo-realistic). – Of course, new algorithmic techniques may dramatically improve rendering performance, but this is …
{"title":"Quantum rendering: an introduction to quantum computing, quantum algorithms and their applications to computer graphics","authors":"M. Lanzagorta, J. Uhlmann","doi":"10.1145/1198555.1198722","DOIUrl":"https://doi.org/10.1145/1198555.1198722","url":null,"abstract":"Course Description: This course intends to present a concise and self-contained introduction to quantum computing and its application to computer graphics. Besides providing a general overview of quantum computing, we will discuss the theoretical limitations of classical computing for graphics and simulation, and how quantum computers can overcome these restrictions. Prerequisites: The course will be self-contained and will not assume any prior knowledge of quantum physics or quantum computing. Familiarity with classical rendering algorithms such as Z-Buffering and ray casting will be helpful. A basic understanding of linear algebra and vector spaces is absolutely required. Siggraph Course Materials:-We have included the full set of slides intended for the Siggraph 2005 course.-We have also included our paper, \" Hybrid Quantum-Classical Computing with Applications to Computer Graphics \" , which reviews the highlights from our previous technical publications on the application of quantum computing to computer graphics.-The Glassner directory has a copy of Andrew Glassner's brilliant introduction to Quantum Computing.-The NIST directory has the source code and documentation provided by Paul Black for the NIST quantum computer simulator. Introduction Introduction Motivation to study quantum computing and its applications to computer graphics • At very small scales, nature is described by quantum physics instead of classical physics. • Before the year 2020, miniaturization will reach subatomic scales, and quantum phenomena will drastically affect the behavior of semiconductors and microchips. • Around the year 2020 improving the performance of classical bit-oriented computers will reach a fundamental physical limit. The impact on computer graphics (1) • Final Fantasy, a quasi-photo-realistic computer generated animated film opened in 2001. • The average rendering time for a single frame was about 10 hrs on a 933 MHz Pentium processor. • To have a stereoscopic Virtual Reality system running at 60 fps of quality similar to Final Fantasy means a speedup of about 2,160,000. • Moore's law predicts such a processor by the year 2032, but this is well after the point at which classical computing will have exceeded the limitations of semiconductors. • Therefore, such a VR system will not be made of traditional silicon microchips. – Recent developments in dedicated graphics processors (i.e. graphics cards) may push back the date to about 2021 (optimistic but still problematic), and not before 2011 (even in this highly optimistic case, Final Fantasy is not completely photo-realistic). – Of course, new algorithmic techniques may dramatically improve rendering performance, but this is …","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128052814","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Course description Traditionally, computer graphics practitioners have modeled virtual objects to be rendered on a 2D computer screen, but the latest 3D layered manufacturing technologies can quickly and easily transform a 3D computer model into a physical 3D model. In this course, participants learn about commercial layered manufacturing systems and promising new technologies, including stereolithography (SLA), 3-D printing, fused deposition modeling (FDM), selective laser sintering (SLS), and laminated object manufacturing (LOM). In all these processes, a triangulated boundary representation (b-rep) of the CAD model of the part is sliced into horizontal, 2.5-D layers of uniform thickness. Each cross sectional layer is successively deposited, hardened, fused, or cut, depending on the particular process, and attached to the layer beneath it. (For technologies such as SLA and FDM, a sacrificial support structure must also be built to support overhanging geometry.) The stacked layers form the final part. The speakers will present case studies from a variety of application areas, including scientific visualization, medical applications, consumer electronics design prototypes, mathematical models, and geometric sculptures. They will explain the advantages and disadvantages of different technologies in the context of part geometry, post-processing requirements, and the intended use of the part. They will share their personal experiences about the real costs and typical failure modes of different systems (what the vendors don't tell you). Speakers will also discuss the uses of layered manufacturing in education. Prerequisites Basic familiarity with 3D modeling or 3D CAD and some familiarity with 3D geometric modeling concepts and terminology. Introduction to 3D layered manufacturing Commercial 3D layered manufacturing processes • Photopolymers –Photolithography • Thermoplastic deposition –Extrusion • Powder based –3D Printing, mono-and color –Sintering Applications experiences: functional mechanical parts • Lamination Applications experiences: scientific visualization-molecular modeling-medical modeling-terrain surfaces-isovolumes Summary, Questions and Answers (including discussion of parts/application areas suggested by audience)
{"title":"Layered manufacturing as a graphics display device","authors":"Sara McMains, M. Bailey, R. Crawford","doi":"10.1145/1198555.1198703","DOIUrl":"https://doi.org/10.1145/1198555.1198703","url":null,"abstract":"Course description Traditionally, computer graphics practitioners have modeled virtual objects to be rendered on a 2D computer screen, but the latest 3D layered manufacturing technologies can quickly and easily transform a 3D computer model into a physical 3D model. In this course, participants learn about commercial layered manufacturing systems and promising new technologies, including stereolithography (SLA), 3-D printing, fused deposition modeling (FDM), selective laser sintering (SLS), and laminated object manufacturing (LOM). In all these processes, a triangulated boundary representation (b-rep) of the CAD model of the part is sliced into horizontal, 2.5-D layers of uniform thickness. Each cross sectional layer is successively deposited, hardened, fused, or cut, depending on the particular process, and attached to the layer beneath it. (For technologies such as SLA and FDM, a sacrificial support structure must also be built to support overhanging geometry.) The stacked layers form the final part. The speakers will present case studies from a variety of application areas, including scientific visualization, medical applications, consumer electronics design prototypes, mathematical models, and geometric sculptures. They will explain the advantages and disadvantages of different technologies in the context of part geometry, post-processing requirements, and the intended use of the part. They will share their personal experiences about the real costs and typical failure modes of different systems (what the vendors don't tell you). Speakers will also discuss the uses of layered manufacturing in education. Prerequisites Basic familiarity with 3D modeling or 3D CAD and some familiarity with 3D geometric modeling concepts and terminology. Introduction to 3D layered manufacturing Commercial 3D layered manufacturing processes • Photopolymers –Photolithography • Thermoplastic deposition –Extrusion • Powder based –3D Printing, mono-and color –Sintering Applications experiences: functional mechanical parts • Lamination Applications experiences: scientific visualization-molecular modeling-medical modeling-terrain surfaces-isovolumes Summary, Questions and Answers (including discussion of parts/application areas suggested by audience)","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"363 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133974056","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
ion, in artistic terms, is the process of taking known elements and turning them into new forms. Abstract art can also sometimes be described as non-representational. That is not how the term is used here. Abstract design, as it relates to creature design style, describes digital creatures whose forms are composed of physically plausible elements, but in which those elements have been proportioned or combined in not found in nature. Abstract digital creatures are heavily represented in feature film production. Most often the reason for creating a creature effect in computer graphics is because the forms are physically implausible to model or animate practically. It is not uncommon to hear that the idea of using an actor in makeup and a prosthetic suit was considered for a project but the limb proportions or mass prevented the idea from proving sensible for the performance required.digital creatures are heavily represented in feature film production. Most often the reason for creating a creature effect in computer graphics is because the forms are physically implausible to model or animate practically. It is not uncommon to hear that the idea of using an actor in makeup and a prosthetic suit was considered for a project but the limb proportions or mass prevented the idea from proving sensible for the performance required. When considering abstract designs in term of computer graphics techniques it is important to stay rooted in the real world. Abstract creatures should create the visual impression that they are believably organic. Texturing and shading, in particular, should have the material quality (reflectance, refraction, displacement and color detail) that real world creatures of that size possess. Similarly, forms and deformations should bring to the viewer?s mind the same degree of physical believability that a real world creature would present.
{"title":"Taxonomy of digital creatures: interpreting character designs as computer graphics techniques: Copyright restrictions prevent ACM from providing the full text for this work.","authors":"Tim McLaughlin","doi":"10.1145/1198555.1198692","DOIUrl":"https://doi.org/10.1145/1198555.1198692","url":null,"abstract":"ion, in artistic terms, is the process of taking known elements and turning them into new forms. Abstract art can also sometimes be described as non-representational. That is not how the term is used here. Abstract design, as it relates to creature design style, describes digital creatures whose forms are composed of physically plausible elements, but in which those elements have been proportioned or combined in not found in nature. Abstract digital creatures are heavily represented in feature film production. Most often the reason for creating a creature effect in computer graphics is because the forms are physically implausible to model or animate practically. It is not uncommon to hear that the idea of using an actor in makeup and a prosthetic suit was considered for a project but the limb proportions or mass prevented the idea from proving sensible for the performance required.digital creatures are heavily represented in feature film production. Most often the reason for creating a creature effect in computer graphics is because the forms are physically implausible to model or animate practically. It is not uncommon to hear that the idea of using an actor in makeup and a prosthetic suit was considered for a project but the limb proportions or mass prevented the idea from proving sensible for the performance required. When considering abstract designs in term of computer graphics techniques it is important to stay rooted in the real world. Abstract creatures should create the visual impression that they are believably organic. Texturing and shading, in particular, should have the material quality (reflectance, refraction, displacement and color detail) that real world creatures of that size possess. Similarly, forms and deformations should bring to the viewer?s mind the same degree of physical believability that a real world creature would present.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131833958","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Recently, graphics processors have emerged as a powerful computational platform. A variety of encouraging results, mostly from researchers using GPUs to accelerate scientific computing and visualization applications, have shown that significant speedups can be achieved by applying GPUs to data-parallel computational problems. However, attaining these speedups requires knowledge of GPU programming and architecture.The preceding chapters have described the architecture of modern GPUs and the trends that govern their performance and design. Continuing from the concepts introduced in those chapters, in this chapter we present intuitive mappings of standard computational concepts onto the special-purpose features of GPUs. After presenting the basics, we introduce a simple GPU programming framework and demonstrate the use of the framework in a short sample program.
{"title":"Mapping computational concepts to GPUs","authors":"Mark J. Harris","doi":"10.1145/1198555.1198768","DOIUrl":"https://doi.org/10.1145/1198555.1198768","url":null,"abstract":"Recently, graphics processors have emerged as a powerful computational platform. A variety of encouraging results, mostly from researchers using GPUs to accelerate scientific computing and visualization applications, have shown that significant speedups can be achieved by applying GPUs to data-parallel computational problems. However, attaining these speedups requires knowledge of GPU programming and architecture.The preceding chapters have described the architecture of modern GPUs and the trends that govern their performance and design. Continuing from the concepts introduced in those chapters, in this chapter we present intuitive mappings of standard computational concepts onto the special-purpose features of GPUs. After presenting the basics, we introduce a simple GPU programming framework and demonstrate the use of the framework in a short sample program.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115339394","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
There are a variety of data structures that seem to pop up repeatedly in graphics applications. This chapter talks about three basic and unrelated data structures that are among the most common and useful. There are many variants of these data structures, but the basic ideas behind them can be conveyed using an example of each.
{"title":"Data structures for graphics","authors":"P. Shirley","doi":"10.1145/1198555.1198742","DOIUrl":"https://doi.org/10.1145/1198555.1198742","url":null,"abstract":"There are a variety of data structures that seem to pop up repeatedly in graphics applications. This chapter talks about three basic and unrelated data structures that are among the most common and useful. There are many variants of these data structures, but the basic ideas behind them can be conveyed using an example of each.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116749818","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}