NeroReflex

Untitled

Nov 6th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.60 KB | None | 0 0
  1. // Clear the previously rendered scene
  2.     glClear(GL_COLOR_BUFFER_BIT);
  3.  
  4. /*************** AGGIORNO IL TLAS ****************************/
  5.     Program::use(*mRaytracerUpdate);
  6.  
  7.     prapareDispatch();
  8.  
  9.     // Dispatch the compute work!
  10.     glDispatchCompute(1 << expOfTwo_maxModels, 1, 1);
  11.  
  12.     // synchronize with the GPU
  13.     glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
  14.  
  15.  
  16. /*************** Render ****************************************/
  17.  
  18.     // Set the raytracer program as the active one
  19.     Program::use(*mRaytracerRender);
  20.  
  21.     // Bind the raytracer SSBO (the rendering context)
  22.     prapareDispatch();
  23.  
  24.     // Bind the texture to be written by the raytracer
  25.     glBindImageTexture(0, mRaytracerOutputTexture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F);
  26.  
  27.     // Set rendering information
  28.     mRaytracerRender->setUniform("width", getWidth());
  29.     mRaytracerRender->setUniform("height", getHeight());
  30.  
  31.     // Set camera parameters
  32.     mDisplayWriter->setUniform("cameraPosition", glm::vec3(0, 0, 0));
  33.     mDisplayWriter->setUniform("cameraViewDir", glm::vec3(0, 0, -1));
  34.     mDisplayWriter->setUniform("cameraUpVector", glm::vec3(0, 1, 0));
  35.     mDisplayWriter->setUniform("cameraFoV", glm::float32(60));
  36.     mDisplayWriter->setUniform("cameraAspect", glm::float32(getWidth()) / glm::float32(getHeight()));
  37.  
  38.     // Dispatch the compute work!
  39.     glDispatchCompute((GLuint)(getWidth()), (GLuint)(getHeight()), 1);
  40.  
  41. /***************** prepareDispatch() binda degli SSO: **********************/
  42.     // Bind the raytracer SSBO (the rendering context)
  43.     for (GLuint k = 0; k < mRaytracingSSBO.size(); ++k)
  44.         glBindBufferBase(GL_SHADER_STORAGE_BUFFER, k, mRaytracingSSBO[k]);
Advertisement
Add Comment
Please, Sign In to add comment