Jump to content
  • Advertisement
  • entries
    73
  • comments
    0
  • views
    13080

Graphics Programming weekly - Issue 68 — January 13, 2019

Sign in to follow this  
jendrikillner

736 views

I am running a small survey to be able to improve the series further this year.

If you have two minutes to spare, please fill out the survey https://goo.gl/forms/nNPzrRpiMERIgtBl2


This week also contains articles that have been published during my vacation since issue 67

  • start of series for programmers with D3D11 experience starting to learn D3D12
  • explains what command queues are, how they express different GPU execution timelines and how fences allow synchronization between CPU and GPU
d3d12.jpg
  • explains how to render water using WebGL, Rust, and WebAssembly
  • water supports reflection and refraction
  • reflections are rendered using a reflection plane technique, that mirrors the world and clips fragments if they are below the water plane
WebGL_Rust_Basic_Water_Tutorial.png
  • shows how to use screen space derivatives to create hard edges on a mesh in the pixel shader
  • how to calculate greyscale from colors
hard_edges.png
  • video explaining the rendering equation in an easy to understand and visual way
rendering_equation.png
  • list of common patterns for shadertoy programming
  • included are: normalizing screen coordinates, color management (hue, sRGB), line drawing, antialiasing, blending, vector math, and random value generation
shadertoy.png
  • preprint of the article to appear in GPU Zen 2 talking about the implementation details (C++ and GLSL)
  • replaces the 3D histogram transformation with three 1D histogram transformations
  • improves quality of the result under mipmapping and shows how to generate correct results with compressed texture formats
hpn2018_teaser.png

  • walkthrough of steps to learn graphics programming
  • recommends starting that beginners start with a raytracer/rasterizer from scratch before starting to use any graphics API
  • list of project ideas for beginners
first_triangle.jpg
  • explains how to rasterize the glyphs from a font into a texture. Providing the coverage information that is required by the technique discussed in part 1 and 2
  • includes code for the OpenGL compute shader
  • overview of typography terms and explain how to correctly position the glyphs to form the final text on the screen
Outline_Sorting.png

  • presents what vertex attributes are and how they are interpolated to deal with perspective distortions correctly
  • uses this knowledge to interpolate normals and UV coordinates for the sponza model
rasterizer.png

Part 1 of the article:

  • explains how classical forward/deferred pipelines work and how tiled and clustered algorithms can be used to extend these ideas
  • includes animations to show the concepts in a more visual way
  • presents strengths and weaknesses for each technique

Part 2 of the article:

  • presents the clustered forward shading implementation
  • how to subdivide the camera frustum into clusters and implement light culling
  • provides links to further information sources
clustered_shading.png

  • frame breakdown of the Rise of the Tomb Raider with D3D12 on PC
  • uses a light pre-pass architecture
  • lens flares don’t use a visibility query but instead use the depth buffer to calculate visibility
  • talks about shadow mapping, ambient occlusion, depth-aware upscaling, reflections, hair rendering, volumetrics, and tone mapping
ROTR-Final-Frame.jpg
  • explains how to apply an expanding color effect that converts the world from greyscale back to color as post-processing effect using Unity scriptable render pipeline
  • presents how to reconstruct world space position from the depth buffer
color_spread.png
  • shows how to set up a Docker container image that is able to run shader compilers
  • supported are: DXC, FXC, GLSLang, AMD Radeon Graphics Analyzer, DXIL signing, SMOL/V and Vulkan SDK
docker_shader_1.png

If you are enjoying the series and getting value from it, please consider supporting this blog.

Support this blog

Read more

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!