Skip to content
Snippets Groups Projects
Commit dfb57aa9 authored by Michael Heyde's avatar Michael Heyde
Browse files

fixed some zero bugs

parent 7e7d7ba1
No related branches found
No related tags found
No related merge requests found
......@@ -558,8 +558,9 @@ public class MultiVolumeRenderer extends AbstractShaderSceneElement{
dim = new int[]{(int)data.memSize[0],
(int)data.memSize[1],
(int)data.memSize[2]};
if(buffer.capacity()>0){
volumeTextureMap.get(i).update(gl2, 0, buffer, dim);
}
if(getArrayEntryLocation(gl2,suvVoxelOffsets,i)!=-1){
int off[] = new int[]{
(int)data.memOffset[0],
......
......@@ -221,7 +221,7 @@ public class MultiVolumeRendererShaderSource extends AbstractShaderSource{
"",
"vec3 getCoordinateInVolumeSpace(vec3 positionOnRay, int volumeNumber){",
" vec4 transformedPosition ="+suvTextureTransformationInverse+"[volumeNumber]*vec4(positionOnRay.xyz,1.0); ",
" transformedPosition /= transformedPosition.w;",
" transformedPosition /= transformedPosition.w;",
" return transformedPosition.xyz;",
"}",
"",
......@@ -251,8 +251,7 @@ public class MultiVolumeRendererShaderSource extends AbstractShaderSource{
" if(!(dist > 0.0)){",
" continue;",
" }",
"",
" int stepsInRect = int(floor(abs(dist)/ (abs("+sgvRayDirections+"[p]) * "+suvRenderRectStepSize+")));",
" int stepsInRect = int(floor(abs(dist)/ max("+scvMinDelta+",(abs("+sgvRayDirections+"[p]) * "+suvRenderRectStepSize+"))));",
" steps = min(steps, stepsInRect);",
" }",
" return steps;",
......@@ -302,7 +301,7 @@ public class MultiVolumeRendererShaderSource extends AbstractShaderSource{
"",
"int renderedSlice =0;",
"float latestdDistanceToSlice;",
"bool sliceNeedsGammaCorrection = (1.0/("+suvMaxVolumeValue+")*"+suvMinVolumeValue+" < 0.05);",
"bool sliceNeedsGammaCorrection = (1.0/max("+scvMinDelta+",("+suvMaxVolumeValue+")*"+suvMinVolumeValue+") < 0.05);",
"void evaluate2DSlice(float density, float nextDensity){",
" if("+suvShowSlice+" == 1 && renderedSlice != 1){",
" vec4 sliceColor= vec4(0.0); ",
......@@ -310,11 +309,11 @@ public class MultiVolumeRendererShaderSource extends AbstractShaderSource{
" if(sign(currentSliceDistance) != sign(latestdDistanceToSlice) || sign(currentSliceDistance) == 0 ){",
" float midDensity;",
" float dist = abs(latestdDistanceToSlice);",
" if(dist < 0.5){",
" //if(dist < 0.5){",
" midDensity = density;",
" }else{",
" midDensity = density+(nextDensity-density)/dist;",
" }",
" //}else{",
" //midDensity = density+(nextDensity-density)/dist;",
" //}",
" sliceColor =vec4(midDensity,midDensity,midDensity,1.0);",
" sliceColor.a = 1.0;",
" if(sliceNeedsGammaCorrection){",
......@@ -342,9 +341,7 @@ public class MultiVolumeRendererShaderSource extends AbstractShaderSource{
" //init positions, directions ,etc",
" "+sgvRayDirections+" = normalize("+svRayStartCoordinate+" - "+suvEyePosition+" );",
" "+sgvRayPositions+" = "+svRayStartCoordinate+";",
/*TODO REMOVE DEBUG*/ "mat4x4 toGlobal["+scvMaxNumberOfVolumes+"];",
" for(int n = 0; n < "+scvMaxNumberOfVolumes+"; n++){",//TODO REMOVE DEBUG
"toGlobal[n] = inverse("+suvTextureTransformationInverse+"[n]);",
" for(int n = 0; n < "+scvMaxNumberOfVolumes+"; n++){",
" vec3 tmp = "+suvVoxelCount+"[n];",
" vtextOffsets[n] = vec3(1.0/tmp);",
" vtextScales[n] = (vec3("+suvVoxelCount+"[n]-ivec3(1)))/(vec3("+suvVoxelCount+"[n])*vec3("+suvVoxelCount+"[n]-ivec3(1)));",
......
......@@ -235,11 +235,22 @@ public class VolumeDataManager {
List<SourceState<?>> sources = state.getSources();
int currentTimepoint = state.getCurrentTimepoint();
List<VolumeDataBlock> data = new ArrayList<VolumeDataBlock>();
/* System.out.println();
System.out.println();
System.out.println("Timepoints: "+state.getNumTimePoints());
*/
int i =-1;
for(SourceState<?> source : sources){
/* System.out.println(source.getSpimSource().getNumMipmapLevels());
for(int k = 0; k < source.getSpimSource().getNumMipmapLevels();k++){
long dim[] = new long[3];
source.getSpimSource().getSource(currentTimepoint, k).dimensions(dim);
for(int d= 0; d < 3; d++){
System.out.print(dim[d] +" ");
}
System.out.println();
}*/
i++;
//block transform
......
......@@ -66,7 +66,7 @@ public class VolumeDataUtils {
long minMax[][] = new long[][]{{(long)Math.max(Math.floor(minBoundingBox.getMinX()),0),(long)Math.max(Math.floor(minBoundingBox.getMinY()),0),(long)Math.max(Math.floor(minBoundingBox.getMinZ()),0)},
{Math.min((long)Math.ceil(minBoundingBox.getMaxX()), data.dimensions[0])-1,Math.min((long)Math.ceil(minBoundingBox.getMaxY()), data.dimensions[1])-1,Math.min((long)Math.ceil(minBoundingBox.getMaxZ()), data.dimensions[2])-1}};
float[] block = new float[(int)((minMax[1][0]+1-minMax[0][0]) * (minMax[1][1]+1-minMax[0][1]) * (minMax[1][2]+1-minMax[0][2]))];
float[] block = new float[Math.max(0,(int)((minMax[1][0]+1-minMax[0][0]) * (minMax[1][1]+1-minMax[0][1]) * (minMax[1][2]+1-minMax[0][2])))];
tmp = Views.flatIterable(Views.interval(dataField, minMax[0], minMax[1]));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment