Volume Rendering Artifacts

Hi all,

I have encountered some rendering artifacts in volume rendering as below:


A you probably notice it, there is black halo at the edge of the rendered image when view from certain angle.
FYI, code snippet of main function of fragment shader is as below(retrived from OpenGL Development Cookbook):

void main()
	//get the 3D texture coordinates for lookup into the volume dataset
	vec3 dataPos = vUV;

	vec3 geomDir = normalize((vec3(0.556,0.614,0.201)*vUV-vec3(0.278,0.307,0.1005)) - camPos); 
	vec3 dirStep = geomDir * step_size; 	
	//flag to indicate if the raymarch loop should terminate
	bool stop = false; 

	//for all samples along the ray
	for (int i = 0; i < MAX_SAMPLES; i++) {
		// advance ray by dirstep
		dataPos = dataPos + dirStep;

		stop = dot(sign(dataPos-texMin),sign(texMax-dataPos)) < 3.0f;

		//if the stopping condition is true we brek out of the ray marching loop
		if (stop) 
		// data fetching from the red channel of volume texture
		float sample = texture(volume, dataPos).r;	
		float prev_alpha = sample - (sample * vFragColor.a);
		vFragColor.rgb = (prev_alpha) * vec3(sample) + vFragColor.rgb; 
		vFragColor.a += prev_alpha; 

		if( vFragColor.a>0.99)

FYI, the volume data is not similar in dimension, thus, some operation is done to make sure the coordinates do maps to the texture coordinates.


So, what probably could result in this artifacts???:dejection::dejection:

FYI, the artifacts appear when viewing at the edge of the cuboid…

The problem is solved by changing the interpolation parameter of mipmapping to GL_LINEAR from GL_LINEAR_MIPMAP_LINEAR…