From c475b1ecac7518402538febdb93a6d691efd3fd1 Mon Sep 17 00:00:00 2001 From: Vladislav Khorev Date: Sat, 8 Jun 2024 23:24:26 +0300 Subject: [PATCH] Finally cubemap working --- Template/log.txt | 151 +++++++++++++++---------------- Template/main.cpp | 124 +++++++++++++++---------- Template/main.h | 1 + resources/shaders/env.fragment | 4 + resources/shaders/env.vertex | 2 +- resources/shaders/water.fragment | 20 ++-- resources/shaders/water.vertex | 19 +++- 7 files changed, 186 insertions(+), 135 deletions(-) diff --git a/Template/log.txt b/Template/log.txt index 4ca7e02..06b12fe 100644 --- a/Template/log.txt +++ b/Template/log.txt @@ -1,109 +1,108 @@ -2024-Jun-08 20:53:34: Log started -2024-Jun-08 20:53:34: OpenGL Window created -2024-Jun-08 20:53:34: Script manager ready -2024-Jun-08 20:53:34: Render::OpenGL glVersion = 4.6.0 - Build 31.0.101.4887 -2024-Jun-08 20:53:34: Render::OpenGL glVersion above 2.0 ok -2024-Jun-08 20:53:34: Render::OpenGL GL_ARB_framebuffer_object supported ok -2024-Jun-08 20:53:34: Render::OpenGL GL_ARB_uniform_buffer_object supported ok -2024-Jun-08 20:53:34: Prepare to add shader GUI -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Log started +2024-Jun-08 23:23:28: OpenGL Window created +2024-Jun-08 23:23:28: Script manager ready +2024-Jun-08 23:23:28: Render::OpenGL glVersion = 4.6.0 - Build 31.0.101.4887 +2024-Jun-08 23:23:28: Render::OpenGL glVersion above 2.0 ok +2024-Jun-08 23:23:28: Render::OpenGL GL_ARB_framebuffer_object supported ok +2024-Jun-08 23:23:28: Render::OpenGL GL_ARB_uniform_buffer_object supported ok +2024-Jun-08 23:23:28: Prepare to add shader GUI +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 3 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: GUI -2024-Jun-08 20:53:34: Prepare to add shader Parallax -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 3 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: GUI +2024-Jun-08 23:23:28: Prepare to add shader Parallax +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing WARNING: 0:27: 'assign' : implicit type conversion allowed from GLSL 1.20 WARNING: 0:27: 'assign' : implicit type conversion allowed from GLSL 1.20 WARNING: 0:27: 'assign' : implicit type conversion allowed -2024-Jun-08 20:53:34: Shader program is - 6 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Parallax -2024-Jun-08 20:53:34: Prepare to add shader Directlight -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 6 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Parallax +2024-Jun-08 23:23:28: Prepare to add shader Directlight +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 9 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Directlight -2024-Jun-08 20:53:34: Prepare to add shader Env -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 9 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Directlight +2024-Jun-08 23:23:28: Prepare to add shader Env +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 12 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Env -2024-Jun-08 20:53:34: Prepare to add shader Water -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 12 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Env +2024-Jun-08 23:23:28: Prepare to add shader Water +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -WARNING: 0:20: 'assign' : implicit type conversion allowed from GLSL 1.20 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 15 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Water -2024-Jun-08 20:53:34: Prepare to add shader Frame -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 15 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Water +2024-Jun-08 23:23:28: Prepare to add shader Frame +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 18 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Frame -2024-Jun-08 20:53:34: Prepare to add shader Lightview -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:5: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 18 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Frame +2024-Jun-08 23:23:28: Prepare to add shader Lightview +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:5: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 21 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Lightview -2024-Jun-08 20:53:34: Prepare to add shader Simple3D -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: Shader program is - 21 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Lightview +2024-Jun-08 23:23:28: Prepare to add shader Simple3D +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader WARNING: 0:1: '' : #version directive missing -2024-Jun-08 20:53:34: Shader program is - 24 -2024-Jun-08 20:53:34: ResourceManager::ShaderManager::Shader -2024-Jun-08 20:53:34: ResourceManager::ShaderManager shader loaded: Simple3D -2024-Jun-08 20:53:34: ResourceManager::TexList Texture added: bt_box_yellow.bmp with id = 1 -2024-Jun-08 20:53:34: ResourceManager::TexList Texture added: bt_box_norm.bmp32 with id = 2 -2024-Jun-08 20:53:34: Lite model added successfully: models/bt_box_yellow.lm1 -2024-Jun-08 20:53:34: ResourceManager::TexList Texture added: bt_cone.bmp with id = 3 -2024-Jun-08 20:53:34: Lite model added successfully: models/bt_cone.lm1 -2024-Jun-08 20:53:34: Lite model added successfully: models/girl.lm1 -2024-Jun-08 20:53:34: Lite model added successfully: models/bonemodel.lm1 -2024-Jun-08 20:53:35: ResourceManager::TexList Texture added: out.bmp with id = 4 -2024-Jun-08 20:53:35: FrameManager:: frame buffer added: Skybox -2024-Jun-08 20:53:35: ResourceManager::TexList Texture added: normalmap.bmp with id = 6 -2024-Jun-08 20:53:35: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/posx.bmp -2024-Jun-08 20:53:35: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/negx.bmp -2024-Jun-08 20:53:35: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/posy.bmp -2024-Jun-08 20:53:35: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/negy.bmp -2024-Jun-08 20:53:35: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/posz.bmp -2024-Jun-08 20:53:35: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/negz.bmp -2024-Jun-08 20:53:35: ResourceManager::TexList texture added succesfuly: posx.bmp -2024-Jun-08 20:53:35: FrameManager:: frame buffer added: ScreenBlur -2024-Jun-08 20:53:35: FrameManager:: frame buffer added: ShadowBufferGlobal -2024-Jun-08 20:53:35: FrameManager:: frame buffer added: ShadowBufferLocal +2024-Jun-08 23:23:28: Shader program is - 24 +2024-Jun-08 23:23:28: ResourceManager::ShaderManager::Shader +2024-Jun-08 23:23:28: ResourceManager::ShaderManager shader loaded: Simple3D +2024-Jun-08 23:23:28: ResourceManager::TexList Texture added: bt_box_yellow.bmp with id = 1 +2024-Jun-08 23:23:28: ResourceManager::TexList Texture added: bt_box_norm.bmp32 with id = 2 +2024-Jun-08 23:23:28: Lite model added successfully: models/bt_box_yellow.lm1 +2024-Jun-08 23:23:28: ResourceManager::TexList Texture added: bt_cone.bmp with id = 3 +2024-Jun-08 23:23:28: Lite model added successfully: models/bt_cone.lm1 +2024-Jun-08 23:23:28: Lite model added successfully: models/girl.lm1 +2024-Jun-08 23:23:29: Lite model added successfully: models/bonemodel.lm1 +2024-Jun-08 23:23:30: ResourceManager::TexList Texture added: out.bmp with id = 4 +2024-Jun-08 23:23:30: FrameManager:: frame buffer added: Skybox +2024-Jun-08 23:23:30: ResourceManager::TexList Texture added: normalmap.bmp with id = 6 +2024-Jun-08 23:23:30: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/posx.bmp +2024-Jun-08 23:23:30: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/negx.bmp +2024-Jun-08 23:23:30: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/posy.bmp +2024-Jun-08 23:23:30: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/negy.bmp +2024-Jun-08 23:23:30: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/posz.bmp +2024-Jun-08 23:23:30: Going to add texture: C:\Work\OldProjects\ho3\resources\../resources/negz.bmp +2024-Jun-08 23:23:30: ResourceManager::TexList texture added succesfuly: posx.bmp +2024-Jun-08 23:23:30: FrameManager:: frame buffer added: ScreenBlur +2024-Jun-08 23:23:30: FrameManager:: frame buffer added: ShadowBufferGlobal +2024-Jun-08 23:23:30: FrameManager:: frame buffer added: ShadowBufferLocal diff --git a/Template/main.cpp b/Template/main.cpp index 65fbca6..6d658d3 100644 --- a/Template/main.cpp +++ b/Template/main.cpp @@ -10,38 +10,49 @@ cardinal CONST_CUBEMAP_UPDATE_INTERVAL = 5000; void TMyApplication::DrawToCubemap() { - Renderer->PushPerspectiveProjectionMatrix(pi/2, 1.0, 1, 1000); Renderer->PushShader("Directlight"); Renderer->SwitchToCubemapBuffer("Skybox",0); - Renderer->SetGlPosXView(); + Renderer->SetGlPosXView(true); DrawSceneWithoutWater(); + //glClearColor() + //glClearColor(1.0f, 0.0f, 0.0f, 1.0f); + //glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); Renderer->SwitchToCubemapBuffer("Skybox",1); - Renderer->SetGlNegXView(); + Renderer->SetGlNegXView(true); + //glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + //glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); DrawSceneWithoutWater(); Renderer->SwitchToCubemapBuffer("Skybox",2); - Renderer->SetGlPosYView(); + Renderer->SetGlPosYView(true); DrawSceneWithoutWater(); + //glClearColor(0.0f, 1.0f, 0.0f, 1.0f); + //glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); Renderer->SwitchToCubemapBuffer("Skybox",3); - Renderer->SetGlNegYView(); + Renderer->SetGlNegYView(true); + //glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + //glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); DrawSceneWithoutWater(); Renderer->SwitchToCubemapBuffer("Skybox",4); - Renderer->SetGlPosZView(); + Renderer->SetGlPosZView(true); DrawSceneWithoutWater(); + //glClearColor(0.0f, 0.0f, 1.0f, 1.0f); + //glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); + Renderer->SwitchToCubemapBuffer("Skybox",5); - Renderer->SetGlNegZView(); + Renderer->SetGlNegZView(true); + //glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + //glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); DrawSceneWithoutWater(); Renderer->SwitchToScreen(); Renderer->PopShader(); - - Renderer->PopProjectionMatrix(); } void TMyApplication::DrawToShadowMap() @@ -74,17 +85,18 @@ void TMyApplication::DrawWaterSurface() glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["normalmap.bmp"]); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_CUBE_MAP, ResourceManager->FrameManager.GetFrameTexture("Skybox")); + RenderUniformMatrix3fv(CONST_STRING_MODELROTATEMATRIX_UNIFORM, false, (float*)IdentityMatrix.m); + RenderUniform3fv(CONST_STRING_MODELTRANSLATEVECTOR_UNIFORM, (float*)ZeroVec3.v); + + EnableVertexAttribArray("vPosition"); + EnableVertexAttribArray("vTexCoord"); + + //Renderer->DrawTriangleList(TriangleList); + DrawVertexDataStruct(waterVertexDataStruct); + + DisableVertexAttribArray("vPosition"); + DisableVertexAttribArray("vTexCoord"); - glBegin(GL_POLYGON); - glTexCoord2f(2, 2); - glVertex3f(20, 0, 20); - glTexCoord2f(2, 0); - glVertex3f(20, 0, -20); - glTexCoord2f(0, 0); - glVertex3f(-20, 0, -20); - glTexCoord2f(0, 2); - glVertex3f(-20, 0, 20); - glEnd(); Renderer->PopShader(); } @@ -92,6 +104,7 @@ void TMyApplication::DrawWaterSurface() void TMyApplication::DrawCubemap() { Renderer->PushShader("Env"); + //Renderer->SetGLCamAngleView(); Renderer->SetGLCamAngleView(); //Renderer->LoadIdentity(); RenderUniformMatrix3fv(CONST_STRING_MODELROTATEMATRIX_UNIFORM, false, (float*)IdentityMatrix.m); @@ -296,6 +309,36 @@ void TMyApplication::InnerInit() cubemapVertexDataStruct.RefreshVBO(); + + + /* + glBegin(GL_POLYGON); + glTexCoord2f(2, 2); + glVertex3f(20, 0, 20); + glTexCoord2f(2, 0); + glVertex3f(20, 0, -20); + glTexCoord2f(0, 0); + glVertex3f(-20, 0, -20); + glTexCoord2f(0, 2); + glVertex3f(-20, 0, 20); + glEnd();*/ + + waterVertexDataStruct.PositionData.push_back({ -20, 0, -20 }); + waterVertexDataStruct.PositionData.push_back({ 20, 0, -20 }); + waterVertexDataStruct.PositionData.push_back({ 20, 0, 20 }); + + waterVertexDataStruct.PositionData.push_back({ -20, 0, -20 }); + waterVertexDataStruct.PositionData.push_back({ 20, 0, 20 }); + waterVertexDataStruct.PositionData.push_back({ -20, 0, 20 }); + + waterVertexDataStruct.TexCoordData.push_back({ 0.0, 0.0 }); + waterVertexDataStruct.TexCoordData.push_back({ 2.0, 0.0 }); + waterVertexDataStruct.TexCoordData.push_back({ 2.0, 2.0 }); + + waterVertexDataStruct.TexCoordData.push_back({ 0.0, 0.0 }); + waterVertexDataStruct.TexCoordData.push_back({ 2.0, 2.0 }); + waterVertexDataStruct.TexCoordData.push_back({ 0.0, 2.0 }); + waterVertexDataStruct.RefreshVBO(); } @@ -321,45 +364,28 @@ void TMyApplication::InnerDraw() //Renderer->SwitchToCubemapBuffer("Skybox", 0); //Renderer->SetGlPosXView(); //DrawSceneWithoutWater(); - if (view == 6) + + //DrawCubemap(); + + if (view % 3 == 0) + { + //DrawCubemap(); + Renderer->SetGlPosXView(); + DrawSceneWithoutWater(); + } + else if (view % 3 == 1) { DrawCubemap(); } else { - - Renderer->PushPerspectiveProjectionMatrix(pi / 2, 1.0, 1, 1000); - if (view == 0) - { - Renderer->SetGlNegZView(); - } - else if (view == 1) - { - Renderer->SetGlNegYView(); - } - else if (view == 2) - { - Renderer->SetGlPosXView(); - } - else if (view == 3) - { - Renderer->SetGlNegXView(); - } - else if (view == 4) - { - Renderer->SetGlPosZView(); - } - else if (view == 5) - { - Renderer->SetGlPosYView(); - } DrawSceneWithoutWater(); - Renderer->PopProjectionMatrix(); } - //DrawCubemap(); - Renderer->PopShader(); + + + //DrawWaterSurface(); /* diff --git a/Template/main.h b/Template/main.h index dd716b8..83a251c 100644 --- a/Template/main.h +++ b/Template/main.h @@ -42,6 +42,7 @@ class TMyApplication : public SE::TApplication cardinal cubemapTexture; VertexDataStruct cubemapVertexDataStruct; + VertexDataStruct waterVertexDataStruct; public: diff --git a/resources/shaders/env.fragment b/resources/shaders/env.fragment index 96dfd4a..8b904db 100644 --- a/resources/shaders/env.fragment +++ b/resources/shaders/env.fragment @@ -4,6 +4,10 @@ varying vec3 dir; void main(){ gl_FragColor = textureCube(Env, normalize(dir)); + //if (dir.z < 0) + //{ + // gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); + //} //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); } \ No newline at end of file diff --git a/resources/shaders/env.vertex b/resources/shaders/env.vertex index d4a4d03..5ca50fa 100644 --- a/resources/shaders/env.vertex +++ b/resources/shaders/env.vertex @@ -10,5 +10,5 @@ void main(){ vec4 realVertexPos = vec4(ModelRotateMatrix * vPosition.xyz + ModelTranslateVector, 1.0); gl_Position = ProjectionMatrix * realVertexPos; - dir = -vPosition; + dir = vPosition; } \ No newline at end of file diff --git a/resources/shaders/water.fragment b/resources/shaders/water.fragment index 6ac22f2..cff3e6e 100644 --- a/resources/shaders/water.fragment +++ b/resources/shaders/water.fragment @@ -4,13 +4,20 @@ uniform vec3 CamPos; uniform float WaterTimer; +varying vec2 texCoord; +varying vec3 vertexPos; varying vec3 camVec; void main() { - vec2 texCoord = gl_TexCoord[0].st; - + vec3 camVec2 = normalize(camVec); + + vec4 reflectColor = textureCube(Env, camVec2); + + gl_FragColor = vec4(reflectColor.xyz, 1.0f); + + /* mat3 rot; rot[0] = vec3(0.0,0.0,1.0); @@ -29,9 +36,9 @@ void main() vec3 NVecReflect = normalize(rot * (NVec1 + NVec2) + vec3(0,8,0)); vec3 NVecRefract = normalize(rot * (NVec1 + NVec2)); - vec3 dir1 = reflect((camVec),NVecReflect); - //vec3 dir2 = refract((camVec),NVecRefract,0.9); - vec3 dir2 = reflect((camVec),NVecReflect); + vec3 dir1 = reflect((camVec2),NVecReflect); + //vec3 dir2 = refract((camVec2),NVecRefract,0.9); + vec3 dir2 = reflect((camVec2),NVecReflect); dir2.y = - dir2.y; vec4 reflectColor = textureCube(Env, dir1); @@ -39,7 +46,8 @@ void main() vec4 texColor = reflectColor*0.2 + refractColor*0.8; - gl_FragColor = vec4(texColor.xyz, 1.0f); + gl_FragColor = vec4(texColor.xyz, 1.0f);*/ + } \ No newline at end of file diff --git a/resources/shaders/water.vertex b/resources/shaders/water.vertex index 75111d6..f3d82c8 100644 --- a/resources/shaders/water.vertex +++ b/resources/shaders/water.vertex @@ -1,13 +1,26 @@ +attribute vec3 vPosition; +attribute vec2 vTexCoord; + +uniform mat4 ProjectionMatrix; +uniform mat3 ModelRotateMatrix; +uniform vec3 ModelTranslateVector; uniform vec3 CamPos; +varying vec2 texCoord; +varying vec3 vertexPos; varying vec3 camVec; void main() { - gl_Position = ftransform(); + vec4 realVertexPos = vec4(ModelRotateMatrix * vPosition.xyz + ModelTranslateVector, 1.0); + gl_Position = ProjectionMatrix * realVertexPos; - gl_TexCoord[0] = gl_MultiTexCoord0; + texCoord = vTexCoord; - camVec = (gl_Vertex.xyz - CamPos); + camVec = -(vPosition.xyz - CamPos); + + //camVec = vec3(0, 1, 0); + + //camVec.y = -camVec.y; } \ No newline at end of file