NVIDIA RTX: Enabling Ray Tracing in Vulkan Nuno Subtil, Sr

Total Page:16

File Type:pdf, Size:1020Kb

NVIDIA RTX: Enabling Ray Tracing in Vulkan Nuno Subtil, Sr NVIDIA RTX: Enabling Ray Tracing in Vulkan Nuno Subtil, Sr. Devtech Engineer / Eric Werness, Sr. System Software Engineer March 27, 2018 Ray tracing vs. rasterization How did we get here? Overview Real-time ray tracing applications in 2018 Exposing RTX through Vulkan 2 Ray Tracing vs. Rasterization ▪ Rasterization: evaluate one triangle at a time o Store and accumulate some of the output data, but discard most of it ▪ Computationally cheap, but “local” ▪ Amenable to hardware implementation 3 Ray Tracing vs. Rasterization ▪ Ray tracing: sampling the entire scene one ray at a time o Entire scene is evaluated o Can visit same primitive many times ▪ Extremely flexible ▪ Can be computationally intensive 4 Ray Tracing at NVIDIA Decade+ of R&D ▪ Real-time graphics: rasterization is king o GPUs evolve to enable powerful rasterization-based algorithms ▪ 2007: CUDA brings general purpose computing to GPUs o Ray tracing research focused on acceleration via GPGPU 5 OptiX: A General Purpose Ray Tracing Engine Parker et al, OptiX: A General Purpose Ray Tracing Engine, SIGGRAPH 2010 6 Today: OptiX and Pro GPU Rendering ▪ OptiX: General purpose GPU ray tracing SDK ▪ OptiX abstraction supports future innovation 7 NVIDIA RTX “NVIDIA RTX opens the door to make real-time ray tracing a reality!” — Kim Libreri, CTO, Epic Games “With NVIDIA GV100 GPUs and RTX, we can now do real-time ray tracing. It’s just fantastic!” — Sébastien Guichou, CTO of Isotropix8 NVIDIA RTX Applications NVIDIA DesignWorks NVIDIA GameWorks OptiX Raytracing Extensions DirectX Raytracing for CUDA for Vulkan for Microsoft DX12 NVIDIA® RTX™ Technology NVIDIA Volta GPU 9 Ray Traced Shadows Physically correct shadows Sharp and Contact Hardening 10 RTAO Ray Traced Ambient Occlusion SSAO Improved ambient occlusion detail with fewer artifacts 11 Ray Traced Reflections Physically-correct reflections on arbitrary surfaces 12 Ray Tracing: Not Just Graphics ▪ Physics, particle simulations ▪ Audio path tracing / simulation ▪ AI visibility queries 13 Exposing RTX through Vulkan VK_NV_raytracing 14 API design principles ▪ Proven ray tracing API concepts ▪ Hardware-agnostic ▪ Good fit with Vulkan API ▪ Implementable on compute functionality 15 Graphics Pipelines Rasterization Draw Vertex Fragment Scheduling Rasterization ROP Call Shading Shading Ray Tracing Ray Traversal & Scheduling Scheduling Shading Generation Intersection 16 Building the Pipeline Ray tracing building blocks ▪ Acceleration Structure o Abstraction for scene geometry, enables efficient scene traversal ▪ Ray tracing shader domains o Handle ray generation and termination, intersections, material shading ▪ Shader binding table o Links shaders and resources to be used during traversal ▪ Ray tracing Pipeline object 17 Acceleration Structure Concepts ▪ Ray tracing: testing one ray against all scene primitives ▪ Acceleration structures required for efficient operation 18 Acceleration Structure Concepts Top Level Acceleration Structure (AS) ▪ Dual-level acceleration structure Transform Transform Transform and shading and shading and shading ▪ Opaque (implementation-defined) information information information data structures Bottom Bottom ▪ Efficient build and update Level AS Level AS 19 Building Acceleration Structures Vertex & Index Build/Update Bottom Level AS Buffers Vertex & Index Build/Update Bottom Level AS Buffers Vertex & Index Build/Update Bottom Level AS Buffers 20 Building Acceleration Structures Bottom Level AS Xform / Shading Bottom Level AS Xform / Shading Build/Update Top Level AS Bottom Level AS Xform / Shading 21 Creating Acceleration struct VkAccelerationStructureCreateInfoNV { VkStructureType sType; Structures void *pNext; // top-level or bottom-level VkAccelerationStructureTypeNV type; VkAccelerationStructureCreateFlagsNV flags; // used when copying an existing object VkAccelerationStructureNV *pOriginal; ▪ New object type VkAccelerationStructureNV uint32_t numInstances; uint32_t numGeometries; const VkGeometryNV *pGeometries; }; ▪ New descriptor type for binding AS to shaders vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV *info, const VkAllocationCallbacks *pAllocator, VkAccelerationStructureNV *pAccelerationStruct ); 22 Acceleration Structure Memory Management vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const ▪ Backing store for AS is managed by application VkAccelerationStructureMemoryRequirementsInfoNV *pInfo, VkMemoryReqiurements2 *pMemoryRequirements ); ▪ Memory requirements will vary vkBindAccelerationStructureMemoryNV(…); 23 Acceleration Structure Build/Update vkCmdBuildAccelerationStructureNV( VkCommandBuffer cmdBuf, VkAccelerationStructureTypeNV type, uint32_t numInstances, const VkBuffer instanceData, const VkDeviceSize instanceOffset, ▪ Single command to build or update an AS uint32_t numGeometries, const VkGeometryNV *pGeometries, VkBuildAccelerationStructureFlagsNV flags, ▪ AS updates have restrictions for efficiency VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNVsrc, VkBuffer scratch ); 24 Acceleration Structure Copy vkCmdCopyAccelerationStructure( ▪ Acceleration structures can be copied, optionally VkCommandBuffer cmdBuf, VkAccelerationStructure dst, compacting during the copy VkAccelerationStructure src, VkCopyAccelerationStructureFlags flags ); 25 Ray tracing shader domains Ray Generation traceNV() Intersection Any-Hit Any Hit Acceleration Structure Intersection Any-Hit Traversal Closest-Hit Intersection Ray Generation Hit? no yes Miss Closest Hit 26 Inter-shader communication ▪ Ray payload o Application-defined structure to pass data between hit stages and shader Ray Generation stage that spawned a ray traceNV() o Used to return final intersection Any Hit information to ray generation shader Acceleration Structure Traversal Intersection Hit? Any-hit: read/update payload no yes Closest Hit: Miss Closest Hit read/update Payload Ray Generation: Allocate and fill initial payload 27 Inter-shader communication ▪ Ray Attributes o Application-defined structure to pass intersection information from Ray Generation intersection shader to hit shaders traceNV() Any Hit Acceleration Structure Traversal Intersection Intersection: write attributes Hit? Any Hit: read attributes no yes Intersection: write attributes Miss Closest Hit Closest Hit: read attributes 28 Ray Generation Shaders Ray Generation ▪ Starting point for all ray tracing work traceNV() Any Hit Acceleration ▪ Simple 2D grid of threads launched Structure Traversal from host Intersection Hit? ▪ Traces rays, writes final output no yes Miss Closest Hit 29 Intersection Shaders Ray Generation traceNV() ▪ Compute ray intersections with app- Any Hit defined primitives Acceleration Structure Traversal Intersection ▪ Ray-triangle intersections built-in Hit? no yes Miss Closest Hit 30 Any-hit shader Ray Generation traceNV() ▪ Invoked after an intersection is found Any Hit Acceleration Structure Traversal ▪ Multiple intersections invoked in Intersection arbitrary order Hit? no yes Miss Closest Hit 31 Closest-hit shader Ray Generation ▪ Invoked on the closest intersection of traceNV() the ray Any Hit Acceleration Structure Traversal ▪ Can read attributes and trace rays to Intersection modify the payload Hit? no yes Miss Closest Hit 32 Miss shader Ray Generation ▪ Invoked if no hit is found and traceNV() accepted Any Hit Acceleration Structure Traversal Intersection ▪ Can trace rays and modify ray payload Hit? no yes Miss Closest Hit 33 Inter-shader Interface Mapping to GLSL ▪ Ray payload and intersection attributes: new rayPayloadNV { … } block decorations intersectionAttributesNV { … } layout (location= 1) rayPayloadNV firstInterface {…} layout (location= 2) ▪ traceNV() builtin may be called with different rayPayloadNV secondInterface {…} payload structures in a single shader traceNV(…, 1) // firstInterface traceNV(…, 2) // secondInterface 34 traceNV( accelerationStructure topLevel, uint rayFlags, GLSL Extensions uint cullMask, ▪ Built-in variable decorations: uint sbtRecordOffset, uint sbtRecordStride, o ID/index information uint missIndex, vec3 origin, o ray parameters, hit parameters float tmin, vec3 direction, o instance transforms float tmax, int payload ); ▪ New functions: reportIntersectionNV( o traceNV() traces a ray into the scene float hit, uint hitKind o reportIntersectionNV() outputs intersection ); information ignoreIntersectionNV(); o ignoreIntersectionNV() rejects an intersection terminateRayNV(); o terminateRayNV() terminates the current ray 35 Shader Binding Table ▪ A given ray query into the scene can hit any object o … with different kinds of material shaders o … requiring different kinds of resources (e.g., textures) o … and different parameters (e.g., transparency value) o … per object instance! 36 Shader Binding Table ▪ Array of opaque shader handles + application storage inside VkBuffer ▪ Indexing used to determine shaders / data used ▪ App-defined stride for SBT records to accommodate different resource sets 37 Shader Binding Table ShaderBindingTable Buffer Shader Custom Data & Shader Custom Data & ... ... Reference Indices Reference Indices Traversal yields instanceOffset RT Pipeline with RT Pipeline with Descriptor Sets Descriptor Sets RayGeneration ClosestHit Shader Shader reacts on Acceleration Structures Textures etc. traces rays hit (can trace) 38 vkCmdTraceRaysNV vkCmdTraceRaysNV( ▪ Entry point to invoke ray tracing work VkCommandBuffer cmdBuf, VkBuffer shaderBindingTable, uint32_t raygenShaderBindingTableIndex, uint32_t missShaderBindingTableIndex,
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]
  • GPU Developments 2018
    GPU Developments 2018 2018 GPU Developments 2018 © Copyright Jon Peddie Research 2019. All rights reserved. Reproduction in whole or in part is prohibited without written permission from Jon Peddie Research. This report is the property of Jon Peddie Research (JPR) and made available to a restricted number of clients only upon these terms and conditions. Agreement not to copy or disclose. This report and all future reports or other materials provided by JPR pursuant to this subscription (collectively, “Reports”) are protected by: (i) federal copyright, pursuant to the Copyright Act of 1976; and (ii) the nondisclosure provisions set forth immediately following. License, exclusive use, and agreement not to disclose. Reports are the trade secret property exclusively of JPR and are made available to a restricted number of clients, for their exclusive use and only upon the following terms and conditions. JPR grants site-wide license to read and utilize the information in the Reports, exclusively to the initial subscriber to the Reports, its subsidiaries, divisions, and employees (collectively, “Subscriber”). The Reports shall, at all times, be treated by Subscriber as proprietary and confidential documents, for internal use only. Subscriber agrees that it will not reproduce for or share any of the material in the Reports (“Material”) with any entity or individual other than Subscriber (“Shared Third Party”) (collectively, “Share” or “Sharing”), without the advance written permission of JPR. Subscriber shall be liable for any breach of this agreement and shall be subject to cancellation of its subscription to Reports. Without limiting this liability, Subscriber shall be liable for any damages suffered by JPR as a result of any Sharing of any Material, without advance written permission of JPR.
    [Show full text]
  • Differentiate Your Android Game with Tegra & Allegorithmic Substance
    FLAP HIGHER THAN THE BIRDS: DIFFERENTIATE YOUR ANDROID GAME WITH TEGRA & ALLEGORITHMIC SUBSTANCE Andrew Edelsten, NVIDIA Dr Sebastien Deguy, Allegorithmic GOOD MORNING! . Welcome to GTC 2014 . And yes, that is the time! GOOD MORNING! OVERVIEW . Today’s Android and Google Play Store . NVIDIA Technology — SHIELD — Tegra K1 & the Kepler GPU architecture . Hands on with Allegorithmic Substance . NVIDIA GameWorks — Libraries & Samples — Tools — TegraZone . Wrap up ANDROID IN 2014 . The world’s most popular mobile OS . Over 1 billion devices (as of September 2013) . 1 million new devices every day . Devices in over 190 countries GOOGLE PLAY STORE . Play Store has over 1 million apps and games . Over 1.5 billion apps and games downloaded each month . With great success comes great problems — How do you get noticed through the noise? GETTING NOTICED GETTING NOTICED . Today’s mobile games are often too simple or clones — Angry Birds and Flappy Birds (and 2048?) will still happen — You may win the lottery . The Wild West is becoming more mainstream — Quality games are trending higher more often . Quality games — “Quality” is a nebulous term — Game design is hugely important — Differentiation . General niceties . Graphics and next-gen visuals TODAY’S THEME Human’s are visual creatures; we like things that are different, pretty, and which stand out. Stand out from the crowd: . Be different . Get noticed . Succeed NVIDIA TECHNOLOGY NVIDIA SHIELD . Tegra 4 powered . 5 inch 720p & multitouch display . Console-grade controller . High speed Wi-Fi . Full connectivity (HDMI, Miracast, USB, MicroSD, headphone, Bluetooth) . Tuned port base reflex speakers . Pure Android . 3D dashboard SHIELD DEVELOPMENT CONSIDERATIONS .
    [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]
  • G E F O R Ce D E S K to P L in E C a Rd Driver/Os Support Why
    NVIDIA Desktop Graphics Processor DESKTOP CHANNEL | LINECARD | JUN14 QUICK GUIDE GeForce Gaming Experience HD MEDIA Performance ® ® ® PhysX ® Replaces AMD Graphics Processing Unit Board Gaming Experience DirectX NVIDIA NVIDIA GPU Boost™ NVIDIA TXAA™ NVIDIA SLI NVIDIA G-SYNC™ Ready Multi-Monitor Support Game Optimization GeForce ShadowPlay™ NVIDIA GameStream™ Recommended Apps NVIDIA CUDA Cores Standard Memory Configuration Performance GeForce GTX TITAN Z R9 295X2 3840x2160 12 2.0 Quad max 4 5760 12288 MB GDDR5 GEFORCE DESKTOP LINECARD GeForce GTX TITAN Black 12 2.0 4-way max 4 2880 6144 MB GDDR5 GeForce GTX 780 Ti R9 290X 1920x1080 / 12 2.0 4-way max 4 2880 3072 MB GDDR5 2560x1440 @ GeForce GTX 780 R9 290 Max Settings 12 2.0 3-way max 4 Digital Artistry: 2304 3072 MB GDDR5 Adobe CS6 GEFORCE® GeForce GTX 770 R9 280X 12 2.0 3-way max 4 1536 2048 MB GDDR5 GTX™ Video Editing: MotionDSP vReveal HD GeForce GTX 760 R9 270X 1920x1080 12 2.0 3-way max 4 1152 2048 MB GDDR5 @ GeForce GTX 660 R9 270 High Settings 12 1.0 2-way max 4 960 2048 MB GDDR5 GeForce GTX 750 Ti R7 260X 1920x1080 12 2.0 max 3 640 2048 MB GDDR5 @ GeForce GTX 750 R7 260 Medium Setting 12 2.0 max 3 512 1024 MB GDDR5 1024 MB GDDR5 GeForce GT 740 R7 250 1680x1050 12 max 3 Photo Slideshow: 384 Muvee Reveal 2048 MB DDR3 Photo Tagging: 384 1024 MB GDDR5 GeForce GT 730 R7 240 12 max 3 Cyberlink MediaShow 384 2048 MB DDR3 96 1024 MB DDR3 1440x900 GEFORCE GT Media Conversion: GeForce GT 610 HD 6450 12 max 2 Cyberlink MediaShow 48 1024 MB DDR3 Espresso Video Editing: GeForce 210 HD 5450 1280x720 10.1 max 2 Cyberlink PowerDirector 16 512 MB / 1024 MB DDR2 1- DirectX® 12 API (feature level 11_0) 2- NVIDIA G-SYNC requires an NVIDIA G-SYNC-ready monitor 3- NVIDIA GameStream requires an NVIDIA GameStream-ready device WHY NVIDIA GEFORCE? DRIVER/OS SUPPORT > GeForce is the most stable, reliable, and recognized global brand in graphics technology, and the leading GPU of choice > Windows 8, 8.1 (32-bit/64-bit) for gamers everywhere.
    [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]
  • 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]
  • 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]
  • NVIDIA Ampere GA102 GPU Architecture Whitepaper
    NVIDIA AMPERE GA102 GPU ARCHITECTURE Second-Generation RTX Updated with NVIDIA RTX A6000 and NVIDIA A40 Information V2.0 Table of Contents Introduction 5 GA102 Key Features 7 2x FP32 Processing 7 Second-Generation RT Core 7 Third-Generation Tensor Cores 8 GDDR6X and GDDR6 Memory 8 Third-Generation NVLink® 8 PCIe Gen 4 9 Ampere GPU Architecture In-Depth 10 GPC, TPC, and SM High-Level Architecture 10 ROP Optimizations 11 GA10x SM Architecture 11 2x FP32 Throughput 12 Larger and Faster Unified Shared Memory and L1 Data Cache 13 Performance Per Watt 16 Second-Generation Ray Tracing Engine in GA10x GPUs 17 Ampere Architecture RTX Processors in Action 19 GA10x GPU Hardware Acceleration for Ray-Traced Motion Blur 20 Third-Generation Tensor Cores in GA10x GPUs 24 Comparison of Turing vs GA10x GPU Tensor Cores 24 NVIDIA Ampere Architecture Tensor Cores Support New DL Data Types 26 Fine-Grained Structured Sparsity 26 NVIDIA DLSS 8K 28 GDDR6X Memory 30 RTX IO 32 Introducing NVIDIA RTX IO 33 How NVIDIA RTX IO Works 34 Display and Video Engine 38 DisplayPort 1.4a with DSC 1.2a 38 HDMI 2.1 with DSC 1.2a 38 Fifth Generation NVDEC - Hardware-Accelerated Video Decoding 39 AV1 Hardware Decode 40 Seventh Generation NVENC - Hardware-Accelerated Video Encoding 40 NVIDIA Ampere GA102 GPU Architecture ii Conclusion 42 Appendix A - Additional GeForce GA10x GPU Specifications 44 GeForce RTX 3090 44 GeForce RTX 3070 46 Appendix B - New Memory Error Detection and Replay (EDR) Technology 49 Appendix C - RTX A6000 GPU Perf ormance 50 List of Figures Figure 1.
    [Show full text]