A Shader-Based Ray Tracing Engine

Total Page:16

File Type:pdf, Size:1020Kb

A Shader-Based Ray Tracing Engine applied sciences Article A Shader-Based Ray Tracing Engine Sukjun Park 1 and Nakhoon Baek 2,3,4,* 1 KOG Inc., Daegu 41937, Korea; [email protected] 2 School of Computer Science and Engineering, Kyungpook National University, Daegu 41566, Korea 3 Department of Data Convergence Computing, Kyungpook National University, Daegu 41566, Korea 4 Dassomey.com Inc., Daegu 41566, Korea * Correspondence: [email protected]; Tel.: +82-53-950-6379 Abstract: Recently, ray tracing techniques have been highly adopted to produce high quality images and animations. In this paper, we present our design and implementation of a real-time ray-traced rendering engine. We achieved real-time capability for triangle primitives, based on the ray tracing techniques on GPGPU (general-purpose graphics processing unit) compute shaders. To accelerate the ray tracing engine, we used a set of acceleration techniques, including bounding volume hierarchy, its roped representation, joint up-sampling, and bilateral filtering. Our current implementation shows remarkable speed-ups, with acceptable error values. Experimental results shows 2.5–13.6 times acceleration, and less than 3% error values for the 95% confidence range. Our next step will be enhancing bilateral filter behaviors. Keywords: ray tracing; acceleration; bilateral up-sampling 1. Introduction Citation: Park, S.; Baek, N. A The usefulness of computer graphics in various fields has long been emphasized since Shader-Based Ray Tracing Engine. its origin [1,2]. Ray tracing is a graphics method, based on the individual optical path Appl. Sci. 2021, 11, 3264. https:// tracing to get realistic illustrations, as shown in Figure1. More precisely, this method traces doi.org/10.3390/app11073264 millions of rays (or optical paths), which are intersecting, scattering, and reflecting on object surfaces, with a huge amount of computations [3,4]. Mainly due to its computation Academic Editor: Rubén cost, it is considered as nearly impossible to carry it out on run time [5,6]. Usamentiaga With the need for the immediate visualization, graphics processors were demanded to be specialized in the traditional rasterization technique, consuming conspicuously lower Received: 13 February 2021 resources than the ray tracing in the cost of low precision [7,8]. Accepted: 30 March 2021 Published: 6 April 2021 Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affil- iations. Copyright: © 2021 by the authors. Figure 1. Example pictures of the traditional rasterization and the ray-traced rendering. Licensee MDPI, Basel, Switzerland. This article is an open access article In contrast, rasterization cannot compute optical phenomena such as scattering and/or distributed under the terms and reflection, resulting in comparatively unrealistic illumination as a result. Research has been conditions of the Creative Commons made to overcome this drawbacks, introducing novel ideas such as image-based lighting, Attribution (CC BY) license (https:// irradiance probe, pre-processed global illumination, and more [9–11]. More recently, hybrid creativecommons.org/licenses/by/ methods using both rasterization and ray tracing technique have been introduced to qualify 4.0/). Appl. Sci. 2021, 11, 3264. https://doi.org/10.3390/app11073264 https://www.mdpi.com/journal/applsci Appl. Sci. 2021, 11, 3264 2 of 14 the demands for truthful illumination and is still an ongoing topic; screen-space global illumination, voxel-based global illumination, and photon mapping are a few of them [12–16]. In this paper, we present our research and implementation of the real-time ray-traced rendering engine, tackling the previously known to be bound to the pre-rendering domain. We introduce the real-time implementation of a triangle primitive, based the ray tracing method on the top of the GPGPU compute shader, along with optimization and light ap- proximation techniques. We also present the solutions to the detailed issues, which we encountered during its design and implementation. 2. Related Works In computer graphics field, interactive realistic graphics results have long been pur- sued [17,18]. Ray tracing is one of them, but it has only recently been applied and commer- cialized due to its immense computing cost in real-time. Since it considers global illumination environment, rather than the traditional local illumination settings, the ray tracing is one of the global illumination and/or indirect illumination methods [6,19]. It enables the rendering pipeline to achieve more realistic graphics rendering, as shown in Figure1. Ray tracing is actually rendering an image by recursively tracing optical paths from the viewer’s eye to virtual light sources per pixel [5]. It considers reflection, refraction, and scattering to ultimately compose the luminosity upon the ray’s surface contact [20]. From its accelerated implementation point of view, we should consider two different aspects: global object management for the efficient ray-object intersection checks, and accelerated reflection computing at the intersection points. Reflection computing is again macroscopically divided into two parts: specular and diffuse. The specular reflection is a regular reflection on a mirror-like surface, and the diffuse reflection is a light scattering occurred on a rough surface, as shown in Figure2. specular reflection diffuse reflection Figure 2. Differences between the specular and diffuse reflections: specuclar reflections occur on mirror-like surfaces, while diffuse reflections shows light scattering effects. Theoretically, the rays can be traced infinitely, to get the huge number of reflected bounces. In contrast, practical implementations limits the reflection computing to get real- time results. The two major factors of the real-time reflection computing is: ray bouncing count and ray sampling count. These factors are also related to the final quality of the ray traced rendering images [6,20]. Specular reflection is highly associated with the ray bouncing count, which refers to how much will the single ray bounce between the object surfaces. Likewise, diffuse reflection is associated with the ray sampling count referring to how many rays will be fired on the reflection points. The sampling attribute also affects the anti-aliasing quality of the image, since it is actually one of the super-sampling methods. The ray bouncing is known to be significantly cost-effective than the ray sampling since it occurs seldom in the actual rendering environment; five to six bounces is more than enough in most rendering cases. Ray sampling, on the other hand, is the major reason why ray tracing lacks performance in real-time rendering all the time; due to its nature of omni-directional light scattering, not enough ray sampling will produce disturbingly noisy Appl. Sci. 2021, 11, 3264 3 of 14 illumination as a result. Figure3 depicts the performance and precision of the implemented diffuse reflection. 1 spp 3 spp 5 spp 3 ms 8 ms 14 ms 10 spp 50 spp 100 spp 27 ms 148 ms 336 ms Figure 3. Results of different ray sampling counts: High samples per pixel (spp) values give high quality images, with large amount of computing time (in msec). In our implementation, these ray bouncing counts and ray sampling counts can be controlled to compromise the final image quality and also the processing speed. Another aspect of the ray tracing computation is the global object management. Ray casting is the fundamental steps for performing the ray-object interactions. It is actually a procedure of ray collision checking in the virtual space [21,22]. The simplest form of ray casting is to compare all the primitives (or graphics objects) against the ray, taking the time complexity of O(n) against n objects in the scene. This per-ray operation therefore ought to get costly as the scene gets populated with more objects, leading the programmers to import the acceleration structure to reduce the cost down to logarithmic as a necessary step [23]. Two major methods lie for the ray casting acceleration structures: kd-tree and Bounding Volume Hierarchy (BVH) [24–27]. As an example, in Figure4, a set of triangles labeled with alphabets from A to F denotes the primitives in the scene. The kd-tree is one of the axis-aligned space partitioning methods which divides the current space into two separate child spaces recursively, to construct a binary tree, as shown in Figure4b. Bounding Volume Hierarchy (BVH), on the other hand, is also a binary tree, but it constructs a tree based on geometric objects, as shown in Figure4c. The kd-tree recursively divides the space into half, while the BVH tree recursively groups the graphics primitives and spaces. Note that the child volumes of the BVH structure can be partially overlapped. Recently, benchmarks show that BVH implementations are much better than traditional kd-tree structures [27,28], and we also adopt the BVH structure as our major data structure. Recent advancement of graphics hardware has allowed a great leap towards real-time ray-traced rendering [17,18]. Nvidia’s latest graphics processing units RTX series are the first runner of its kind; it supports real-time ray tracing with its specialized architecture [29]. While the RTX shows an astounding accomplishment, its technical features are rigidly bound to its physical hardware support. There are attempts to achieve real-time ray tracing support without utilizing special- ized hardware, better accustomed to welcome much general graphics processor owners. One of its latest and outstanding attempt is by Unreal Engine 4, the commercial game engine serviced since 2014 [30]. Its ray-traced global illumination feature can run without RTX Appl. Sci. 2021, 11, 3264 4 of 14 feature limitation. However, its ray-tracing pipeline is built-in to the engine, leaving us no freedom of customizing the illumination method. C A B D F E (a) target triangles A to F C 2 C 4 3 4 A B A B 1 3 5 D F D F 5 E E 2 1 1 1 2 3 2 3 A 4 5 F 4 5 C F C B D E A B D E (b) kd-tree representation (c) BVH representation Figure 4.
Recommended publications
  • Ray-Tracing in Vulkan.Pdf
    Ray-tracing in Vulkan A brief overview of the provisional VK_KHR_ray_tracing API Jason Ekstrand, XDC 2020 Who am I? ▪ Name: Jason Ekstrand ▪ Employer: Intel ▪ First freedesktop.org commit: wayland/31511d0e dated Jan 11, 2013 ▪ What I work on: Everything Intel but not OpenGL front-end – src/intel/* – src/compiler/nir – src/compiler/spirv – src/mesa/drivers/dri/i965 – src/gallium/drivers/iris 2 Vulkan ray-tracing history: ▪ On March 19, 2018, Microsoft announced DirectX Ray-tracing (DXR) ▪ On September 19, 2018, Vulkan 1.1.85 included VK_NVX_ray_tracing for ray- tracing on Nvidia RTX GPUs ▪ On March 17, 2020, Khronos released provisional cross-vendor extensions: – VK_KHR_ray_tracing – SPV_KHR_ray_tracing ▪ Final cross-vendor Vulkan ray-tracing extensions are still in-progress within the Khronos Vulkan working group 3 Overview: My objective with this presentation is mostly educational ▪ Quick overview of ray-tracing concepts ▪ Walk through how it all maps to the Vulkan ray-tracing API ▪ Focus on the provisional VK/SPV_KHR_ray_tracing extension – There are several details that will likely be different in the final extension – None of that is public yet, sorry. – The general shape should be roughly the same between provisional and final ▪ Not going to discuss details of ray-tracing on Intel GPUs 4 What is ray-tracing? All 3D rendering is a simulation of physical light 6 7 8 Why don't we do all 3D rendering this way? The primary problem here is wasted rays ▪ The chances of a random photon from the sun hitting your scene is tiny – About 1 in
    [Show full text]
  • Fast Oriented Bounding Box Optimization on the Rotation Group SO(3, R)
    Fast oriented bounding box optimization on the rotation group SO(3; R) CHIA-TCHE CHANG1, BASTIEN GORISSEN2;3 and SAMUEL MELCHIOR1;2 1Universite´ catholique de Louvain, Department of Mathematical Engineering (INMA) 2Universite´ catholique de Louvain, Applied Mechanics Division (MEMA) 3Cenaero An exact algorithm to compute an optimal 3D oriented bounding box was published in 1985 by Joseph O’Rourke, but it is slow and extremely hard C b to implement. In this article we propose a new approach, where the com- Xb putation of the minimal-volume OBB is formulated as an unconstrained b b optimization problem on the rotation group SO(3; R). It is solved using a hybrid method combining the genetic and Nelder-Mead algorithms. This b b method is analyzed and then compared to the current state-of-the-art tech- b b X b niques. It is shown to be either faster or more reliable for any accuracy. Categories and Subject Descriptors: I.3.5 [Computer Graphics]: Compu- b b b tational Geometry and Object Modeling—Geometric algorithms; Object b b representations; G.1.6 [Numerical Analysis]: Optimization—Global op- eξ b timization; Unconstrained optimization b b b b General Terms: Algorithms, Performance, Experimentation b Additional Key Words and Phrases: Computational geometry, optimization, b ex b manifolds, bounding box b b ∆ξ ∆η 1. INTRODUCTION This article deals with the problem of finding the minimum-volume oriented bounding box (OBB) of a given finite set of N points, 3 denoted by R . The problem consists in finding the cuboid, Fig. 1. Illustration of some of the notation used throughout the article.
    [Show full text]
  • Directx ® Ray Tracing
    DIRECTX® RAYTRACING 1.1 RYS SOMMEFELDT INTRO • DirectX® Raytracing 1.1 in DirectX® 12 Ultimate • AMD RDNA™ 2 PC performance recommendations AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 2 WHAT IS DXR 1.1? • Adds inline raytracing • More direct control over raytracing workload scheduling • Allows raytracing from all shader stages • Particularly well suited to solving secondary visibility problems AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 3 NEW RAY ACCELERATOR AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 4 DXR 1.1 BEST PRACTICES • Trace as few rays as possible to achieve the right level of quality • Content and scene dependent techniques work best • Positive results when driving your raytracing system from a scene classifier • 1 ray per pixel can generate high quality results • Especially when combined with techniques and high quality denoising systems • Lets you judiciously spend your ray tracing budget right where it will pay off AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 5 USING DXR 1.1 TO TRACE RAYS • DXR 1.1 lets you call TraceRay() from any shader stage • Best performance is found when you use it in compute shaders, dispatched on a compute queue • Matches existing asynchronous compute techniques you’re already familiar with • Always have just 1 active RayQuery object in scope at any time AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 6 RESOURCE BALANCING • Part of our ray tracing system
    [Show full text]
  • Visualization Tools and Trends a Resource Tour the Obligatory Disclaimer
    Visualization Tools and Trends A resource tour The obligatory disclaimer This presentation is provided as part of a discussion on transportation visualization resources. The Atlanta Regional Commission (ARC) does not endorse nor profit, in whole or in part, from any product or service offered or promoted by any of the commercial interests whose products appear herein. No funding or sponsorship, in whole or in part, has been provided in return for displaying these products. The products are listed herein at the sole discretion of the presenter and are principally oriented toward transportation practitioners as well as graphics and media professionals. The ARC disclaims and waives any responsibility, in whole or in part, for any products, services or merchandise offered by the aforementioned commercial interests or any of their associated parties or entities. You should evaluate your own individual requirements against available resources when establishing your own preferred methods of visualization. What is Visualization • As described on Wikipedia • Illustration • Information Graphics – visual representations of information data or knowledge • Mental Image – imagination • Spatial Visualization – ability to mentally manipulate 2dimensional and 3dimensional figures • Computer Graphics • Interactive Imaging • Music visual IEEE on Visualization “Traditionally the tool of the statistician and engineer, information visualization has increasingly become a powerful new medium for artists and designers as well. Owing in part to the mainstreaming
    [Show full text]
  • Parallel Construction of Bounding Volumes
    SIGRAD 2010 Parallel Construction of Bounding Volumes Mattias Karlsson, Olov Winberg and Thomas Larsson Mälardalen University, Sweden Abstract This paper presents techniques for speeding up commonly used algorithms for bounding volume construction using Intel’s SIMD SSE instructions. A case study is presented, which shows that speed-ups between 7–9 can be reached in the computation of k-DOPs. For the computation of tight fitting spheres, a speed-up factor of approximately 4 is obtained. In addition, it is shown how multi-core CPUs can be used to speed up the algorithms further. Categories and Subject Descriptors (according to ACM CCS): I.3.6 [Computer Graphics]: Methodology and techniques—Graphics data structures and data types 1. Introduction pute [MKE03, LAM06]. As Sections 2–4 show, the SIMD vectorization of the algorithms leads to generous speed-ups, A bounding volume (BV) is a shape that encloses a set of ge- despite that the SSE registers are only four floats wide. In ometric primitives. Usually, simple convex shapes are used addition, the algorithms can be parallelized further by ex- as BVs, such as spheres and boxes. Ideally, the computa- ploiting multi-core processors, as shown in Section 5. tion of the BV dimensions results in a minimum volume (or area) shape. The purpose of the BV is to provide a simple approximation of a more complicated shape, which can be 2. Fast SIMD computation of k-DOPs used to speed up geometric queries. In computer graphics, A k-DOP is a convex polytope enclosing another object such ∗ BVs are used extensively to accelerate, e.g., view frustum as a complex polygon mesh [KHM 98].
    [Show full text]
  • Geforce ® RTX 2070 Overclocked Dual
    GAMING GeForce RTX™ 2O7O 8GB XLR8 Gaming Overclocked Edition Up to 6X Faster Performance Real-Time Ray Tracing in Games Latest AI Enhanced Graphics Experience 6X the performance of previous-generation GeForce RTX™ 2070 is light years ahead of other cards, delivering Powered by NVIDIA Turing, GeForce™ RTX 2070 brings the graphics cards combined with maximum power efficiency. truly unique real-time ray-tracing technologies for cutting-edge, power of AI to games. hyper-realistic graphics. GRAPHICS REINVENTED PRODUCT SPECIFICATIONS ® The powerful new GeForce® RTX 2070 takes advantage of the cutting- NVIDIA CUDA Cores 2304 edge NVIDIA Turing™ architecture to immerse you in incredible realism Clock Speed 1410 MHz and performance in the latest games. The future of gaming starts here. Boost Speed 1710 MHz GeForce® RTX graphics cards are powered by the Turing GPU Memory Speed (Gbps) 14 architecture and the all-new RTX platform. This gives you up to 6x the Memory Size 8GB GDDR6 performance of previous-generation graphics cards and brings the Memory Interface 256-bit power of real-time ray tracing and AI to your favorite games. Memory Bandwidth (Gbps) 448 When it comes to next-gen gaming, it’s all about realism. GeForce RTX TDP 185 W>5 2070 is light years ahead of other cards, delivering truly unique real- NVLink Not Supported time ray-tracing technologies for cutting-edge, hyper-realistic graphics. Outputs DisplayPort 1.4 (x2), HDMI 2.0b, USB Type-C Multi-Screen Yes Resolution 7680 x 4320 @60Hz (Digital)>1 KEY FEATURES SYSTEM REQUIREMENTS Power
    [Show full text]
  • Bounding Volume Hierarchies
    Simulation in Computer Graphics Bounding Volume Hierarchies Matthias Teschner Outline Introduction Bounding volumes BV Hierarchies of bounding volumes BVH Generation and update of BVs Design issues of BVHs Performance University of Freiburg – Computer Science Department – 2 Motivation Detection of interpenetrating objects Object representations in simulation environments do not consider impenetrability Aspects Polygonal, non-polygonal surface Convex, non-convex Rigid, deformable Collision information University of Freiburg – Computer Science Department – 3 Example Collision detection is an essential part of physically realistic dynamic simulations In each time step Detect collisions Resolve collisions [UNC, Univ of Iowa] Compute dynamics University of Freiburg – Computer Science Department – 4 Outline Introduction Bounding volumes BV Hierarchies of bounding volumes BVH Generation and update of BVs Design issues of BVHs Performance University of Freiburg – Computer Science Department – 5 Motivation Collision detection for polygonal models is in Simple bounding volumes – encapsulating geometrically complex objects – can accelerate the detection of collisions No overlapping bounding volumes Overlapping bounding volumes → No collision → Objects could interfere University of Freiburg – Computer Science Department – 6 Examples and Characteristics Discrete- Axis-aligned Oriented Sphere orientation bounding box bounding box polytope Desired characteristics Efficient intersection test, memory efficient Efficient generation
    [Show full text]
  • Tracepro's Accurate LED Source Modeling Improves the Performance of Optical Design Simulations
    TECHNICAL ARTICLE March, 2015 TracePro’s accurate LED source modeling improves the performance of optical design simulations. Modern optical modeling programs allow product design engineers to create, analyze, and optimize LED sources and LED optical systems as a virtual prototype prior to manufacturing the actual product. The precision of these virtual models depends on accurately representing the components that make up the model, including the light source. This paper discusses the physics behind light source modeling, source modeling options in TracePro, selection of the best modeling method, comparing modeled vs measured results, and source model reporting. Ray Tracing Physics and Source Representation In TracePro and other ray tracing programs, LED sources are represented as a series of individual rays, each with attributes of wavelength, luminous flux, and direction. To obtain the most accurate results, sources are typically represented using millions of individual rays. Source models range from simple (e.g. point source) to complex (e.g. 3D model) and can involve complex interactions completely within the source model. For example, a light source with integrated TIR lens can effectively be represented as a “source” in TracePro. However, sources are usually integrated with other components to represent the complete optical system. We will discuss ray tracing in this context. Ray tracing engines, in their simplest form, employ Snell’s Law and the Law of Reflection to determine the path and characteristics of each individual ray as it passes through the optical system. Figure 1 illustrates a simple optical system with reflection and refraction. Figure 1 – Simple ray trace with refraction and reflection TracePro’s sophisticated ray tracing engine incorporates specular transmission and reflection, scattered transmission and reflection, absorption, bulk scattering, polarization, fluorescence, diffraction, and gradient index properties.
    [Show full text]
  • Graphics Pipeline and Rasterization
    Graphics Pipeline & Rasterization Image removed due to copyright restrictions. MIT EECS 6.837 – Matusik 1 How Do We Render Interactively? • Use graphics hardware, via OpenGL or DirectX – OpenGL is multi-platform, DirectX is MS only OpenGL rendering Our ray tracer © Khronos Group. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/. 2 How Do We Render Interactively? • Use graphics hardware, via OpenGL or DirectX – OpenGL is multi-platform, DirectX is MS only OpenGL rendering Our ray tracer © Khronos Group. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/. • Most global effects available in ray tracing will be sacrificed for speed, but some can be approximated 3 Ray Casting vs. GPUs for Triangles Ray Casting For each pixel (ray) For each triangle Does ray hit triangle? Keep closest hit Scene primitives Pixel raster 4 Ray Casting vs. GPUs for Triangles Ray Casting GPU For each pixel (ray) For each triangle For each triangle For each pixel Does ray hit triangle? Does triangle cover pixel? Keep closest hit Keep closest hit Scene primitives Pixel raster Scene primitives Pixel raster 5 Ray Casting vs. GPUs for Triangles Ray Casting GPU For each pixel (ray) For each triangle For each triangle For each pixel Does ray hit triangle? Does triangle cover pixel? Keep closest hit Keep closest hit Scene primitives It’s just a different orderPixel raster of the loops!
    [Show full text]
  • Ray-Tracing Procedural Displacement Shaders
    Ray-tracing Procedural Displacement Shaders Wolfgang Heidrich and Hans-Peter Seidel Computer Graphics Group University of Erlangen fheidrich,[email protected] Abstract displacement shaders are resolution independent and Displacement maps and procedural displacement storage efficient. shaders are a widely used approach of specifying geo- metric detail and increasing the visual complexity of a scene. While it is relatively straightforward to handle displacement shaders in pipeline based rendering systems such as the Reyes-architecture, it is much harder to efficiently integrate displacement-mapped surfaces in ray-tracers. Many commercial ray-tracers tessellate the surface into a multitude of small trian- Figure 1: A simple displacement shader showing a gles. This introduces a series of problems such as wave function with exponential decay. The underly- excessive memory consumption and possibly unde- ing geometry used for this image is a planar polygon. tected surface detail. In this paper we describe a novel way of ray-tracing Unfortunately, because displacement shaders mod- procedural displacement shaders directly, that is, ify the geometry, their use in many rendering systems without introducing intermediate geometry. Affine is limited. Since ray-tracers cannot handle proce- arithmetic is used to compute bounding boxes for dural displacements directly, many commercial ray- the shader over any range in the parameter domain. tracing systems, such as Alias [1], tessellate geomet- The method is comparable to the direct ray-tracing ric objects with displacement shaders into a mul- of B´ezier surfaces and implicit surfaces using B´ezier titude of small triangles. Unlike in pipeline-based clipping and interval methods, respectively. renderers, such as the Reyes-architecture [17], these Keywords: ray-tracing, displacement-mapping, pro- triangles have to be kept around, and cannot be ren- cedural shaders, affine arithmetic dered independently.
    [Show full text]
  • Getting Started (Pdf)
    GETTING STARTED PHOTO REALISTIC RENDERS OF YOUR 3D MODELS Available for Ver. 1.01 © Kerkythea 2008 Echo Date: April 24th, 2008 GETTING STARTED Page 1 of 41 Written by: The KT Team GETTING STARTED Preface: Kerkythea is a standalone render engine, using physically accurate materials and lights, aiming for the best quality rendering in the most efficient timeframe. The target of Kerkythea is to simplify the task of quality rendering by providing the necessary tools to automate scene setup, such as staging using the GL real-time viewer, material editor, general/render settings, editors, etc., under a common interface. Reaching now the 4th year of development and gaining popularity, I want to believe that KT can now be considered among the top freeware/open source render engines and can be used for both academic and commercial purposes. In the beginning of 2008, we have a strong and rapidly growing community and a website that is more "alive" than ever! KT2008 Echo is very powerful release with a lot of improvements. Kerkythea has grown constantly over the last year, growing into a standard rendering application among architectural studios and extensively used within educational institutes. Of course there are a lot of things that can be added and improved. But we are really proud of reaching a high quality and stable application that is more than usable for commercial purposes with an amazing zero cost! Ioannis Pantazopoulos January 2008 Like the heading is saying, this is a Getting Started “step-by-step guide” and it’s designed to get you started using Kerkythea 2008 Echo.
    [Show full text]
  • Ray Tracing (Shading)
    CS4620/5620: Lecture 35 Ray Tracing (Shading) Cornell CS4620/5620 Fall 2012 • Lecture 35 © 2012 Kavita Bala • 1 (with previous instructors James/Marschner) Announcements • 4621 – Class today • Turn in HW3 • PPA3 is going to be out today • PA3A is out Cornell CS4620/5620 Fall 2012 • Lecture 35 © 2012 Kavita Bala • 2 (with previous instructors James/Marschner) Shading • Compute light reflected toward camera • Inputs: – eye direction – light direction (for each of many lights) l n – surface normal v – surface parameters (color, shininess, …) Cornell CS4620/5620 Fall 2012 • Lecture 35 © 2012 Kavita Bala • 3 (with previous instructors James/Marschner) Light • Local light – Position • Directional light (e.g., sun) – Direction, no position Cornell CS4620/5620 Fall 2012 • Lecture 35 © 2012 Kavita Bala • 4 (with previous instructors James/Marschner) Lambertian shading • Shading independent of view direction illumination from source l n Ld = kd I max(0, n l) Q v · diffuse coefficient diffusely reflected light Cornell CS4620/5620 Fall 2012 • Lecture 35 © 2012 Kavita Bala • 5 (with previous instructors James/Marschner) Image so far Scene.trace(Ray ray, tMin, tMax) { surface, t = hit(ray, tMin, tMax); if surface is not null { point = ray.evaluate(t); normal = surface.getNormal(point); return surface.shade(ray, point, normal, light); } else return backgroundColor; } … Surface.shade(ray, point, normal, light) { v = –normalize(ray.direction); l = normalize(light.pos – point); // compute shading } Cornell CS4620/5620 Fall 2012 • Lecture 35 © 2012 Kavita
    [Show full text]