Skip to content
Snippets Groups Projects
Commit 94c295c4 authored by Philip Trettner's avatar Philip Trettner
Browse files

live coding 5

parent 8ffd6b77
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <glow/common/scoped_gl.hh> #include <glow/common/scoped_gl.hh>
#include <glow/common/str_utils.hh> #include <glow/common/str_utils.hh>
#include <glow/data/TextureData.hh>
#include <glow/objects/Framebuffer.hh> #include <glow/objects/Framebuffer.hh>
#include <glow/objects/Texture2D.hh> #include <glow/objects/Texture2D.hh>
#include <glow/objects/TextureRectangle.hh> #include <glow/objects/TextureRectangle.hh>
...@@ -27,6 +28,15 @@ void LiveApp::init() ...@@ -27,6 +28,15 @@ void LiveApp::init()
mShaderTerrain = glow::Program::createFromFile(src_folder + "/terrain"); mShaderTerrain = glow::Program::createFromFile(src_folder + "/terrain");
mShaderOutput = glow::Program::createFromFile(src_folder + "/output"); mShaderOutput = glow::Program::createFromFile(src_folder + "/output");
mSkyBox = glow::TextureCubeMap::createFromData(glow::TextureData::createFromFileCube( //
src_folder + "/../../textures/posx.jpg", //
src_folder + "/../../textures/negx.jpg", //
src_folder + "/../../textures/posy.jpg", //
src_folder + "/../../textures/negy.jpg", //
src_folder + "/../../textures/posz.jpg", //
src_folder + "/../../textures/negz.jpg", //
glow::ColorSpace::sRGB));
mQuad = glow::geometry::Quad<>().generate(); mQuad = glow::geometry::Quad<>().generate();
mTargetColor = glow::TextureRectangle::create(1, 1, GL_RGB8); mTargetColor = glow::TextureRectangle::create(1, 1, GL_RGB8);
...@@ -77,7 +87,7 @@ void LiveApp::update(float elapsedSeconds) ...@@ -77,7 +87,7 @@ void LiveApp::update(float elapsedSeconds)
{ {
// TODO // TODO
auto const speed = 10.f; auto const speed = 50.f;
if (mKeyDownW) if (mKeyDownW)
cam.pos += cam.dir * elapsedSeconds * speed; cam.pos += cam.dir * elapsedSeconds * speed;
...@@ -160,6 +170,10 @@ void LiveApp::render(float elapsedSeconds) ...@@ -160,6 +170,10 @@ void LiveApp::render(float elapsedSeconds)
{ {
auto shader = mShaderOutput->use(); auto shader = mShaderOutput->use();
shader["uTargetColor"] = mTargetColor; shader["uTargetColor"] = mTargetColor;
shader["uTargetDepth"] = mTargetDepth;
shader["uSkyBox"] = mSkyBox;
shader["uInvProj"] = inv_proj;
shader["uInvView"] = inv_view;
GLOW_SCOPED(disable, GL_DEPTH_TEST); GLOW_SCOPED(disable, GL_DEPTH_TEST);
GLOW_SCOPED(disable, GL_CULL_FACE); GLOW_SCOPED(disable, GL_CULL_FACE);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <glow/objects/ArrayBuffer.hh> #include <glow/objects/ArrayBuffer.hh>
#include <glow/objects/Program.hh> #include <glow/objects/Program.hh>
#include <glow/objects/VertexArray.hh> #include <glow/objects/VertexArray.hh>
#include <glow/objects/TextureCubeMap.hh>
#include <vector> #include <vector>
...@@ -65,6 +66,8 @@ class LiveApp : public glow::glfw::GlfwApp ...@@ -65,6 +66,8 @@ class LiveApp : public glow::glfw::GlfwApp
glow::SharedTextureRectangle mTargetColor; glow::SharedTextureRectangle mTargetColor;
glow::SharedTextureRectangle mTargetDepth; glow::SharedTextureRectangle mTargetDepth;
glow::SharedTextureCubeMap mSkyBox;
int mTerrainSize = 128; int mTerrainSize = 128;
std::vector<float> mHeightMap; std::vector<float> mHeightMap;
......
uniform sampler2DRect uTargetColor; uniform sampler2DRect uTargetColor;
uniform sampler2DRect uTargetDepth;
uniform samplerCube uSkyBox;
uniform mat4 uInvProj;
uniform mat4 uInvView;
in vec2 vPosition;
out vec3 fColor; out vec3 fColor;
void main() void main()
{ {
vec4 near = vec4(vPosition * 2 - 1, -1, 1);
vec4 far = vec4(vPosition * 2 - 1, 1, 1);
near = uInvProj * near;
far = uInvProj * far;
near = uInvView * near;
far = uInvView * far;
near /= near.w;
far /= far.w;
vec3 V = (far - near).xyz;
float d = texture(uTargetDepth, gl_FragCoord.xy).x;
if (d == 1)
fColor = texture(uSkyBox, V).rgb;
else
fColor = texture(uTargetColor, gl_FragCoord.xy).rgb; fColor = texture(uTargetColor, gl_FragCoord.xy).rgb;
} }
in vec2 aPosition; in vec2 aPosition;
out vec2 vPosition;
void main() void main()
{ {
vPosition = aPosition;
gl_Position = vec4(aPosition * 2 - 1, 0, 1); gl_Position = vec4(aPosition * 2 - 1, 0, 1);
} }
THIS SKY WAS UPDATED AT THE 27TH
THE ORIG HAD SOME ERRORS
MIRAMAR
high res 1024^2 environment map
ships as TGA.
By Jockum Skoglund aka hipshot
hipshot@zfight.com
www.zfight.com
Stockholm, 2005 08 25
Modify however you like, just cred me for my work, maybe link to my page.
textures/negx.jpg

87.2 KiB

textures/negy.jpg

16.7 KiB

textures/negz.jpg

102 KiB

textures/posx.jpg

93.4 KiB

textures/posy.jpg

50.5 KiB

textures/posz.jpg

110 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment