Git Product home page Git Product logo

graphic's People

Contributors

wzchua avatar

Watchers

 avatar

graphic's Issues

Implementations tasklist

  • Looping of deferred fragments
  • Visualization of octree
  • Octree voxel information storing
    • Surface attribute
      • Texture color/Material color represented as an opacity weight color value (alpha pre-multiplied)
      • Normal is also pre-multiplied by opacity value. Store as isotropic Gaussian lobes.
      • material
    • Storing lighting information
      • incoming radiance: Render in light view 1024 x 1024 -> world position -> store in octree as direction distribution and an energy proportional to subtended solid angle of the pixel as seen from the light. Store as isotropic Gaussian lobes.
    • Model directional information with distributions that describe the underlying data.
      • Gaussian lobes characterized by an average vector D and a standard deviation σ.
      • To ease interpolation variance is encode via the norm |D| such that σ^2 = (1-|D|)/|D|
    • Estimate occlusion info in form of visibility % of blocked rays. Single average value. (Lack view-dependency)
  • Octree border transfer for surface attribute, light
    • 6 passes -x +x -y +y -z +z. add, then copy back
  • Octree level filtering surface attribute, light
    • MIP-mapped with guassian weight, center: 1/4, side: 1/8, corner: 1/16
    • 3 passes.
      • 1st computes center voxel with filtered 27 voxels a level below
      • 2nd computes half of the filtered response at sides (18 each side)
      • 3rd computes quarter of filtered response at corners (4 each corner)
    • border transfer to complete information from other octants
  • Light filtering considerations. Avoid filtering zero values
    • Derive 2D node map form light-view map(MIP-map pyramid)
    • Stores indices of 3D leaf nodes containing corresponding photon in light-view map
    • 1 thread per pixel per octree mip-mapping pass.
    • Uses 2D node map to verify common-ancestor with other thread.
    • Terminate all thread except upper left one.
  • Voxel Cone Tracing
    • Step along cone axis and perform lookups in octree at level corresponding to the cone radius
    • Quadrilinear interpolation to ensure smooth variation.
    • Use emission-absorption optical model to accumulate values along the cone.
    • Track occlusion and color representing the reflected light towards cone origin.
    • Compute new outgoing radiance with scene filtered information and occlusion.
    • Update values with volumetric front-to-back accumulation c = a_c+ (1-a)a2_c2 and a = a + (1-a)a2.
    • To ensure good integration quality, the distance d' between successive sample locations along a ray does not coincide with the current voxel size d.
    • To account for the smaller step size, use correction a'_s = 1 - (1-a_s)^(d'/d)
  • Ambient Occlusion
    • Weight occlusion a by a function f(r) which decays with distance. (1/(1+λr)). a_f(p+rω):= f(r)a(p+rω_v). v = vector
    • Partition hemisphere into sum of integral cones.
    • Weighted visibility integral V is obtained by accumulating the occlusion information only accounting for weight f(r). Sum of cones = approximation of AO term.
  • Two-bounce Indirect Illumination
    • Use deferred shading for surface points that need indirect illumination.
    • At each location, perform gathering with several VCT. Phong (five large cone for diffuse, a tight cone in reflected direction wrt viewpoint captures specular component.)
    • aperture of specular cone is from specular exponent of the material. (Glossy reflections)
  • For better pre-integration of voxel values, use anisotropic voxel representation when building or updating octree.
  • FPS/timer tracker
  • Improved modularity for shaders

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.