🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Graphics Programming weekly - Issue 41 — June 3, 2018

posted in jendrikillner
Published June 06, 2018 Imported
Advertisement
  • shader authors can define variations of shaders with a number of systems
  • each system can inject code/resources/constants into the shader
  • a material allows specifications of which shaders belong together, which systems they use and allows to insert command at the correct time in the Frame
  • all of the resulting shaders get a shared resource binder and constant buffer to reduce
machinery_materials.png

explanations how ray tracing shaders in OpenGL can access the necessary textures for all objects in the world using GL_ARB_bindless_texture

texture_path_tracer.jpg

  • moving the scene information into group shared memory to speed up the ray tracing code a lot
  • problems on metal, slower unless passing data by value instead of by const reference

  • look at the iOS implementation with an overview of performance tools for CPU and GPU
ios-phone.jpg

  • now using Logarithmic depth buffer when available
  • writes custom depth in a pixel shader, this does disable early depth optimizations but still a performance win for their use-case
frustum_geometry.jpg

  • look at the implementation of Witcher 3 rendering from an outside perspective using RenderDoc
  • breakdown of rendering Frame structure
  • how normals are stored in the g-buffer
  • explanation of a number of techniques from the d3d disassembly
    • sun rendering
    • blinking stars
    • eye adaptation
    • tonemapping
    • vignette
witcher3.png

  • discussion of tradeoffs for the basis file format
  • comparison of different images formats transcoded from the same source format
xenia.png

  • extending previous work in CNN(Convolutional neural network) based denoising
  • using a modular architecture that improves temporal stability and detail preservation
denoise.png

  • how to optimize a Rust path tracer using SSE4.1
simd_path_tracing.png

  • the longer the CPU/GPU can idle, the less power is needed
  • optimizing a CPU bound game might cause more frames to be rendered (hitting 60 fps instead of 30). causing less GPU idle time and increasing power consumption
  • kernel heuristics might trigger higher frequency mode which increases battery usage significantly

  • Tutorial about the implementation of water surface movement of using a flow map in unity
  • how to deal with deformation of normals using derivative maps
water_flowmap.jpg

  • NVIDIA Nsight Systems visualizes system-wide application interactions across CPU and GPU
  • Nsight
    • Volta, Vulkan 1.1 and Cuda 9.2, are supported
    • user configurable memory view
nsight.png

-how to investigate GPU starvation and detect CPU/GPU synchronizations and overview of other tools

nsight_systems.png

Read more

0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement