- Timestamp:
- 02/20/09 19:26:13 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/DeferredRenderer.cpp
r3322 r3324 71 71 static GLuint noiseTex2D = 0; 72 72 static GLuint noiseTex1D = 0; 73 74 73 static GLuint sampleTex2D = 0; 74 75 76 static Sample2 samples2[NUM_PRECOMPUTED_SAMPLES]; 75 77 // ssao random spherical samples 76 static Sample2 samples2[NUM_SAMPLES]; 77 //#define NUM_PRECOMPUTED_SAMPLES 240 78 //static Sample2 samples2[NUM_PRECOMPUTED_SAMPLES]; 78 //static Sample2 samples2[NUM_SAMPLES]; 79 79 80 // pcf samples 80 81 static Sample2 pcfSamples[NUM_PCF_TABS]; … … 212 213 case DeferredRenderer::SAMPLING_QUADRATIC: 213 214 { 214 //staticQuadraticDiscSampleGenerator2D g(NUM_PRECOMPUTED_SAMPLES, 1.0f);215 QuadraticDiscSampleGenerator2D g(NUM_PRECOMPUTED_SAMPLES, 1.0f); 215 216 //static QuadraticDiscSampleGenerator2D g(NUM_SAMPLES, 1.0f); 216 static QuadraticDiscSampleGenerator2D g(NUM_SAMPLES, 1.0f);217 217 g.Generate((float *)samples2); 218 218 } … … 263 263 264 264 cout << "created noise texture" << endl; 265 266 PrintGLerror("noisetexture"); 267 } 268 269 270 static void CreateSampleTex(Sample2 *samples, int numSamples) 271 { 272 glEnable(GL_TEXTURE_2D); 273 glGenTextures(1, &sampleTex2D); 274 glBindTexture(GL_TEXTURE_2D, sampleTex2D); 275 276 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 277 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 278 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); 279 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 280 281 int w = numSamples; 282 int h = 1; 283 284 float *tempBuffer = new float[numSamples * 3]; 285 286 for (int i = 0; i < numSamples; ++ i) 287 { 288 tempBuffer[i * 3 + 0] = samples[i].x; 289 tempBuffer[i * 3 + 1] = samples[i].y; 290 tempBuffer[i * 3 + 2] = 0; 291 292 } 293 294 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F_ARB, w, h, 0, GL_RGB, GL_FLOAT, (float *)tempBuffer); 295 296 glBindTexture(GL_TEXTURE_2D, 0); 297 glDisable(GL_TEXTURE_2D); 298 299 cout << "created sample texture" << endl; 300 301 delete [] tempBuffer; 265 302 266 303 PrintGLerror("noisetexture"); … … 439 476 "modelViewProj", "oldModelViewProj", "oldEyePos", "oldbl", "oldbr", 440 477 "oldtl", "oldtr", "attribsTex", "kernelRadius", "sampleIntensity"}; 478 441 479 sCgSsaoProgram->AddParameters(ssaoParams, 0, 20); 442 480 … … 751 789 sCgSsaoProgram->SetValue1f(i ++, (mUseTemporalCoherence && !mRegenerateSamples) ? tempCohFactor : 0); 752 790 753 static int currentPos = 0; 754 755 if (mUseTemporalCoherence || mRegenerateSamples) 791 if (/*mUseTemporalCoherence || */mRegenerateSamples) 756 792 { 757 793 mRegenerateSamples = false; … … 760 796 // in the first case, the sample patterns look nicer, but the kernel 761 797 // needs longer to converge 762 //if (currentPos + NUM_SAMPLES >= NUM_PRECOMPUTED_SAMPLES) { 763 currentPos = 0; 764 GenerateSamples(mSamplingMethod); 765 //} 766 798 GenerateSamples(mSamplingMethod); 799 CreateSampleTex(samples2, NUM_PRECOMPUTED_SAMPLES); 767 800 //if (mSortSamples) { SortSamples(); } 768 sCgSsaoProgram->SetArray2f(i, (float *)samples2 + currentPos, NUM_SAMPLES);769 770 currentPos += NUM_SAMPLES;801 //sCgSsaoProgram->SetArray2f(i, (float *)samples2, NUM_SAMPLES); 802 //sCgSsaoProgram->SetArray2f(i, (float *)samples2, NUM_PRECOMPUTED_SAMPLES); 803 sCgSsaoProgram->SetTexture(i, sampleTex2D); 771 804 } 772 805 … … 774 807 775 808 for (int j = 0; j < 4; ++ j, ++ i) 809 { 776 810 sCgSsaoProgram->SetValue3f(i, mCornersView[j].x, mCornersView[j].y, mCornersView[j].z); 811 } 777 812 778 813 sCgSsaoProgram->SetMatrix(i ++, mProjViewMatrix);
Note: See TracChangeset
for help on using the changeset viewer.