


























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An in-depth exploration of 3d textures and volume rendering. It covers the creation and usage of 3d textures, including their differences from 2d textures and applications such as 'solid textures' and volumetric fog. Additionally, it delves into volume rendering, discussing the scalar field, rendering equations, and various approaches like texture slicing and raycasting.
Typology: Study notes
1 / 34
This page cannot be seen from the preview
Don't miss anything!



























๎
๎ (^) Target = GL_TEXTURE_3D ๎ (^) Upload texture image using glTexImage3D ๎ (^) glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB8, width, height, depth, 0, GL_RGB, GL_UNSIGNED_BYTE, pData); ๎ (^) Assign 3D texture coordinates ๎ (^) glTexCoord3f(s, t, r);
๎ (^) Yes, there is still mipmapping ๎ (^) Yes, texture filtering still happens ๎ (^) Yes, you can even render to 3D texture (one slice at a time) ๎ (^) Single element of a 3D texture is referred to as a 'voxel', not a 'pixel'
๎ (^) 3D textures can be large ๎ (^) Filtering is more expensive
๎ (^) Third dimension is time ๎
๎ (^) As used in factored lighting equations
๎
๎ (^) emission colors: c(s(x)) ๎ (^) absorption colors : ฯ(s(x)) ๎
ray: x(t) scalar field : s(x)
๎ (^) Replace integrals with sums ๎ ๎ (^) Replace ep+q^ with epeq^ in absorption term ๎ ๎ (^) Write attenuation in terms of opacity variables ๎
ู d
ู d f ๎ญ t e โ i ๎ ๎ xi ๎ ๎ญ t
i e ๎๎ xi ๎๎ญ t e โ i ๎ ๎ xi ๎ ๎ญ t
i e ๎๎ xi ๎๎ญ t ูกโ Ai = e ๎ ๎ xi ๎ ๎ญ t
๎ (^) Replace integrals with sums ๎ ๎ (^) Does this look familiar? ๎ (^) Looks like alpha blending
i =ู n
j =ู i ๎ูกโ A (^) j ๎
๎ (^) glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); ๎ (^) โOver operatorโ ๎ (^) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); ๎ (^) Maximum intensity projection โMIPโ ๎ (^) glBlendFunc(GL_ONE, GL_ONE) ๎ (^) glBlendEquationEXT(GL_MAX_EXT) ๎ (^) Best to render to floating point frame buffer for improved precision.
๎
๎ (^) Enable alpha blending ๎ (^) Set the texture matrix to the inverse of the view matrix ๎ (^) or use OpenGL automatic texture coordinate generation ๎ (^) Draw many quadrilaterals in eye space from back to front with the texture coordinates as shown 0,0,0 1,0, 0,1,0 1,1, 1,1, 1,0, 0,1,
๎
๎
๎
๎ (^) Requires less storage space. ๎ (^) Enables the transfer function to be interactively edited by the user without updating the whole 3D texture.
๎
๎ (^) Assign colors to 3D voxel values by evaluating transfer func. ๎ (^) Interpolate colors.
๎ (^) Interpolate 3d voxel values ๎ (^) Evaluate transfer function on interpolated value