Links

Content Skeleton

This Page

OpenGL Render Pipelines

Geometry

nrm
steered by Renderer
tex
used for OptiX raycast renders, OptiX populates a texture that OpenGL presents

Gensteps

p2l
point to line geometry shader used to render gensteps

Photons

pos
point representation of photon positions (not a geometry shader)

Records : corresponding to each recorded step of the photon

rec
flying point presentation
altrec
long line strip presentation
devrec
vector (short line) presentation, vector length is controllable interactively via Composition/param.y

Unpartitioned Record structure

Below ascii art shows expected pattern of slots and times for MAXREC 5

  • remember that from point of view of shader the input time is CONSTANT think of the drawing as a chart plotter tracing over all the steps of all the photons, this shader determines when to put the pen down onto the paper
    • it needs to lift pen between photons and avoid invalids
    • slot indices are presented modulo 5
    • negative times indicates unset
    • dt < 0. indicates p1 invalid
//
//
//     |
//     |
//     t
//     |          3
//     |                                          4
//     |      2                                3
//     |    1                               2
//     |  0                   2          1              1
//     |                    1         0               0          0
//     +-----------------0--------> slot ------------------------------------->
//     |
//     |              4         3 4                        2 3 4    1 2 3 4
//     |
//
//
  • geom shader gets to see all consequtive pairs (including invalid pairs that cross between different photons)
  • shader uses one input time cut Param.w to provide history scrubbing
  • a pair of contiguous recs corresponding to a potential line

Choices over what to do with the pair:

Cannot form a line with only one valid point ? unless conjure a constant direction. The only hope is that a prior “thread” got the valid point as the second of a pair.

Perhaps that means must draw with GL_LINE_STRIP rather than GL_LINES in order that the geometry shader sees each vertex twice (?) YES : SEEMS SO

Hmm how to select single photons/steps ?

Geometry Shader Background