Author Topic: Next-Gen Graphics FINALLY Arrive - Virtual Texturing  (Read 702 times)

LiaoMi

  • Member
  • *****
  • Posts: 1038
Next-Gen Graphics FINALLY Arrive - Virtual Texturing
« on: December 20, 2021, 06:21:13 AM »
Hi,

Next-Gen Graphics FINALLY Arrive - https://www.youtube.com/watch?v=gry36cT3TdI
This is the moment I've been waiting for in computing graphics. In this episode, we cover the playable matrix awakens demo as well as some other unreal engine 5 info.

Nanite
Create games with massive amounts of geometric detail with Nanite, a virtualized micropolygon geometry system. Directly import film-quality source art comprised of millions of polygons—anything from ZBrush sculpts to photogrammetry scans—and place them millions of times, all while maintaining a real-time frame rate, and without any noticeable loss of fidelity.

Nanite intelligently streams and processes only the detail you can perceive, largely removing poly count and draw call constraints, and eliminating time-consuming work like baking details to normal maps and manually authoring LODs—freeing you up to concentrate on creativity.

What is virtualized micropolygon geometry? An explainer on Nanite | Unreal Engine 5 - https://www.youtube.com/watch?v=-50MJf7hyOw
Now Games Can Look Like Pixar Movies - Unreal Engine 5 - https://www.youtube.com/watch?v=47I2N_l47mw
« Last Edit: December 20, 2021, 11:34:42 PM by LiaoMi »

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 10005
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: Next-Gen Graphics FINALLY Arrive
« Reply #1 on: December 20, 2021, 10:37:56 AM »
I have seen a bit of "photo realism" on Youtube and it is starting to look really good. I am not sure that current video technology is good enough to run it but what I have seen so far as recorded video of this new capacity has very good potential.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :skrewy:

LiaoMi

  • Member
  • *****
  • Posts: 1038
Re: Next-Gen Graphics FINALLY Arrive
« Reply #2 on: December 20, 2021, 11:31:37 PM »
I have seen a bit of "photo realism" on Youtube and it is starting to look really good. I am not sure that current video technology is good enough to run it but what I have seen so far as recorded video of this new capacity has very good potential.

Hi Hutch,

