Content uploaded by Matthias Trapp
Author content
All content in this area was uploaded by Matthias Trapp on Jan 02, 2019
Content may be subject to copyright.
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
Preprocessing Parameterization &
Packaging
Texture Atlas
Processing
Global Record
Compositing
Render
Texture-Atlas
Texture-Atlas
Per-Frame
Final Image
Polygonal Scene Preprocessing
▪
screen space texture spacesorted bounding boxes
▪
▪
▪
▪
▪
Texture Atlas SpaceScreen Space
Transformation
uniform samplerBuffer recordBuffer; // global data
in int ID[3]; // per-vertex attribute: object ID
// fetch transformation and layer for object ID
void fetchRecord(inout mat4 T, inout int layer);
...
void main(void) {
mat4 T; int layer; fetchRecord(T, layer);
gl_Layer = layer; // set texture-target layer
for(int i = 0; i < 3; i++) // set every vertex
{
vec4 v = gl_ProjectionMatrix * gl_PositionIn[i];
// screen-space vertex displacement
gl_Position = (T *(v/ v.w))*v.w;
gl_ClipVertex = gl_PositionIn[i];
// set additional attributes...
EmitVertex();
}//endfor
EndPrimitive();
return;
}
▪
▪
▪
▪
#Vertex
#
Faces
#
Obj
FPS
RTT
FPS
RTTA
2,191
4,236
5
1015
940
32,081
21,246
21
328
239
56,654
34,596
580
14
19
1,040,503
346,835
269
21
35
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