Skip to content

Latest commit

 

History

History

mm_opacity

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Opacity Micro-Map in Vulkan

Opacity Micro-Map Visualization

Overview

This sample demonstrates the implementation of Opacity Micro-Maps in Vulkan for efficient ray tracing.

Key Concepts

  • Encodes visibility for triangle sub-regions
  • Triangle classification: opaque (blue), transparent unknown (red), transparent (invisible)
  • Selective AnyHit shader invocation based on opacity state

Implementation Details

Micro-Triangle Generation

  • 4^subdivision triangles per subdivision level
  • Barycentric coordinate mapping using BirdCurveHelper::micro2bary
  • World position projection for radius-based classification

Data Structures

  1. Value Buffer: 2-state (1-bit) or 4-state (2-bit) opacity encoding
  2. VkMicromapTriangleEXT Buffer: Maps triangles to value buffer data
  3. Index Buffer: Continuous array for VkMicromapTriangleEXT indexing
  4. VkMicromapEXT: Constructed from above data

BLAS Integration

  • VkAccelerationStructureTrianglesOpacityMicromapEXT attachment
  • Linked via pNext of VkAccelerationStructureGeometryTrianglesDataKHR

Opacity-MicroMap-SDK

Features

  • Automated asset conversion for ray tracing optimization
  • Texture and geometry analysis
  • Runtime or offline processing capabilities
  • CPU and GPU conversion options

Integration

  • Compatible with various ray tracing applications
  • Flexible API for pipeline integration
  • Supports diverse hardware and software configurations

SDK Repository