Changeset 2891 for GTP/trunk/App
- Timestamp:
- 09/01/08 08:58:38 (16 years ago)
- Location:
- GTP/trunk/App/Demos/Vis/FriendlyCulling/src
- Files:
-
- 4 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Camera.cpp
r2890 r2891 175 175 float z_far = mFar; 176 176 177 float fov = 120 * M_PI / 180.0f;//mFovy;177 float fov = mFovy; 178 178 179 179 const float w_near = 2.0f * tan(fov * 0.5f) * z_near; -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SsaoShader.cpp
r2890 r2891 193 193 mUseTemporalCoherence(true), 194 194 mUseGlobIllum(false), 195 mSampling(POISSON) 195 mSampling(POISSON), 196 mFboIndex(0) 196 197 { 197 198 // create noise texture for ssao … … 201 202 //-- the flip-flop fbos 202 203 203 mNewFbo = new FrameBufferObject(w, h, FrameBufferObject::DEPTH_NONE);204 /*mNewFbo = new FrameBufferObject(w, h, FrameBufferObject::DEPTH_NONE); 204 205 205 206 mNewFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); … … 212 213 213 214 mOldFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); 214 mOldFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); 215 216 //mFbo = new FrameBufferObject(w, h, FrameBufferObject::DEPTH_NONE); 217 //mFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false);*/ 215 mOldFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false);*/ 216 217 mFbo = new FrameBufferObject(w, h, FrameBufferObject::DEPTH_NONE); 218 219 mFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); 220 mFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); 221 mFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); 222 mFbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_LINEAR, false); 218 223 } 219 224 … … 227 232 if (sCgAntiAliasingProgram) cgDestroyProgram(sCgAntiAliasingProgram); 228 233 229 DEL_PTR(mNewFbo);230 DEL_PTR(mOldFbo);231 //DEL_PTR(mFbo);234 //DEL_PTR(mNewFbo); 235 //DEL_PTR(mOldFbo); 236 DEL_PTR(mFbo); 232 237 233 238 glDeleteTextures(1, &noiseTex); … … 418 423 // contais the color buffer from the last frame, 419 424 // the other one will be written 420 swap(mNewFbo, mOldFbo);421 425 //swap(mNewFbo, mOldFbo); 426 mFboIndex = 2 - mFboIndex; 422 427 FrameBufferObject::Release(); 423 428 … … 492 497 493 498 // read the second buffer, write to the first buffer 494 mNewFbo->Bind(); 495 glDrawBuffers(1, mymrt); 496 497 498 GLuint oldTex = mOldFbo->GetColorBuffer(0)->GetTexture(); 499 //mNewFbo->Bind(); 500 mFbo->Bind(); 501 glDrawBuffers(1, mymrt + mFboIndex); 502 503 504 //GLuint oldTex = mOldFbo->GetColorBuffer(0)->GetTexture(); 505 GLuint oldTex = mFbo->GetColorBuffer(2 - mFboIndex)->GetTexture(); 499 506 500 507 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); … … 545 552 //const float new_offs = 0.55f; 546 553 const float new_offs = 0.5f; 547 /* 548 glTexCoord2f(0, 0); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, tl.x, tl.y, tl.z); glVertex3f(-new_offs, -new_offs, -0.5f); 549 glTexCoord2f(1, 0); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, tr.x, tr.y, tr.z); glVertex3f( new_offs, -new_offs, -0.5f); 550 glTexCoord2f(1, 1); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, br.x, br.y, br.z); glVertex3f( new_offs, new_offs, -0.5f); 551 glTexCoord2f(0, 1); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, bl.x, bl.y, bl.z); glVertex3f(-new_offs, new_offs, -0.5f); 552 */ 554 553 555 glTexCoord2f(0, 0); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, bl.x, bl.y, bl.z); glVertex3f(-new_offs, -new_offs, -0.5f); 554 556 glTexCoord2f(1, 0); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, br.x, br.y, br.z); glVertex3f( new_offs, -new_offs, -0.5f); … … 715 717 716 718 // read the second buffer, write to the first buffer 717 mNewFbo->Bind(); 718 glDrawBuffers(2, mymrt); 719 720 GLuint oldSsaoTex = mOldFbo->GetColorBuffer(0)->GetTexture(); 721 GLuint oldIllumTex = mOldFbo->GetColorBuffer(1)->GetTexture(); 719 //mNewFbo->Bind(); 720 mFbo->Bind(); 721 722 glDrawBuffers(2, mymrt + mFboIndex); 723 724 //GLuint oldSsaoTex = mOldFbo->GetColorBuffer(0)->GetTexture(); 725 //GLuint oldIllumTex = mOldFbo->GetColorBuffer(1)->GetTexture(); 726 727 GLuint oldSsaoTex = mFbo->GetColorBuffer(2 - mFboIndex)->GetTexture(); 728 GLuint oldIllumTex = mFbo->GetColorBuffer(2 - mFboIndex + 1)->GetTexture(); 722 729 723 730 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); … … 766 773 ComputeViewVectors(tl, tr, bl, br); 767 774 768 glColor3f(1.0f, 1.0f, 1.0f);769 770 775 glBegin(GL_QUADS); 771 776 … … 773 778 //const float new_offs = 0.55f; 774 779 const float new_offs = 0.5f; 775 776 gl Color3f(bl.x, bl.y, bl.z); glTexCoord2f(0, 0); glVertex3f(-new_offs, -new_offs, -0.5f);777 gl Color3f(br.x, br.y, br.z); glTexCoord2f(1, 0); glVertex3f( new_offs, -new_offs, -0.5f);778 gl Color3f(tr.x, tr.y, tr.z); glTexCoord2f(1, 1); glVertex3f( new_offs, new_offs, -0.5f);779 gl Color3f(tl.x, tl.y, tl.z); glTexCoord2f(0, 1); glVertex3f(-new_offs, new_offs, -0.5f);780 781 glTexCoord2f(0, 0); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, bl.x, bl.y, bl.z); glVertex3f(-new_offs, -new_offs, -0.5f); 782 glTexCoord2f(1, 0); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, br.x, br.y, br.z); glVertex3f( new_offs, -new_offs, -0.5f); 783 glTexCoord2f(1, 1); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, tr.x, tr.y, tr.z); glVertex3f( new_offs, new_offs, -0.5f); 784 glTexCoord2f(0, 1); glMultiTexCoord3fARB(GL_TEXTURE1_ARB, tl.x, tl.y, tl.z); glVertex3f(-new_offs, new_offs, -0.5f); 780 785 781 786 glEnd(); … … 798 803 GLuint colorsTex = fbo->GetColorBuffer(3)->GetTexture(); 799 804 800 GLuint ssaoTex = mNewFbo->GetColorBuffer(0)->GetTexture(); 801 GLuint illumTex = mNewFbo->GetColorBuffer(1)->GetTexture(); 805 //GLuint ssaoTex = mNewFbo->GetColorBuffer(0)->GetTexture(); 806 //GLuint illumTex = mNewFbo->GetColorBuffer(1)->GetTexture(); 807 GLuint ssaoTex = mFbo->GetColorBuffer(mFboIndex)->GetTexture(); 808 GLuint illumTex = mFbo->GetColorBuffer(mFboIndex + 1)->GetTexture(); 809 802 810 803 811 fbo->Bind(); … … 850 858 { 851 859 GLuint colorsTex = fbo->GetColorBuffer(3)->GetTexture(); 852 GLuint ssaoTex = mNewFbo->GetColorBuffer(0)->GetTexture(); 860 //GLuint ssaoTex = mNewFbo->GetColorBuffer(0)->GetTexture(); 861 GLuint ssaoTex = mFbo->GetColorBuffer(mFboIndex)->GetTexture(); 853 862 854 863 fbo->Bind(); -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SsaoShader.h
r2889 r2891 80 80 Camera *mCamera; 81 81 82 FrameBufferObject *mOldFbo;83 FrameBufferObject *mNewFbo;84 //FrameBufferObject *mFbo;82 //FrameBufferObject *mOldFbo; 83 //FrameBufferObject *mNewFbo; 84 FrameBufferObject *mFbo; 85 85 86 86 bool mUseGlobIllum; … … 88 88 89 89 int mSampling; 90 int mFboIndex; 90 91 }; 91 92 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Visualization.cpp
r2889 r2891 151 151 152 152 RenderFrustum(); 153 154 Vector3 pos = mCamera->GetPosition(); 155 156 // coordinates 157 glColor3f(0.0f, 1.0f, 0.0f); 158 glBegin(GL_LINES); 159 glVertex3d(pos.x, pos.y, pos.z); 160 glVertex3d(pos.x + 100, pos.y, pos.z); 161 glEnd(); 162 163 glColor3f(0.0f, 0.0f, 1.0f); 164 glBegin(GL_LINES); 165 glVertex3d(pos.x, pos.y, pos.z); 166 glVertex3d(pos.x, pos.y + 100, pos.z); 167 glEnd(); 168 153 169 //RenderBoxForViz(mBvh->GetBox()); 154 170 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp
r2889 r2891 550 550 551 551 // the diffuse color buffer 552 fbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_MIPMAP_LINEAR, true);553 //fbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_NEAREST, false);552 //fbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_MIPMAP_LINEAR, true); 553 fbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32, ColorBufferObject::WRAP_CLAMP_TO_EDGE, ColorBufferObject::FILTER_NEAREST, false); 554 554 555 555 // the positions buffer … … 1544 1544 visualization->Render(); 1545 1545 1546 // coordinates 1547 glColor3f(0.0f, 1.0f, 0.0f); 1548 glBegin(GL_LINES); 1549 glVertex3d(pos.x, pos.y, pos.z); 1550 glVertex3d(pos.x + 100, pos.y, pos.z); 1551 glEnd(); 1552 1553 glColor3f(0.0f, 0.0f, 1.0f); 1554 glBegin(GL_LINES); 1555 glVertex3d(pos.x, pos.y, pos.z); 1556 glVertex3d(pos.x, pos.y + 100, pos.z); 1557 glEnd(); 1546 1558 1547 1559 1548 // reset previous settings … … 1564 1553 glMatrixMode(GL_MODELVIEW); 1565 1554 glPopMatrix(); 1566 1567 Vector3 ftl, ftr, fbl, fbr, ntl, ntr, nbl, nbr;1568 1569 camera->ComputePoints(ftl, ftr, fbl, fbr, ntl, ntr, nbl, nbr);1570 1571 Vector3 bl, br, tl, tr;1572 1573 bl = Normalize(nbl - fbl) * 100;1574 br = Normalize(nbr - fbr) * 100;1575 tl = Normalize(ntl - ftl) * 100;1576 tr = Normalize(ntr - ftr) * 100;1577 1578 Vector3 dum = pos + camera->GetDirection() * 20;1579 1580 // coordinates1581 glColor3f(0.0f, 1.0f, 0.0f);1582 1583 glBegin(GL_LINES);1584 glVertex3d(dum.x, dum.y, dum.z);1585 glVertex3d(dum.x + bl.x, dum.y + bl.y, dum.z + bl.z);1586 glEnd();1587 1588 /* glColor3f(1.0f, 0.0f, 0.0f);1589 1590 glBegin(GL_LINES);1591 glVertex3d(dum.x, dum.y, dum.z);1592 glVertex3d(dum.x + br.x, dum.y + br.y, dum.z + br.z);1593 glEnd();1594 1595 */ glColor3f(0.0f, 0.0f, 1.0f);1596 1597 glBegin(GL_LINES);1598 glVertex3d(dum.x, dum.y, dum.z);1599 glVertex3d(dum.x + tl.x, dum.y + tl.y, dum.z + tl.z);1600 glEnd();1601 /*1602 glColor3f(1.0f, 0.0f, 1.0f);1603 1604 glBegin(GL_LINES);1605 glVertex3d(dum.x, dum.y, dum.z);1606 glVertex3d(dum.x + tr.x, dum.y + tr.y, dum.z + tr.z);1607 glEnd();*/1608 1555 } 1609 1556 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaderenv.h
r2887 r2891 2 2 #define __SHADERENV_H 3 3 4 //#define NUM_SAMPLES 85 #define NUM_SAMPLES 164 #define NUM_SAMPLES 8 5 //#define NUM_SAMPLES 16 6 6 7 7 // rule of thumb: approx 1 / NUM_SAMPLES 8 #define SAMPLE_INTENSITY 0.14f9 //#define SAMPLE_INTENSITY 0.28f8 //#define SAMPLE_INTENSITY 0.14f 9 #define SAMPLE_INTENSITY 0.28f 10 10 11 11 #define AREA_SIZE 5e-1f -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/antialiasing.cg
r2887 r2891 13 13 uniform float4 e_barrier = float4(5e-5, 5e-5, 0, 0); // x = normal, y = depth 14 14 // the weights for normal / depth discontinuity 15 //uniform float4 e_weights = float4(10.0f, 0.1f, 1.0f, 1.0f); // x = normal, y = depth16 uniform float4 e_weights = float4(1.0f, 1.0f, 1.0f, 1.0f); // x = normal, y = depth17 uniform float4 e_kernel = float4(0. 35f, 1.0f, 1.0f, 1.0f);15 uniform float4 e_weights = float4(0.5f, 0.5f, 1.0f, 1.0f); // x = normal, y = depth 16 //uniform float4 e_weights = float4(1.0f, 1.0f, 1.0f, 1.0f); // x = normal, y = depth 17 uniform float4 e_kernel = float4(0.5f, 1.0f, 1.0f, 1.0f); 18 18 19 19 … … 34 34 nd.w = dot(nc, float3(tex2D(normals, IN.lb.xy))); 35 35 36 nd .x-= e_barrier.x;36 nd -= e_barrier.x; 37 37 nd = step((float4)0.0f, nd); 38 38 … … 84 84 float4 s3 = tex2Dlod(colors, float4(offset + IN.lb.xy * w, 0, 0)); 85 85 86 //float4 sx = tex2D(colors, IN.c.xy);86 float4 sc = tex2Dlod(colors, float4(IN.c.xy, 0, 0)); 87 87 88 return (s0 + s1 + s2 + s3) * 0.25f; 88 return (s0 + s1 + s2 + s3 + sc) * 0.2f; 89 //return (s0 + s1 + s2 + s3) * 0.25f; 89 90 //return float4(w); 90 91 } -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/globillum.cg
r2887 r2891 29 29 30 30 31 float2 reflect(float2 pt, float2 n)31 float2 myreflect(float2 pt, float2 n) 32 32 { 33 33 // distance to plane … … 67 67 for (int i = 0; i < NUM_SAMPLES; i ++) 68 68 { 69 float2 offset = samples[i]; 69 //float2 offset = samples[i]; 70 float3 offset = float3(samples[i], 0); 70 71 71 72 //sample noisetex; r stores costheta, g stores sintheta 72 //float2 mynoise = tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy * 2.0f - 1.0f;73 float 2 mynoise = tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy;73 //float2 mynoise = tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy; 74 float3 mynoise = float3(tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy, 0); 74 75 75 76 // rotation … … 133 134 // expand normal 134 135 float3 normal = normalize(norm.xyz); 136 135 137 /// the current view direction 136 float3 viewDir = normalize(IN.view * 2.0f - float3(1.0f));138 float3 viewDir;// = normalize(IN.view); 137 139 138 140 // the current world position -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/mrt.cg
r2873 r2891 24 24 struct fragin 25 25 { 26 float4 position: POSITION; // eye space 27 float4 texCoord: TEXCOORD0; 26 float4 color: COLOR0; 27 float4 position: POSITION; // eye space 28 float4 texCoord: TEXCOORD0; 28 29 29 float4 projPos: WPOS; 30 float4 color: COLOR0; 31 float4 worldPos: TEXCOORD1; // world position 32 float3 normal: TEXCOORD2; 30 float4 projPos: WPOS; 31 float4 worldPos: TEXCOORD1; // world position 33 32 34 float4 mypos: TEXCOORD3; 35 //float DEPTH; 33 float3 normal: TEXCOORD2; 34 35 float4 mypos: TEXCOORD3; 36 //float DEPTH; 36 37 }; 37 38 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/shadow.cg
r2882 r2891 1 //---------------------------------------------------------------------------------- 2 // File: shadow_single_fragment.glsl 3 // Author: Rouslan Dimitrov 4 // Email: sdkfeedback@nvidia.com 5 // Cascaded shadows maps, single shadow sample 6 // Copyright (c) NVIDIA Corporation. All rights reserved. 7 //---------------------------------------------------------------------------------- 8 #version 120 9 #extension GL_EXT_texture_array : enable 1 struct appdata { 2 float3 Position : POSITION; 3 float3 Normal : NORMAL; 4 }; 10 5 11 uniform sampler2D tex;12 uniform vec4 far_d;13 6 14 varying vec4 vPos; 7 struct vpconn { 8 float4 Hposition : POSITION; 9 float4 TexCoord0 : TEXCOORD0; 10 float4 TexCoord1 : TEXCOORD1; 11 float4 Color0 : COLOR0; 12 }; 15 13 16 uniform sampler2DArray stex; 17 float shadowCoef() 14 15 vpconn main(appdata IN, 16 uniform float4x4 WorldViewProj, 17 uniform float4x4 TexTransform, 18 uniform float3x3 WorldIT, 19 uniform float3 LightVec) 18 20 { 19 int index = 3;21 vpconn OUT; 20 22 21 // find the appropriate depth map to look up in based on the depth of this fragment 22 if(gl_FragCoord.z < far_d.x) 23 index = 0; 24 else if(gl_FragCoord.z < far_d.y) 25 index = 1; 26 else if(gl_FragCoord.z < far_d.z) 27 index = 2; 23 float3 worldNormal = normalize(mul(WorldIT, IN.Normal)); 28 24 29 // transform this fragment's position from view space to scaled light clip space 30 // such that the xy coordinates are in [0;1] 31 // note there is no need to divide by w for othogonal light sources 32 vec4 shadow_coord = gl_TextureMatrix[index]*vPos; 33 34 shadow_coord.w = shadow_coord.z; 25 float ldotn = max(dot(LightVec, worldNormal), 0.0); 26 OUT.Color0.xyz = ldotn.xxx; 35 27 36 // tell glsl in which layer to do the look up 37 shadow_coord.z = float(index); 28 float4 tempPos; 29 tempPos.xyz = IN.Position.xyz; 30 tempPos.w = 1.0; 38 31 39 // get the stored depth40 float shadow_d = texture2DArray(stex, shadow_coord.xyz).x;32 OUT.TexCoord0 = mul(TexTransform, tempPos); 33 OUT.TexCoord1 = mul(TexTransform, tempPos); 41 34 42 // get the difference of the stored depth and the distance of this fragment to the light 43 float diff = shadow_d - shadow_coord.w; 35 OUT.Hposition = mul(WorldViewProj, tempPos); 44 36 45 // smoothen the result a bit, to avoid aliasing at shadow contact point 46 return clamp( diff*250.0 + 1.0, 0.0, 1.0); 37 return OUT; 47 38 } 48 39 49 void main() 40 41 struct v2f_simple { 42 float4 Hposition : POSITION; 43 float4 TexCoord0 : TEXCOORD0; 44 float4 TexCoord1 : TEXCOORD1; 45 float4 Color0 : COLOR0; 46 }; 47 48 49 float4 main(v2f_simple IN, 50 uniform sampler2D ShadowMap, 51 uniform sampler2D SpotLight) : COLOR 50 52 { 51 const float shadow_ambient = 0.9; 52 vec4 color_tex = texture2D(tex, gl_TexCoord[0].st); 53 float shadow_coef = shadowCoef(); 54 float fog = clamp(gl_Fog.scale*(gl_Fog.end + vPos.z), 0.0, 1.0); 55 gl_FragColor = mix(gl_Fog.color, (shadow_ambient * shadow_coef * gl_Color * color_tex + (1.0 - shadow_ambient) * color_tex), fog); 53 float4 shadow = tex2D(ShadowMap, IN.TexCoord0.xy); 54 float4 spotlight = tex2D(SpotLight, IN.TexCoord1.xy); 55 float4 lighting = IN.Color0; 56 return shadow * spotlight * lighting; 56 57 } -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/ssao.cg
r2890 r2891 4 4 // Screen Spaced Ambient Occlusion shader 5 5 // based on shader of Alexander Kusternig 6 7 6 8 7 … … 22 21 23 22 24 float2 reflect(float2 pt, float2 n)23 float2 myreflect(float2 pt, float2 n) 25 24 { 26 25 // distance to plane … … 57 56 for (int i = 0; i < NUM_SAMPLES; ++ i) 58 57 { 59 const float2 offset = samples[i]; 58 //const float2 offset = samples[i]; 59 const float3 offset = float3(samples[i], 0); 60 60 61 61 //////////////////// … … 63 63 64 64 //const float2 mynoise = tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy * 2.0f - 1.0f; 65 float2 mynoise = tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy; 65 //float2 mynoise = tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy; 66 float3 mynoise = float3(tex2D(noiseTexture, IN.texCoord.xy * noiseMultiplier).xy,0); 66 67 67 68 const float2 offsetTransformed = reflect(offset, mynoise); … … 123 124 // expand normal 124 125 float3 normal = normalize(norm.xyz); 126 125 127 /// the current view direction 126 //float3 viewDir = normalize(IN.view * 2.0f - float3(1.0f)); 127 float3 viewDir = normalize(IN.view); 128 float3 viewDir;// = normalize(IN.view); 128 129 129 130 // the current world position … … 182 183 float4 ao = tex2D(ssaoTex, IN.texCoord.xy); 183 184 184 //OUT.illum_col = col * ao.x;185 OUT.illum_col = ao;185 OUT.illum_col = col * ao.x; 186 //OUT.illum_col = ao; 186 187 187 188 OUT.illum_col.w = ao.w;
Note: See TracChangeset
for help on using the changeset viewer.