You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenGL texture objects is a conceptual non sens which blend data and operations on a single object. It
results in a lot of limitations that various extensions try to remove. GL_ARB_sampler_objects
allows sampling a single image with multiple different filters and sampling multiple images with the same
filter. This could be a huge benefice both in texture memory (no data copy) and texture filtering processing
thanks to an adaptive filtering per-fragment. Why using an amazing filtering method when the fragment is in
a blurred part of the image? This extension still rely on the "texture unit" semantic.
renders 10 instance of the same geometry, changing the color attribute once every two instance
Instanced arrays provides an alternative to the current OpenGL instancing techniques. We can already use
uniform buffer and texture buffer to store the per instance data, GL_ARB_instanced_arrays
proposed to use array buffers for per instance data. Using the function glVertexAttribDivisor for each
per-instance array buffer, we specify that the draw call must use the first attribute for N vertices where N
should be the count of instances vertices. This extension allows to draw multiples different objects as well,
as far as they have the same number of vertices. Using attributes for instance data is likely to avoid the
latency of a texture buffer fetch but might fill up the attribute data flow if the size of per instance data
is quite large. Probably the fastest instancing method for small per instance data rendering and huge number
of instance.
glVertexAttribDivisor(Semantic.Attr.POSITION, 0) this means disabled (==0)
glVertexAttribDivisor(Semantic.Attr.COLOR, 2) this means enabled (!=0)
renders a texture to an fbo with multisampled (4) renderbuffer color and multisampled (4) renderbuffer depth and then resolve it on the screen. The left part of the screen renders averaging among samples, the right one fetch only the first sample.
GL_ARB_timer_query use the query object to
request the time in nanosecond spend by OpenGL calls without stalling the graphics pipeline. A great
extension for optimizations and maybe for dynamically adjusting the quality level to keep a good enough
frame rate.
renders the upper left corner of a texture with GL_TEXTURE_MIN_FILTER/GL_TEXTURE_MAG_FILTER to GL_NEAREST_MIPMAP_NEAREST/GL_NEAREST and the lower right with GL_LINEAR_MIPMAP_LINEAR/GL_LINEAR
Usually, for normals and tangents attributes we use floating point data. It is a lot of precision but a
big cost in memory bandwidth. GL_ARB_vertex_type_2_10_10_10_rev
provide RGB10A2 format for vertex attribute. The bandwidth is reduced by 2 or 3 times and it keep a really
good precision, actually higher than most normal maps. OpenGL supports RGB10A2 textures
since OpenGL 1.1 but GL_ARB_texture_rgb10_a2ui
allows an unnormalized access to the texture data just like GL_EXT_texture_integer
allowed it for common interger textures in OpenGL 3.0