I think this is an algorithmic solution - "virtualized micropolygon geometry system", brilliant optimization idea, if this technology can be combined with NVIDIA DLSS 2.0 (https://www.youtube.com/watch?v=IMi3JpNBQeM), then it will raise the level of graphics to excellent quality  :rolleyes:

EVOLVING THE REAL-TIME GRAPHICS PIPELINE - http://graphics.stanford.edu/~kayvonf/papers/kayvonf_dissertation.pdf
Nanite - Advances in Real-Time Rendering in 3D Graphics - https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf
Virtual Geometry Textures - Chalmers Publication Library - http://publications.lib.chalmers.se/records/fulltext/220583/220583.pdf
Virtual Texture: A Large Area Raster Resource for the GPU - https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.534.7897&rep=rep1&type=pdf
It produces high quality images in real- time from very large textures using relatively little texture memory.

How can virtual texturing actually be efficient? - https://computergraphics.stackexchange.com/questions/1768/how-can-virtual-texturing-actually-be-efficient/1773
Sparse Virtual Texturing - http://holger.dammertz.org/stuff/notes_VirtualTexturing.html

TU Wien – Research Unit of Computer Graphics -
Albert Julian Mayer
Virtual Texturing
https://www.cg.tuwien.ac.at/research/publications/2010/Mayer-2010-VT/Mayer-2010-VT-poster.pdf
https://www.cg.tuwien.ac.at/research/publications/2010/Mayer-2010-VT/Mayer-2010-VT-Thesis.pdf
Source Code - LibVT is a library implementing "virtual texturing" - https://github.com/core-code/LibVT or https://github.com/core-code/LibVT/archive/refs/heads/master.zip
Abstract
Virtual texturing (as presented by Mittring in ’Advanced Virtual Texture Topics’ and in distinction to clipmap-style systems, to which this term is also applied) is a solution to the problem of real-time rendering of scenes with vast amounts of texture data which does not fit into graphics or main memory. Virtual texturing works by preprocessing the aggregate texture data into equally-sized tiles and determining the necessary tiles for rendering before each frame. These tiles are then streamed to the graphics card and rendering is performed with a special virtual texturing fragment shader that does texture coordinate adjustments to sample from the tile storage texture. A thorough description of virtual texturing and related topics is given, along with an examination of specific challenges including preprocessing, visible tile determination, texture filtering, tile importance metrics and many more. Tile determination in view space is examined in detail and an implementation for compressing the resulting buffer in OpenCL is presented. Rendering with correct texture filtering from a texture which contains de-correlated texture tiles is attained by using tile borders with specific coordinate adjustment and gradient correction in the fragment shader. A sample implementation is described and serves to provide results concerning performance and correctness with different settings and architecture choices. Integration into Open Scene Graph for usage within a hybrid point-cloud / polygonal renderer enables rendering of high resolution paintings within catacombs modeled with point clouds. Another application is presented, the real-time display of a highly detailed model of New York with more than 60 GB textures. Quantitative analysis reveals that frame-rates above 200 FPS are attainable on complex scenes with multi-million polygons even with outdated hardware. At the same time quality remains high, results indicate that ”fallbacks”, that occur when a needed texture tile is not ready in time, occur only for 0.01% of the pixels on average. These results show that virtual texturing can be a competitive solution for games, scientific and industrial applications, allowing for real-time rendering of scenes that could not be displayed previously, while maintaining acceptable visual quality.

Real-Time Texture Streaming Decompression -- decoding a JPEG-like format at high speed - https://web.archive.org/web/20110807135532/http://software.intel.com/file/17248/
Real-Time DXT Compression -- analayzes multiple possible strategies, argues for DXT5 YCoCg. Includes implementation - https://web.archive.org/web/20091106184425/http://cache-www.intel.com/cd/00/00/32/43/324337_324337.pdf
Real-Time YCoCg-DXT Compression - https://web.archive.org/web/20080701122224/http://developer.download.nvidia.com/whitepapers/2007/Real-Time-YCoCg-DXT-Compression/Real-Time%20YCoCg-DXT%20Compression.pdf
Sparse Virtual Textures (C Language) - https://silverspaceship.com/src/svt/ and Demo source code, executable, text-file slides - Release 2 (9MB) - https://silverspaceship.com/src/svt/svt.zip
Sparse Virtual Texturing is an approach to simulating very large textures using much less texture memory than they'd require in full by downloading only the data that is needed, and using a pixel shader to map from the virtual large texture to the actual physical texture.The technique could be used for very large textures, or simply for large quantities of smaller textures (by packing them into the large texture, or by using multiple page tables).
It was mostly inspired by John Carmack's descriptions of MegaTexturing in several public and private forums and emails. It may not be exactly the same as MegaTexture, but it's probably close.

Nanite - Advances in Real-Time Rendering in 3D Graphics - https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf
Virtual Texturing in Software and Hardware - https://mrelusive.com/publications/presentations/2012_siggraph/Virtual_Texturing_in_Software_and_Hardware_final.pdf

Virtual Textures on iOS - http://glampert.com/2014/11-09/virtual-textures-on-ios/
Virtual Texture aka MegaTexture - https://en.wikipedia.org/wiki/Id_Tech_4#MegaTexture_rendering_technology

xform-megatexture - https://github.com/unitpoint/xform-megatexture
Source Code (Visual Studio) - https://github.com/unitpoint/xform-megatexture/archive/refs/heads/master.zip
Bin (Windows) -
https://github.com/unitpoint/xform-megatexture-bin/blob/master/xform-megatexture-bin.z01
https://github.com/unitpoint/xform-megatexture-bin/blob/master/xform-megatexture-bin.zip
Run bin\test.exe to start program. Please note that megatexture file (textures\mega-8192.tga) takes 200 MB. The first run could spend some time to compile the megatexture file.

Biterider

  • Member
  • *****
  • Posts: 1041
  • ObjAsm Developer
    • ObjAsm
Re: Next-Gen Graphics FINALLY Arrive - Virtual Texturing
« Reply #3 on: December 21, 2021, 12:27:01 AM »
Hi
I saw these videos recently. You are very impressive.
The Nanite technology has taken RT rendering to the next level.  :eusa_clap:

Biterider

xanatose

  • Member
  • ***
  • Posts: 420
Re: Next-Gen Graphics FINALLY Arrive - Virtual Texturing
« Reply #4 on: December 24, 2021, 04:15:48 AM »
We humans are creating our own matrix. We do not need to wait for the machines to do it for us. Instead we create and shittier and shittier world so that people would want to live on a virtual one. :)

Incidentally, have anyone seen the latest matrix movie?