Killzone 3 features complex occluded environments. To cull non-visible geometry early in the frame, the game uses PlayStation 3 SPUs to rasterize a conservative depth buffer and perform fast synchronous occlusion queries against it. This talk presents an overview of the approach and key lessons learned during its development.
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
This talk covers changes in CryENGINE 3 technology during 2012, with DX11 related topics such as moving to deferred rendering while maintaining backward compatibility on a multiplatform engine, massive vegetation rendering, MSAA support and how to deal with its common visual artifacts, among other topics.
With the highest-quality video options, Battlefield 3 renders its Screen-Space Ambient Occlusion (SSAO) using the Horizon-Based Ambient Occlusion (HBAO) algorithm. For performance reasons, the HBAO is rendered in half resolution using half-resolution input depths. The HBAO is then blurred in full resolution using a depth-aware blur. The main issue with such low-resolution SSAO rendering is that it produces objectionable flickering for thin objects (such as alpha-tested foliage) when the camera and/or the geometry are moving. After a brief recap of the original HBAO pipeline, this talk describes a novel temporal filtering algorithm that fixed the HBAO flickering problem in Battlefield 3 with a 1-2% performance hit in 1920x1200 on PC (DX10 or DX11). The talk includes algorithm and implementation details on the temporal filtering part, as well as generic optimizations for SSAO blur pixel shaders. This is a joint work between Louis Bavoil (NVIDIA) and Johan Andersson (DICE).
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
A behind-the-scenes look into the latest renderer technology powering the critically acclaimed DOOM. The lecture will cover how technology was designed for balancing a good visual quality and performance ratio. Numerous topics will be covered, among them details about the lighting solution, techniques for decoupling costs frequency and GCN specific approaches.
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
In this talk, the authors will describe an overview of a different method for deferred lighting approach used in CryENGINE 3, along with an in-depth description of the many techniques used. Original file and videos at http://crytek.com/cryengine/presentations
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
This lecture covers rendering topics related to Crytek’s latest engine iteration, the technology which powers titles such as Ryse, Warface, and Crysis 3. Among covered topics, Sousa presented SMAA 1TX: an update featuring a robust and simple temporal antialising component; performant and physically-plausible camera related post-processing techniques such as motion blur and depth of field were also covered.
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
This talk covers changes in CryENGINE 3 technology during 2012, with DX11 related topics such as moving to deferred rendering while maintaining backward compatibility on a multiplatform engine, massive vegetation rendering, MSAA support and how to deal with its common visual artifacts, among other topics.
With the highest-quality video options, Battlefield 3 renders its Screen-Space Ambient Occlusion (SSAO) using the Horizon-Based Ambient Occlusion (HBAO) algorithm. For performance reasons, the HBAO is rendered in half resolution using half-resolution input depths. The HBAO is then blurred in full resolution using a depth-aware blur. The main issue with such low-resolution SSAO rendering is that it produces objectionable flickering for thin objects (such as alpha-tested foliage) when the camera and/or the geometry are moving. After a brief recap of the original HBAO pipeline, this talk describes a novel temporal filtering algorithm that fixed the HBAO flickering problem in Battlefield 3 with a 1-2% performance hit in 1920x1200 on PC (DX10 or DX11). The talk includes algorithm and implementation details on the temporal filtering part, as well as generic optimizations for SSAO blur pixel shaders. This is a joint work between Louis Bavoil (NVIDIA) and Johan Andersson (DICE).
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
A behind-the-scenes look into the latest renderer technology powering the critically acclaimed DOOM. The lecture will cover how technology was designed for balancing a good visual quality and performance ratio. Numerous topics will be covered, among them details about the lighting solution, techniques for decoupling costs frequency and GCN specific approaches.
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
In this talk, the authors will describe an overview of a different method for deferred lighting approach used in CryENGINE 3, along with an in-depth description of the many techniques used. Original file and videos at http://crytek.com/cryengine/presentations
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
This lecture covers rendering topics related to Crytek’s latest engine iteration, the technology which powers titles such as Ryse, Warface, and Crysis 3. Among covered topics, Sousa presented SMAA 1TX: an update featuring a robust and simple temporal antialising component; performant and physically-plausible camera related post-processing techniques such as motion blur and depth of field were also covered.
This presentation gives an overview of the rendering techniques used in KILLZONE 2. We put the main focus on the lighting and shadowing techniques of our deferred shading engine and how we made them play nicely with anti-aliasing.
Game engines have long been in the forefront of taking advantage of the ever
increasing parallel compute power of both CPUs and GPUs. This talk is about how the
parallel compute is utilized in practice on multiple platforms today in the Frostbite game
engine and how we think the parallel programming models, hardware and software in
the industry should look like in the next 5 years to help us make the best games possible.
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
With further advancement in the current console cycle, new tricks are being learned to squeeze the maximum performance out of the hardware. This talk will present how the compute power of the console and PC GPUs can be used to improve the triangle throughput beyond the limits of the fixed function hardware. The discussed method shows a way to perform efficient "just-in-time" optimization of geometry, and opens the way for per-primitive filtering kernels and procedural geometry processing.
Takeaway:
Attendees will learn how to preprocess geometry on-the-fly per frame to improve rendering performance and efficiency.
Intended Audience:
This presentation is targeting seasoned graphics developers. Experience with DirectX 12 and GCN is recommended, but not required.
Talk by Graham Wihlidal (Frostbite Labs) at GDC 2017.
Checkerboard rendering is a relatively new technique, popularized recently by the introduction of the PlayStation 4 Pro. Many modern game engines are adding support for it right now, and in this talk, Graham will present an in-depth look at the new implementation in Frostbite, which is used in shipping titles like 'Battlefield 1' and 'Mass Effect Andromeda'. Despite being conceptually simple, checkerboard rendering requires a deep integration into the post-processing chain, in particular temporal anti-aliasing, dynamic resolution scaling, and poses various challenges to existing effects. This presentation will cover the basics of checkerboard rendering, explain the impact on a game engine that powers a wide range of titles, and provide a detailed look at how the current implementation in Frostbite works, including topics like object id, alpha unrolling, gradient adjust, and a highly efficient depth resolve.
This talk is about our experiences gained during making of the Killzone Shadow Fall announcement demo.
We’ve gathered all the hard data about our assets, memory, CPU and GPU usage and a whole bunch of tricks.
The goal of talk is to help you to form a clear picture of what’s already possible to achieve on PS4.
A description of the next-gen rendering technique called Triangle Visibility Buffer. It offers up to 10x - 20x geometry compared to Deferred rendering and much higher resolution. Generally it aligns better with memory access patterns in modern GPUs compared to Deferred Lighting like Clustered Deferred Lighting etc.
This session presents a detailed programmer oriented overview of our SPU based shading system implemented in DICE's Frostbite 2 engine and how it enables more visually rich environments in BATTLEFIELD 3 and better performance over traditional GPU-only based renderers. We explain in detail how our SPU Tile-based deferred shading system is implemented, and how it supports rich material variety, High Dynamic Range Lighting, and large amounts of light sources of different types through an extensive set of culling, occlusion and optimization techniques.
Talk by Yuriy O’Donnell at GDC 2017.
This talk describes how Frostbite handles rendering architecture challenges that come with having to support a wide variety of games on a single engine. Yuriy describes their new rendering abstraction design, which is based on a graph of all render passes and resources. This approach allows implementation of rendering features in a decoupled and modular way, while still maintaining efficiency.
A graph of all rendering operations for the entire frame is a useful abstraction. The industry can move away from “immediate mode” DX11 style APIs to a higher level system that allows simpler code and efficient GPU utilization. Attendees will learn how it worked out for Frostbite.
A presentation I did for China GDC 2011.
I cover the basic of visibility optimization as well as present some practical examples of visibility systems used in modern video games.
This presentation gives an overview of the rendering techniques used in KILLZONE 2. We put the main focus on the lighting and shadowing techniques of our deferred shading engine and how we made them play nicely with anti-aliasing.
Game engines have long been in the forefront of taking advantage of the ever
increasing parallel compute power of both CPUs and GPUs. This talk is about how the
parallel compute is utilized in practice on multiple platforms today in the Frostbite game
engine and how we think the parallel programming models, hardware and software in
the industry should look like in the next 5 years to help us make the best games possible.
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
With further advancement in the current console cycle, new tricks are being learned to squeeze the maximum performance out of the hardware. This talk will present how the compute power of the console and PC GPUs can be used to improve the triangle throughput beyond the limits of the fixed function hardware. The discussed method shows a way to perform efficient "just-in-time" optimization of geometry, and opens the way for per-primitive filtering kernels and procedural geometry processing.
Takeaway:
Attendees will learn how to preprocess geometry on-the-fly per frame to improve rendering performance and efficiency.
Intended Audience:
This presentation is targeting seasoned graphics developers. Experience with DirectX 12 and GCN is recommended, but not required.
Talk by Graham Wihlidal (Frostbite Labs) at GDC 2017.
Checkerboard rendering is a relatively new technique, popularized recently by the introduction of the PlayStation 4 Pro. Many modern game engines are adding support for it right now, and in this talk, Graham will present an in-depth look at the new implementation in Frostbite, which is used in shipping titles like 'Battlefield 1' and 'Mass Effect Andromeda'. Despite being conceptually simple, checkerboard rendering requires a deep integration into the post-processing chain, in particular temporal anti-aliasing, dynamic resolution scaling, and poses various challenges to existing effects. This presentation will cover the basics of checkerboard rendering, explain the impact on a game engine that powers a wide range of titles, and provide a detailed look at how the current implementation in Frostbite works, including topics like object id, alpha unrolling, gradient adjust, and a highly efficient depth resolve.
This talk is about our experiences gained during making of the Killzone Shadow Fall announcement demo.
We’ve gathered all the hard data about our assets, memory, CPU and GPU usage and a whole bunch of tricks.
The goal of talk is to help you to form a clear picture of what’s already possible to achieve on PS4.
A description of the next-gen rendering technique called Triangle Visibility Buffer. It offers up to 10x - 20x geometry compared to Deferred rendering and much higher resolution. Generally it aligns better with memory access patterns in modern GPUs compared to Deferred Lighting like Clustered Deferred Lighting etc.
This session presents a detailed programmer oriented overview of our SPU based shading system implemented in DICE's Frostbite 2 engine and how it enables more visually rich environments in BATTLEFIELD 3 and better performance over traditional GPU-only based renderers. We explain in detail how our SPU Tile-based deferred shading system is implemented, and how it supports rich material variety, High Dynamic Range Lighting, and large amounts of light sources of different types through an extensive set of culling, occlusion and optimization techniques.
Talk by Yuriy O’Donnell at GDC 2017.
This talk describes how Frostbite handles rendering architecture challenges that come with having to support a wide variety of games on a single engine. Yuriy describes their new rendering abstraction design, which is based on a graph of all render passes and resources. This approach allows implementation of rendering features in a decoupled and modular way, while still maintaining efficiency.
A graph of all rendering operations for the entire frame is a useful abstraction. The industry can move away from “immediate mode” DX11 style APIs to a higher level system that allows simpler code and efficient GPU utilization. Attendees will learn how it worked out for Frostbite.
A presentation I did for China GDC 2011.
I cover the basic of visibility optimization as well as present some practical examples of visibility systems used in modern video games.
Explore big data at speed of thought with Spark 2.0 and SnappydataData Con LA
Abstract:
Data exploration often requires running aggregation/slice-dice queries on data sourced from disparate sources. You may want to identify distribution patterns, outliers, etc and aid the feature selection process as you train your predictive models. As you begin to understand your data, you want to ask ad-hoc questions expressed through your visualization tool (which typically translates to SQL queries), study the results and iteratively explore the data set through more queries. Unfortunately, even when data sets can be in-memory, large data set computations take time breaking the train of thought and increasing time to insight . We know Spark can be fast through its in-memory parallel processing. But, Spark 1.x isn’t quite there. Spark 2.0 promises to offer 10X better speed than its predecessor. Spark 2.0 ushers some impressive improvements to interactive query performance. We first explore these advances - compiling the query plan eliminating virtual function calls, and other improvements in the Catalyst engine. We compare the performance to other popular popular query processing engines by studying the spark query plans. We then go through SnappyData (an open source project that integrates Spark with a database that offers OLTP, OLAP and stream processing in a single cluster) where we use smarter data colocation and Synopses data (.e.g. Stratified sampling) to dramatically cut down on the memory requirements as well as the query latency. We explain the key concepts in summarizing data using structures like stratified sampling by walking through some examples in Apache Zeppelin notebooks (a open source visualization tool for spark) and demonstrate how we can explore massive data sets with just your laptop resources while achieving remarkable speeds.
Bio:
Jags is a founder and the CTO of SnappyData. Previously, Jags was the Chief Architect for “fast data” products at Pivotal and served in the extended leadership team of the company. At Pivotal and previously at VMWare, he led the technology direction for GemFire and other distributed in-memory Bio:
Jags Ramnarayan is a founder and the CTO of SnappyData. Previously, Jags was the Chief Architect for “fast data” products at Pivotal and served in the extended leadership team of the company. At Pivotal and previously at VMWare, he led the technology direction for GemFire and other distributed in-memory products.
Deep learning to the rescue - solving long standing problems of recommender ...Balázs Hidasi
I gave this talk at the 1st Budapest RecSys and Personalization Meetup about using deep learning to solve long standing problems of recommender systems. I also presented our approach on using RNNs for session-based recommendations in details.
The Art Of Performance Tuning - with presenter notes!Jonathan Ross
A somewhat more verbose version of https://www.slideshare.net/JonathanRoss74/the-art-of-performance-tuning.
Presented at JavaOne 2017 [CON4027], this presentation takes a practical, hands-on look at Java performance tuning. It discusses methodology (spoiler: it’s the scientific method) and how to apply it to Java SE systems (on any budget). Exploring concrete examples with tools such as the Oracle Java Mission Control feature of Oracle Java SE Advanced, VisualVM, YourKit, and JMH, the presentation focuses on ways of measuring performance, how to interpret data, ways of eliminating bottlenecks, and even how to avoid future performance regressions.
Do you need to scale your application, share data across cluster, perform massive parallel processing on many JVMs or maybe consider alternative to your favorite NoSQL technology? Hazelcast to the rescue! With Hazelcast distributed development is much easier. This presentation will be useful to those who would like to get acquainted with Hazelcast top features and see some of them in action, e.g. how to cluster application, cache data in it, partition in-memory data, distribute workload onto many servers, take advantage of parallel processing, etc.
Presented on JavaDay Kyiv 2014 conference.
Presented at JavaOne 2017 [CON4027], this presentation takes a practical, hands-on look at Java performance tuning. It discusses methodology (spoiler: it’s the scientific method) and how to apply it to Java SE systems (on any budget). Exploring concrete examples with tools such as the Oracle Java Mission Control feature of Oracle Java SE Advanced, VisualVM, YourKit, and JMH, the presentation focuses on ways of measuring performance, how to interpret data, ways of eliminating bottlenecks, and even how to avoid future performance regressions.
A separate version will be uploaded with speaker notes.
Structured Forests for Fast Edge Detection [Paper Presentation]Mohammad Shaker
A Paper Presentation for "Structured Forests for Fast Edge Detection" by Dollár, Piotr, and C. Lawrence Zitnick at Computer Vision (ICCV), 2013 IEEE International Conference on. IEEE, 2013.
Infrastructure as Code to Maintain your SanityDewey Sasser
Infrastructure as Code is all the rage, but suffers the same problems as any other code: it can easily become an unmanageable plate of spaghetti. Organizing your IaC is critical but the methods are different than traditional program code. We present an organizational pattern for IaC that has proven itself across multiple technologies in multiple cloud systems to allow isolation of concerns, stability, and controlled rollouts and maintain your sanity while doing so.
Dock ir incident response in a containerized, immutable, continually deploy...Shakacon
Incident response is generally predicated on the ability to examine a system post-breach, pull memory dumps, file system artifacts, system logs, etc. But what happens when that system was part of a fleet of containers? How do you pull a memory dump from an ephemeral container? How do you do forensics when the container and the host that ran the container have been gone for days? Even assuming you catch an intrusion while it's ongoing, how do you respond effectively if you can't access the systems in question because they are read-only, no SSH access? Coinbase has spent the last year attacking these challenges in a AWS-based, immutable and fully containerized infrastructure that stores over a billion dollars of digital currency. Come see how we do it.
Horizon Zero Dawn: An Open World QA Case StudyGuerrilla
Download the full presentation here: http://www.guerrilla-games.com/
Abstract: A retrospective of how Developer (Guerrilla) and Publisher QA (SIE) worked together in partnership to help deliver a AAA experience. The presentation will focus on the victories and the challenges we faced as part of testing such an ambitious open-world title, and leveraging automated test solutions and telemetry to inform exploratory test strategy. The presentation will talk about how we managed teams over a 21 month testing lifecycle, with a team ranging from small internal test teams, before scaling up to a team of 70+ people across the globe with tens of thousands of test hours invested. The presentation will cover the successes and challenges relating to our people; early engagement, communication, trust, agility and collaboration. Our processes; risk management, test strategy, and post launch support, and our tools; Telemetry, Risk Registers, Worldwide build delivery.
Horizon Zero Dawn: A Game Design Post-MortemGuerrilla
Download the full presentation here: http://www.guerrilla-games.com/read/horizon-zero-dawn-a-game-design-postmortem
Abstract: Going through early prototypes and delving into design decisions and processes that shaped development of the game, this talk gives insight into the journey game design went through while moving from an ambitious paper concept to a finished open world action RPG, with all of the small and large design decisions and choices that have to be made along the way.
Putting the AI Back Into Air: Navigating the Air Space of Horizon Zero DawnGuerrilla
Download the full presentation here: http://www.guerrilla-games.com/read/putting-the-ai-back-into-air
Abstract: In this talk, we explain the technology behind the aerial navigation in Horizon Zero Dawn. In Horizon, we've represented the flyable air space by use of a run-time generated height map. Queries can be done on this height map for positional information and navigation. We present a hierarchical path planning algorithm for finding a progressively more detailed path between two points. Additionally, we will touch on some gameplay related subjects, to show the additional challenges we faced in implementing the different flying behaviors, such as transitioning from air to ground and guided crash-landing.
Decima Engine: Visibility in Horizon Zero DawnGuerrilla
Download the full presentation here: http://www.guerrilla-games.com/read/decima-engine-visibility-in-horizon-zero-dawn
Abstract: Horizon Zero Dawn presented the Decima engine with new challenges in rendering large and dense environments. In particular, we needed to be able to quickly query a very large set of potential objects to find which should be visible. This talk looks at the problems we faced moving from more constrained Killzone levels to Horizon's open world, and our approach to fast visibility queries using the PS4's asynchronous compute hardware. It also covers our recent work on efficiently collecting batches of object instances during the query to reduce load on the entire rendering pipeline. A basic familiarity with GPU compute will be helpful to get the most out of this talk.
Building Non-Linear Narratives in Horizon Zero DawnGuerrilla
Download the original PowerPoint presentation here: http://www.guerrilla-games.com/read/building-non-linear-narratives-in-horizon-zero-dawn
Open world RPGs require deep stories, which emphasize player choice and freedom. The bigger the games grow, the more complex systems managing these stories get. See how Guerrilla tackled the issue in Horizon Zero Dawn by creating a quest system which has non-linearity at its base.
Player Traversal Mechanics in the Vast World of Horizon Zero DawnGuerrilla
Download the original PowerPoint presentation here: http://www.guerrilla-games.com/read/player-traversal-mechanics-in-the-vast-world-of-horizon-zero-dawn
Paul van Grinsven shows what is needed to make Aloy traverse the vast world of Horizon Zero Dawn, with its complex and organic environments. Various traversal mechanics are covered from a gameplay programmer's perspective, focusing on the interaction between code and animations. The different systems and techniques involved in the implementation of these mechanics are explained, and Van Grinsven looks at the underlying reasoning and design decisions.
The Real-time Volumetric Cloudscapes of Horizon Zero DawnGuerrilla
Download the full presentation (including movies) from http://www.guerrilla-games.com/publications.html#schneider1508.
Abstract: Real-time volumetric clouds in games usually pay for fast performance with a reduction in quality. The most successful approaches are limited to low altitude fluffy and translucent stratus-type clouds. For Horizon: Zero Dawn, Guerrilla need a solution that can fill a sky with evolving and realistic results that closely match highly detailed reference images which represent high altitude cirrus clouds and all of the major low level cloud types, including thick billowy cumulus clouds. These clouds need to light correctly according to the time of day and other cloud-specific lighting effects. Additionally, we are targeting GPU performance of 2ms. Our solution is a volumetric cloud shader which handles the aspects of modeling, animation and lighting logically without sacrificing quality or draw time. Special emphasis will be placed on our solutions for direct-ability of cloud shapes and formations as well as on our lighting model and optimizations.
The Production and Visual FX of Killzone Shadow FallGuerrilla
With the arrival of next generation consoles comes more processing power and memory... and with that, a whole lot more possibilities. Take an exclusive look behind the scenes of this Playstation 4 launch title and hear about the challenges the team were faced with during production. Learn more about the engine's new lighting and shading tech and take a closer look at how some of the effects like dynamic dust, rain and various particle effects are achieved.
Out of Sight, Out of Mind: Improving Visualization of AI InfoGuerrilla
When AI was simple, debugging consisted of confirming that the character was simply doing the one thing you expected. Over time, debugging moved away from "what" and became more about "why?" or "why not?" The collision of information about the agents, the environment, the player and the game state creates an enormous amount of data that can affect the decisions that the characters make. In this presentation some features of ReView will be demonstrated as how it was used for debugging the multi-player bots in Killzone Shadow Fall.
The Next-Gen Dynamic Sound System of Killzone Shadow FallGuerrilla
We'll describe our new audio run-time and toolset that was built specifically for Killzone Shadow Fall on PlayStation 4. However, the ideas used are widely applicable and the focus is on integration with the game engine and fast iteration, with special attention to shortcuts to get your creative spark translated into in-game sounds as quickly as possible. We will demonstrate our implementation of these demands, which is a next-gen sound system that was designed to combine artistic freedom with high run-time performance. It should be interesting to both creative as well as technical minds who are looking for inspiration on what to expect from a modern sound design environment. To emphasize the performance advantage, we will show the point of view of both the sound designer and the programmer simultaneously. We will use examples starting with simple sounds and build up to increasingly more complex dynamic ones to illustrate the benefits of this unique approach.
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesGuerrilla
This talk describes the tool improvements Guerrilla Games implemented to make Killzone Shadow Fall shine on the PlayStation 4. It highlights additions to the Maya pipeline, such as Viewport 2.0, Maya's coupling with in-game updates and in-engine deferred renderer features including real-time shadow-casting, volumetric lighting, hardware instancing, lens flares and color grading.
Taking Killzone Shadow Fall Image Quality Into The Next GenerationGuerrilla
This talk focuses on the technical side of Killzone Shadow Fall, the platform exclusive launch title for PlayStation 4.
We present the details of several new techniques that were developed in the quest for next generation image quality, and the talk uses key locations from the game as examples. We discuss interesting aspects of the new content pipeline, next-gen lighting engine, usage of indirect lighting and various shadow rendering optimizations. We also describe the details of volumetric lighting, the real-time reflections system, and the new anti-aliasing solution, and include some details about the image-quality driven streaming system. A common, very important, theme of the talk is the temporal coherency and how it was utilized to reduce aliasing, and improve the rendering quality and image stability above the baseline 1080p resolution seen in other games.
The presentation describes Physically Based Lighting Pipeline of Killzone : Shadow Fall - Playstation 4 launch title. The talk covers studio transition to a new asset creation pipeline, based on physical properties. Moreover it describes light rendering systems used in new 3D engine built from grounds up for upcoming Playstation 4 hardware. A novel real time lighting model, simulating physically accurate Area Lights, will be introduced, as well as hybrid - ray-traced / image based reflection system.
We believe that physically based rendering is a viable way to optimize asset creation pipeline efficiency and quality. It also enables the rendering quality to reach a new level that is highly flexible depending on art direction requirements.
A Hierarchically-Layered Multiplayer Bot System for a First-Person ShooterGuerrilla
This thesis research was the basis for Killzone 2’s multi-player bots. It proposes a hierarchically structured system to control the multiplayer bots, using one AI commander for each faction, each commanding several group leaders, each commanding several individual bots. The system is evaluated on the basis of a fully implemented AI for one of the multiplayer game modes.
Games always have too much stuff to render, but are often set in occluded environments, where much of what is in the view frustum is not visible to the camera. Occlusion culling tries to avoid rendering objects which the player can't see.
Discussion of occlusion for games has tended to focus on the use of GPU pixel counters to determine whether or not an object is visible. This places additional stress on a limited resource, and has latency which has to be worked around, requiring a more complex pipeline.
For KILLZONE 3 we took a different approach - we use the SPUs to render a conservative depth buffer and perform queries against it. This allows us to cull objects very early in the frame, avoiding any pipeline costs for invisible objects.
This presentation talks about the ideas (and dead ends) we explored along the way, as well as explaining in detail what we ended up with.
This presentation the describes architecture behind the multiplayer bot AI for Killzone 2. As part of this, it describes the hierarchical task network (HTN) planner, terrain analysis, and the way commander squad and individual bot AI work together for dynamic tactical gameplay.
Automatic Annotations in Killzone 3 and BeyondGuerrilla
Voxel-based technologies have been successfully used to extract navigation data for NPCs. This talk shows how voxel data was used to automatically extract cover planes and more information in Killzone 3’s toolset.
This talk details various aspects of designing and developing videogames at Guerrilla. It highlights methods that are very similar to methods used in the CGI industry, and it illuminates some of the most important differences. And it covers the complete breadth of videogame development from artistic design to production pipelines and tool and engine development.
The PlayStation®3’s SPUs in the Real World: A KILLZONE 2 Case StudyGuerrilla
This session describes many of the SPU techniques used in the engine used to develop KILLZONE 2 for the PlayStation 3. It first focuses on individual techniques for SPU's as well as covering how these techniques work together in the game engine each frame.
Meet Dinah Mattingly – Larry Bird’s Partner in Life and Loveget joys
Get an intimate look at Dinah Mattingly’s life alongside NBA icon Larry Bird. From their humble beginnings to their life today, discover the love and partnership that have defined their relationship.
Hollywood Actress - The 250 hottest galleryZsolt Nemeth
Hollywood Actress amazon album eminent worldwide media, female-singer, actresses, alhletina-woman, 250 collection.
Highest and photoreal-print exclusive testament PC collage.
Focused television virtuality crime, novel.
The sheer afterlife of the work is activism-like hollywood-actresses point com.
173 Illustrate, 250 gallery, 154 blog, 120 TV serie logo, 17 TV president logo, 183 active hyperlink.
HD AI face enhancement 384 page plus Bowker ISBN, Congress LLCL or US Copyright.
From the Editor's Desk: 115th Father's day Celebration - When we see Father's day in Hindu context, Nanda Baba is the most vivid figure which comes to the mind. Nanda Baba who was the foster father of Lord Krishna is known to provide love, care and affection to Lord Krishna and Balarama along with his wife Yashoda; Letter’s to the Editor: Mother's Day - Mother is a precious life for their children. Mother is life breath for her children. Mother's lap is the world happiness whose debt can never be paid.
Scandal! Teasers June 2024 on etv Forum.co.zaIsaac More
Monday, 3 June 2024
Episode 47
A friend is compelled to expose a manipulative scheme to prevent another from making a grave mistake. In a frantic bid to save Jojo, Phakamile agrees to a meeting that unbeknownst to her, will seal her fate.
Tuesday, 4 June 2024
Episode 48
A mother, with her son's best interests at heart, finds him unready to heed her advice. Motshabi finds herself in an unmanageable situation, sinking fast like in quicksand.
Wednesday, 5 June 2024
Episode 49
A woman fabricates a diabolical lie to cover up an indiscretion. Overwhelmed by guilt, she makes a spontaneous confession that could be devastating to another heart.
Thursday, 6 June 2024
Episode 50
Linda unwittingly discloses damning information. Nhlamulo and Vuvu try to guide their friend towards the right decision.
Friday, 7 June 2024
Episode 51
Jojo's life continues to spiral out of control. Dintle weaves a web of lies to conceal that she is not as successful as everyone believes.
Monday, 10 June 2024
Episode 52
A heated confrontation between lovers leads to a devastating admission of guilt. Dintle's desperation takes a new turn, leaving her with dwindling options.
Tuesday, 11 June 2024
Episode 53
Unable to resort to violence, Taps issues a verbal threat, leaving Mdala unsettled. A sister must explain her life choices to regain her brother's trust.
Wednesday, 12 June 2024
Episode 54
Winnie makes a very troubling discovery. Taps follows through on his threat, leaving a woman reeling. Layla, oblivious to the truth, offers an incentive.
Thursday, 13 June 2024
Episode 55
A nosy relative arrives just in time to thwart a man's fatal decision. Dintle manipulates Khanyi to tug at Mo's heartstrings and get what she wants.
Friday, 14 June 2024
Episode 56
Tlhogi is shocked by Mdala's reaction following the revelation of their indiscretion. Jojo is in disbelief when the punishment for his crime is revealed.
Monday, 17 June 2024
Episode 57
A woman reprimands another to stay in her lane, leading to a damning revelation. A man decides to leave his broken life behind.
Tuesday, 18 June 2024
Episode 58
Nhlamulo learns that due to his actions, his worst fears have come true. Caiphus' extravagant promises to suppliers get him into trouble with Ndu.
Wednesday, 19 June 2024
Episode 59
A woman manages to kill two birds with one stone. Business doom looms over Chillax. A sobering incident makes a woman realize how far she's fallen.
Thursday, 20 June 2024
Episode 60
Taps' offer to help Nhlamulo comes with hidden motives. Caiphus' new ideas for Chillax have MaHilda excited. A blast from the past recognizes Dintle, not for her newfound fame.
Friday, 21 June 2024
Episode 61
Taps is hungry for revenge and finds a rope to hang Mdala with. Chillax's new job opportunity elicits mixed reactions from the public. Roommates' initial meeting starts off on the wrong foot.
Monday, 24 June 2024
Episode 62
Taps seizes new information and recruits someone on the inside. Mary's new job
_7 OTT App Builders to Support the Development of Your Video Applications_.pdfMega P
Due to their ability to produce engaging content more quickly, over-the-top (OTT) app builders have made the process of creating video applications more accessible. The invitation to explore these platforms emphasizes how over-the-top (OTT) applications hold the potential to transform digital entertainment.
Experience the thrill of Progressive Puzzle Adventures, like Scavenger Hunt Games and Escape Room Activities combined Solve Treasure Hunt Puzzles online.
At Digidev, we are working to be the leader in interactive streaming platforms of choice by smart device users worldwide.
Our goal is to become the ultimate distribution service of entertainment content. The Digidev application will offer the next generation television highway for users to discover and engage in a variety of content. While also providing a fresh and
innovative approach towards advertainment with vast revenue opportunities. Designed and developed by Joe Q. Bretz
240529_Teleprotection Global Market Report 2024.pdfMadhura TBRC
The teleprotection market size has grown
exponentially in recent years. It will grow from
$21.92 billion in 2023 to $28.11 billion in 2024 at a
compound annual growth rate (CAGR) of 28.2%. The
teleprotection market size is expected to see
exponential growth in the next few years. It will grow
to $70.77 billion in 2028 at a compound annual
growth rate (CAGR) of 26.0%.
Young Tom Selleck: A Journey Through His Early Years and Rise to Stardomgreendigital
Introduction
When one thinks of Hollywood legends, Tom Selleck is a name that comes to mind. Known for his charming smile, rugged good looks. and the iconic mustache that has become synonymous with his persona. Tom Selleck has had a prolific career spanning decades. But, the journey of young Tom Selleck, from his early years to becoming a household name. is a story filled with determination, talent, and a touch of luck. This article delves into young Tom Selleck's life, background, early struggles. and pivotal moments that led to his rise in Hollywood.
Follow us on: Pinterest
Early Life and Background
Family Roots and Childhood
Thomas William Selleck was born in Detroit, Michigan, on January 29, 1945. He was the second of four children in a close-knit family. His father, Robert Dean Selleck, was a real estate investor and executive. while his mother, Martha Selleck, was a homemaker. The Selleck family relocated to Sherman Oaks, California. when Tom was a child, setting the stage for his future in the entertainment industry.
Education and Early Interests
Growing up, young Tom Selleck was an active and athletic child. He attended Grant High School in Van Nuys, California. where he excelled in sports, particularly basketball. His tall and athletic build made him a standout player, and he earned a basketball scholarship to the University of Southern California (U.S.C.). While at U.S.C., Selleck studied business administration. but his interests shifted toward acting.
Discovery of Acting Passion
Tom Selleck's journey into acting was serendipitous. During his time at U.S.C., a drama coach encouraged him to try acting. This nudge led him to join the Hills Playhouse, where he began honing his craft. Transitioning from an aspiring athlete to an actor took time. but young Tom Selleck became drawn to the performance world.
Early Career Struggles
Breaking Into the Industry
The path to stardom was a challenging one for young Tom Selleck. Like many aspiring actors, he faced many rejections and struggled to find steady work. A series of minor roles and guest appearances on television shows marked his early career. In 1965, he debuted on the syndicated show "The Dating Game." which gave him some exposure but did not lead to immediate success.
The Commercial Breakthrough
During the late 1960s and early 1970s, Selleck began appearing in television commercials. His rugged good looks and charismatic presence made him a popular brand choice. He starred in advertisements for Pepsi-Cola, Revlon, and Close-Up toothpaste. These commercials provided financial stability and helped him gain visibility in the industry.
Struggling Actor in Hollywood
Despite his success in commercials. breaking into large acting roles remained a challenge for young Tom Selleck. He auditioned and took on small parts in T.V. shows and movies. Some of his early television appearances included roles in popular series like Lancer, The F.B.I., and Bracken's World. But, it would take a
Matt Rife Cancels Shows Due to Health Concerns, Reschedules Tour Dates.pdfAzura Everhart
Matt Rife's comedy tour took an unexpected turn. He had to cancel his Bloomington show due to a last-minute medical emergency. Fans in Chicago will also have to wait a bit longer for their laughs, as his shows there are postponed. Rife apologized and assured fans he'd be back on stage soon.
https://www.theurbancrews.com/celeb/matt-rife-cancels-bloomington-show/
Skeem Saam in June 2024 available on ForumIsaac More
Monday, June 3, 2024 - Episode 241: Sergeant Rathebe nabs a top scammer in Turfloop. Meikie is furious at her uncle's reaction to the truth about Ntswaki.
Tuesday, June 4, 2024 - Episode 242: Babeile uncovers the truth behind Rathebe’s latest actions. Leeto's announcement shocks his employees, and Ntswaki’s ordeal haunts her family.
Wednesday, June 5, 2024 - Episode 243: Rathebe blocks Babeile from investigating further. Melita warns Eunice to stay clear of Mr. Kgomo.
Thursday, June 6, 2024 - Episode 244: Tbose surrenders to the police while an intruder meddles in his affairs. Rathebe's secret mission faces a setback.
Friday, June 7, 2024 - Episode 245: Rathebe’s antics reach Kganyago. Tbose dodges a bullet, but a nightmare looms. Mr. Kgomo accuses Melita of witchcraft.
Monday, June 10, 2024 - Episode 246: Ntswaki struggles on her first day back at school. Babeile is stunned by Rathebe’s romance with Bullet Mabuza.
Tuesday, June 11, 2024 - Episode 247: An unexpected turn halts Rathebe’s investigation. The press discovers Mr. Kgomo’s affair with a young employee.
Wednesday, June 12, 2024 - Episode 248: Rathebe chases a criminal, resorting to gunfire. Turf High is rife with tension and transfer threats.
Thursday, June 13, 2024 - Episode 249: Rathebe traps Kganyago. John warns Toby to stop harassing Ntswaki.
Friday, June 14, 2024 - Episode 250: Babeile is cleared to investigate Rathebe. Melita gains Mr. Kgomo’s trust, and Jacobeth devises a financial solution.
Monday, June 17, 2024 - Episode 251: Rathebe feels the pressure as Babeile closes in. Mr. Kgomo and Eunice clash. Jacobeth risks her safety in pursuit of Kganyago.
Tuesday, June 18, 2024 - Episode 252: Bullet Mabuza retaliates against Jacobeth. Pitsi inadvertently reveals his parents’ plans. Nkosi is shocked by Khwezi’s decision on LJ’s future.
Wednesday, June 19, 2024 - Episode 253: Jacobeth is ensnared in deceit. Evelyn is stressed over Toby’s case, and Letetswe reveals shocking academic results.
Thursday, June 20, 2024 - Episode 254: Elizabeth learns Jacobeth is in Mpumalanga. Kganyago's past is exposed, and Lehasa discovers his son is in KZN.
Friday, June 21, 2024 - Episode 255: Elizabeth confirms Jacobeth’s dubious activities in Mpumalanga. Rathebe lies about her relationship with Bullet, and Jacobeth faces theft accusations.
Monday, June 24, 2024 - Episode 256: Rathebe spies on Kganyago. Lehasa plans to retrieve his son from KZN, fearing what awaits.
Tuesday, June 25, 2024 - Episode 257: MaNtuli fears for Kwaito’s safety in Mpumalanga. Mr. Kgomo and Melita reconcile.
Wednesday, June 26, 2024 - Episode 258: Kganyago makes a bold escape. Elizabeth receives a shocking message from Kwaito. Mrs. Khoza defends her husband against scam accusations.
Thursday, June 27, 2024 - Episode 259: Babeile's skillful arrest changes the game. Tbose and Kwaito face a hostage crisis.
Friday, June 28, 2024 - Episode 260: Two women face the reality of being scammed. Turf is rocked by breaking
Tom Selleck Net Worth: A Comprehensive Analysisgreendigital
Over several decades, Tom Selleck, a name synonymous with charisma. From his iconic role as Thomas Magnum in the television series "Magnum, P.I." to his enduring presence in "Blue Bloods," Selleck has captivated audiences with his versatility and charm. As a result, "Tom Selleck net worth" has become a topic of great interest among fans. and financial enthusiasts alike. This article delves deep into Tom Selleck's wealth, exploring his career, assets, endorsements. and business ventures that contribute to his impressive economic standing.
Follow us on: Pinterest
Early Life and Career Beginnings
The Foundation of Tom Selleck's Wealth
Born on January 29, 1945, in Detroit, Michigan, Tom Selleck grew up in Sherman Oaks, California. His journey towards building a large net worth began with humble origins. , Selleck pursued a business administration degree at the University of Southern California (USC) on a basketball scholarship. But, his interest shifted towards acting. leading him to study at the Hills Playhouse under Milton Katselas.
Minor roles in television and films marked Selleck's early career. He appeared in commercials and took on small parts in T.V. series such as "The Dating Game" and "Lancer." These initial steps, although modest. laid the groundwork for his future success and the growth of Tom Selleck net worth. Breakthrough with "Magnum, P.I."
The Role that Defined Tom Selleck's Career
Tom Selleck's breakthrough came with the role of Thomas Magnum in the CBS television series "Magnum, P.I." (1980-1988). This role made him a household name and boosted his net worth. The series' popularity resulted in Selleck earning large salaries. leading to financial stability and increased recognition in Hollywood.
"Magnum P.I." garnered high ratings and critical acclaim during its run. Selleck's portrayal of the charming and resourceful private investigator resonated with audiences. making him one of the most beloved television actors of the 1980s. The success of "Magnum P.I." played a pivotal role in shaping Tom Selleck net worth, establishing him as a major star.
Film Career and Diversification
Expanding Tom Selleck's Financial Portfolio
While "Magnum, P.I." was a cornerstone of Selleck's career, he did not limit himself to television. He ventured into films, further enhancing Tom Selleck net worth. His filmography includes notable movies such as "Three Men and a Baby" (1987). which became the highest-grossing film of the year, and its sequel, "Three Men and a Little Lady" (1990). These box office successes contributed to his wealth.
Selleck's versatility allowed him to transition between genres. from comedies like "Mr. Baseball" (1992) to westerns such as "Quigley Down Under" (1990). This diversification showcased his acting range. and provided many income streams, reinforcing Tom Selleck net worth.
Television Resurgence with "Blue Bloods"
Sustaining Wealth through Consistent Success
In 2010, Tom Selleck began starring as Frank Reagan i
3. Talk takeaway
Occlusion culling system used in Killzone 3
The reasons why to use software rasterization
(Some) technical details
How to pick good occluders
Q&A
4. Talk takeaway
Occlusion culling system used in Killzone 3
You’ll love software rasterization
(Some) technical details
How to pick good occluders
Q&A
5. Talk takeaway
Occlusion culling system used in Killzone 3
You’ll love software rasterization
(Some) technical details
How to pick good occluders
Q&A
Huge environments
6. Talk takeaway
Occlusion culling system used in Killzone 3
You’ll love software rasterization
(Some) technical details
How to pick good occluders
Q&A
Armed JetPacks
7. Talk takeaway
Occlusion culling system used in Killzone 3
You’ll love software rasterization
(Some) technical details
How to pick good occluders
Q&A
Giant Spider Robots
8. Killzone 3 visibility solution
Software rasterization running on SPUs
Render occluders into depth buffer
–Use simplified version of the scene geometry
Conservatively scale down
–To make it fit into SPU memory
–To make it faster to test against
Test all objects against small depth buffer
–Test bounding boxes
10. Why software rasterization
Previous solution did not scale well
–Manually placed portals
Works automatically
–Can be enabled early in production
11. Why software rasterization
Previous solution did not scale well
–Manually placed portals
Works automatically
–Can be enabled early in production
Completely dynamic solution
–Any object can become an occluder
12. Why software rasterization
Previous solution did not scale well
–Manually placed portals
Works automatically
–Can be enabled early in production
Completely dynamic solution
–Any object can become an occluder
Maps well to SPUs
–No sync issues
–No GPU costs related to visibility testing
18. Occluder setup
First stage, not parallel
Outputs clipped + projected triangles
–One list of triangle data
–One “index” DMA list per rasterizer job
Caches are important at this stage
–2KB vertex array cache (90% hit rate)
–32-entry post-transform cache (60% hit rate)
–Various double-buffered output caches
19. Rasterization
Split 640x360p depth buffer into 16 pixel-high strips
–Rasterize in parallel, one SPU job per strip
–Load triangles using the prepared DMA list
Traditional scanline rasterizer
–Fill internal 640x16 floating point depth buffer
Vectorization is the key
–Set up three or four edges at once
–Generate 4x1 pixels at once
–Optimize in assembly
20. Rasterization
Compress depth buffer
–One output pixel is maximum depth of 16x16 block.
–But patch single pixel holes first.
–Encode as uint16, reserve 0xffffu for infinity
Output single scanline of 40x23 occlusion buffer
21. Occlusion tests
Tests happen in parallel
Each object consists of one or more parts
First test object bounding box
–Skip for objects visible last frame
Then test individual parts
Continue with submesh culling
–Small Spatial Kd-Tree inside most meshes
–Allows for culling arbitrarily small mesh chunks
22. Occlusion tests
Accurate tests
–Bounding box rasterization and depth test
–Working on small depth buffer, be conservative
Fast bounding sphere tests
–Precomputed hierarchical reject data
–Constant time test for small spheres
–Only used for fast reject
24. Where to get occluders
Aiming for automated solution
Originally wanted to use scene geometry
–Reduced polygon count
–Too many errors, in general does not work
Now using physics mesh
–Closed, low polygon meshes
–Not always conservative in the right sense
–Visual mesh can be inside physics mesh causing drops
26. How to select good occluders
Simple heuristics to identify good occluders
–Discard anything which is small
–Discard by meta data
–clutter, set dressing, foliage, railings…
–Discard if surface area is significantly smaller than
bounding box surface area
Artists can override the process
–Still creating the best occluders by hand
29. Conclusion
Software rasterization is great
–Fast on SPUs
–Easy to integrate
–Very accurate (if occluders are accurate)
Creating occluders is hard
–Automatic system was not enough
–Plan for this in content creation
–Define workflow for finding and fixing leaks
Voxelization anyone?
31. Statistics
100 occluders, 1500 triangles
Test 1000 objects, 2700 parts
Timings
–Setup job: 0.5ms
–Rasterize job: 2.0ms (on 5 SPUs)
–Query job: 4.5ms (on 5 SPUs)
–Overall latency: ~2ms
Editor's Notes
\n
\n
I’ll first describe the occlusion system in Killzone 3\n and the reasons why we chose it and why should you\n\nThen I’ll talk about some technical details\n and heuristics for picking good occluders.\n\nAnd I hope we’ll have some time for questions.\n\n... but let’s first take look at what Killzone 3 actually is.\n
Killzone 3 is a first person shooter released \n earlier this year exclusively for Playstation 3.\n\nAnd it's essentially about space marines trying to escape \n from the planet full of space Nazis.\n
The game is set in huge detailed outdoor environments…\n Where you can fly around with an armed jetpack...\n And you get to fight giant spider robot.\n Twice.\n\nKillzone 3 is a big game\n and we needed good object visibility solution \n that works well with these diverse settings.\n\n
The game is set in huge detailed outdoor environments…\n Where you can fly around with an armed jetpack...\n And you get to fight giant spider robot.\n Twice.\n\nKillzone 3 is a big game\n and we needed good object visibility solution \n that works well with these diverse settings.\n\n
The game is set in huge detailed outdoor environments…\n Where you can fly around with an armed jetpack...\n And you get to fight giant spider robot.\n Twice.\n\nKillzone 3 is a big game\n and we needed good object visibility solution \n that works well with these diverse settings.\n\n
\n
We chose to try software rasterization running completely on SPUs. \n \nWe render the simplified version of the level geometry \n into a depth buffer (these are the occluders)\n\nAnd we then use scaled down version of this depth buffer \n to test visibility of all objects or lights in the current view frustum.\n The test itself uses bounding box of the objects.\n
I'll try to summarize the reasons why we chose this solution \n and I'm sure you recognize some of your own experiences here.\n\nFirst and foremost we saw that our solution based on portals \n does not scale well with the big outdoor levels.\n\nEspecially since our portals were hand placed by artists and we were \n running into production stalls.\n\n Very important issue if you try to create the game in two years.\n
The process of occluder creation can be made largely \n automatic and can be enabled from the early days of production.\n\nThe whole concept of occluders is very similar to building \n of regular geometry and it's easy to understand by artists. \n\nThis makes it very easy to step in and manually create occluders where needed.\n\n
Unlike most other approaches, this one is completely dynamic.\n\nAny sufficiently large object on screen can serve as a good occluder. \n If you're hiding behind a destructible barrel or a metal plate in our \n game, it is an occluder.\n\nDoors can open and close and they perfectly block the visibility \n without you having to write special code for such case.\n\n
Software rasterization maps well onto SPUs - it's easy to distribute \n and SPUs are generic enough to allow us to run complicated object culling logic.\n\nAnd unlike GPU based solutions, you get exact results \n within the same frame without complicated synchronization logic.\n
Let’s look at the example of how the occlusion system works.\n\n
If we look from the side, you see we don’t \n render anything behind the closed door.\n\nBut as soon as the door open...\n
...we start to render the rest of the visible scene. \n As I mentioned earlier, this \n happens entirely automatically.\n\nAnd since I forgot to record the occlusion \n depth buffer, you’ll have to trust on this one.\n
We implemented the system as series of SPU jobs.\n Most run in parallel to do the heavy lifting.\n\n
The first SPU job loads visible occluder primitives and \n outputs clipped and projected triangles for rasterization. \n\nA single list of triangles is shared between the rasterizer jobs, and each job\n has its own DMA list pointing to the subset of triangles it needs to draw.\n\nThe occluder primitives are identical to visual meshes, with vertex and index arrays.\n Therefore we introduced several caches to \n reduce bandwidth and vertex transformation costs. \n This setup is very similar to what you find in a GPU.\n
We split our depth buffer into 16-pixel-high strips and\n run one rasterize job per strip in parallel.\n\nEach rasterize job loads the list of triangles that intersect with its\n strip using the DMA list prepared by the setup job.\n\nWe perform standard scanline rasterization \n into an internal floating point buffer.\n \nThe rasterize jobs are compute-bound, and the code is \n extensively vectorized to improve throughput.\n Inner loops are written in SPA assembler.\n\n
For output, we conservatively compress the depth buffer.\n Each output pixel is the maximum depth value of a 16x16 pixel tile in the depth buffer.\n\nBefore compression, we patch single pixel holes to avoid leaks \n when the occluders are not water-tight.\n This is a bit of a cheat, but it’s necessary otherwise\n such hole pushes the tile way into the background.\n\nThe last step encodes depth into 16 bits, \n Occluder frustum is shorter than visual frustum so we \n reserve one bit for points behind occluder far plane.\n\n
The last step is the actual visibility testing.\n We have one job that gathers all objects in the camera frustum\n and then spawns an occlusion test job for each batch of objects.\n\nWe have a two level hierarchy of objects and meshes\n objects live in the scene, and meshes are what we send to the GPU.\n We test objects first to avoid testing meshes.\n\nIf a mesh has many triangles, we can continue with submesh culling.\n This uses the mesh’s Kd-tree to cull away whole ranges of mesh triangles.\n Visible meshes form new primitive sent to GPU.\n\nThe output of these jobs is the final result of the occlusion query, and is sent for rendering.\n\n
We have two kinds of visibility test we can use to cull objects and parts.\n\nThe basic test is the most accurate, but also the most expensive.\n It rasterizes a bounding box with depth testing against the small occlusion buffer.\n\nWe also have constant-time tests for small objects.\n We precompute several versions of the occlusion buffer by \n conservatively dilating the depth values.\n This allows us to perform very quick bounding sphere tests.\n\nIf an object passes the fast test, or if it is too large, we do the accurate test.\n\n
In the final part of the presentation I’d like \n to explain how we create occluders.\n\n
We didn’t want artists to hand-make occluders \n for the entire level, so we looked for an automatic solution.\n\nWe experimented with using visual meshes,\n but the good polygon reduction proved \n to be difficult to get right.\n\nPhysics mesh is much better choice.\n It’s available for each mesh in the game\n and it’s cleaned and sufficiently low polygon count.\n\nUnfortunately the physics meshes can be slightly larger \n than visual meshes causing objects to disappear.\n Worst offenders have to be fixed manually.\n
Here’s an example of occluders \n generated automatically from physics mesh.\n You can notice there’s some unnecessary detail, \n but in general the quality is pretty good.\n
Even using physics mesh there was too much occluder geometry.\n\nWe needed to reject occluders that were unlikely to \n contribute much to the occlusion buffer.\n Our simple heuristics rejects all small objects or \n objects where the name suggests that they are not good occluders.\n\nWe also reject meshes whose surface area suggests\n that they are thin or with too many holes.\n\nArtists can of course step in and override the heuristics\n or provide their custom occluders for difficult cases and optimization.\n
Here’s an example of KZ3 multiplayer level where the \n automatic heuristics did not work well.\n
And here’s the highly optimized occluder mesh created by artist.\n
We like this system, it’s simple, efficient and fits well with our pipeline.\n\nUnfortunately the content creation proved to be a problem.\n The automated solution did not work well enough in some cases\n and artists had to create custom occluders for entire levels.\n Luckily the geometry is easy to create.\n\nUsing scene voxelization might be a good way \n to generate simple, robust occluders automatically.\n
I’d like to thank Will Vale for implementing the \n system for us and help with this presentation.\n