Advertisement
Guest User

TextureCreation

a guest
Jul 27th, 2014
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc<float>();//cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat);
  2.     cudaArray *d_cuArr;
  3.     cudaMalloc3DArray(&d_cuArr, &channelDesc, make_cudaExtent(SizeNoise,SizeNoise,SizeNoise), 0);
  4.     cudaMemcpy3DParms copyParams = {0};
  5.    
  6.     //Loop for every separated Noise Texture (nNoise = 4)
  7.     for(int i = 0; i < nNoise; i++){
  8.  
  9.         //initialize the textures
  10.         NoiseTextures[i] = texture<float, 3, cudaReadModeElementType>(1,cudaFilterModeLinear,cudaAddressModeWrap,channelDesc);
  11.  
  12.         //Array creation
  13.         //+(sqrSizeNoise*i) is to separate the created Noise Array into smaller parts with the size of SizeNoise^3
  14.         copyParams.srcPtr   = make_cudaPitchedPtr(d_Noise+(sqrSizeNoise*i), SizeNoise*sizeof(float), SizeNoise, SizeNoise);
  15.         copyParams.dstArray = d_cuArr;
  16.         copyParams.extent   = make_cudaExtent(SizeNoise,SizeNoise,SizeNoise);
  17.         copyParams.kind     = cudaMemcpyDeviceToDevice;
  18.         checkCudaErrors(cudaMemcpy3D(&copyParams));
  19.         //Array creation End
  20.  
  21.         //new Bind
  22.         // set texture parameters
  23.         NoiseTextures[i].normalized = true;                      // access with normalized texture coordinates
  24.         NoiseTextures[i].filterMode = cudaFilterModeLinear;      // linear interpolation
  25.         NoiseTextures[i].addressMode[0] = cudaAddressModeWrap;   // wrap texture coordinates
  26.         NoiseTextures[i].addressMode[1] = cudaAddressModeWrap;
  27.         NoiseTextures[i].addressMode[2] = cudaAddressModeWrap;
  28.  
  29.         // bind array to 3D texture
  30.         checkCudaErrors(cudaBindTextureToArray(NoiseTextures[i], d_cuArr, channelDesc));
  31.         //end Bind
  32.     }
  33.     cudaFreeArray(d_cuArr);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement