Posts

GDC 2017 Links

Presentations B-rep for Triangle Meshes - Gino van den Bergen Cold, Hard Cache, Insomniac Games’ Cache Simulator  - Andreas Fredriksson Improving Texture Compression in Games  - Stephanie Hurlburt Insomniac’s Web Tools (a postmortem) - Andreas Fredriksson Scriptable Render Pipeline - Aras Pranckevičius Videos Amazon Lumberyard: "Lost" Demo Amazon Lumberyard: "Bistro" Demo

Radius of a Projected Sphere

Image
It's useful to calculate sphere projection in clip space. One usage is to determine LOD of a model. As you might have known, sphere projection results in ellipse instead of sphere. In this post, a way to approximate radius of projected sphere is given. Assume the sphere is in the center of the screen and we know the \(FOV\) of the camera, sphere radius \(r\) and distance from camera \(z\). Looking at the diagram below: The approximate projection of sphere radius in clip space is given by: $$ approx\_projected\_radius = \frac{y}{y_{max}} = \frac{r}{z \times \tan (\frac{FOV}{2})} $$

GDC 2016 Links

Here are my growing links to GDC 2016 slides/presentations: Programming Advanced VR Rendering Performance  - Alex Vlachos An Excursion in Temporal Supersampling - Marco Salvi An Introduction to SPIR-V  - Neil Henning Building a Better Jump - J. Kyle Pittman Developing the Northlight Engine: Lessons Learned  - Ville Timonen Enlighten feature sets for large world games  - Geomerics Fast, Flexible, Physically-Based Volumetric Light Scattering – Nathan Hoobler Fixed Point Iteration  - Huw Bowles The runtime asset format forGL-based applications - Patrick Cozzi, Tony Parisi Improving Geometry Culling for ‘Deus Ex: Mankind Divided – Nicolas Trudel More Explosions, More Chaos, and Definitely More Blowing Stuff Up: Optimizations and New DirectX Features in Just Cause 3 - Antoine Cohade & Emil Persson Object Space Lighting  - Dan Baker Optimizing the Graphics Pipeline with Compute  - Graham Wihlidal Real-Time BC6H Compression on GPU  - Krzysztof Narkowicz Stable Spec

DirectX 12 FAQ

Image
Windows 10 is here! I wanted to document all issues that I encounter when trying to develop with DirectX12. Q: What do I need to try out DirectX 12? A: Windows 10, Windows 10 SDK (DirectX 12 is part of SDK), Graphics Driver that supports WDDM 2.0. Q: Where do I download DirectX 12 SDK? A: DirectX 12 SDK is part of Windows 10 SDK, so you should download that instead ( Link ). Q: I installed Windows 10, however DirectX Diagnostic Tool doesn't show I have DirectX version 12? A: DxDiag shows the feature level supported instead of the DirectX version. You can still develop with DirectX 12 API, however, your feature level is limited to that. Q: I installed Windows 10, DirectX 12 and latest graphics driver, however, when running the graphics samples, it crashed in D3D12CreateDevice A: Note that DirectX 12 requires graphics driver that support WDDM 2.0. At this time of writing (Aug 9, 2015), not all graphics drivers support all graphics cards with WDDM 2.0. For example, Ra

GDC 2015 Links

Here are [growing] links to GDC 2015 slides/presentations: Update: GDC Vault for GDC 2015 is now up!  Programming Track Khronos Group ( Link ) Khronos OpenCL GDC Khronos Vulkan GDC Valve Vulkan Session GDC Live Stream of Vulkan Session (Youtube) The Future of High-Performance Graphics Virtual Reality VR Direct: How NVIDIA Technology is Improving the VR Experience ( pptx ,  pdf ) - Nathan Reed, Dean Beeler Advanced VR Rendering  - Alex Vlachos Far Cry 4 Fast Iteration for Far Cry 4 - Optimizing Key Parts of Dunia Pipeline  - Remi Quenin Rendering the World of Far Cry 4  - Stephen McAuley Adaptive Virtual Texture Rendering in Far Cry 4  - Ka Chen Mesh Cutting in Farming Simulator 15 - Gino van den Bergen Advanced Visual Effects in 2D Games - Viktor Lidholt Great Management of Technical Leads - Mike Acton Code Clinic: How to Write Code the Compiler Can Actually Optimize - Mike Acton Parallelizing the Naughty Dog Engine Using Fibers - Christian Gyrling

DirectX11 - Development INF

Welcome to the first Development INF (stands for information)! Basically for each Development INF article, I will be listing the road blocks, gotchas, tips and tricks that I found during development; in this case DirectX11. 1. DirectX11 is part of WindowsSDK For old time DirectX developers, we usually had to install DirectX SDK. However, starting Windows 8, Microsoft has included the SDK to Windows 8 SDK. Consequently, this creates compile issues as some projects are still referencing the old DirectX path. In Visual Studio, we usually use $(DXSDK_DIR)\Include and $(DXSDK_DIR)\Lib to locate the headers and lib, however, this will be no longer the case. The headers should be in $(WindowsSDK_IncludePath) and lib in $(WindowsSdkDir)\lib\x64. 2. D3DX11 library is deprecated D3DX11 Library is Deprecated, we should no longer include d3dx11.h header and no longer use D3DX11* functions. We need to find the replacement for each function. 3. DirectXMath replaces XNAMath //#includ

Lighting Theory: Radiometry and Photometry

Recent games have been heading towards Physically Based Rendering and this requires a solid understanding on lighting theory more than ever before. This time, I'm posting my note on Radiometry and Photometry . Radiometry Radiometry  is basically ideas + mathematical tools to describe light propagation + reflection. Radiative Transfer  is a study of transfer of radiant energy (which operates on geometric optics level - macroscopic properties of light suffice to describe how light interacts with objects much larger than light's wavelength). Four Radiometric Quantities : 1.  Flux (Radiant Flux/Power) - total amount of energy passing through a surface or region of space per unit time (J/s or Watt). Total emission from light sources is generally described in terms of flux. 2.  Irradiance (E) - area density of flux arriving at a surface (Watt/m2) Radiant Exitance (M) - area density of flux leaving a surface (Watt/m2) 3. Radiant Intensity (I) - flux density per solid an