summaryrefslogtreecommitdiff
path: root/src/glwidget.cpp
diff options
context:
space:
mode:
authorSebastian Park <SebPark03@gmail.com>2024-05-08 01:14:11 -0400
committerSebastian Park <SebPark03@gmail.com>2024-05-08 01:14:11 -0400
commit3d9a55316dbcfb2ca1f32f5554d1948fcabb5d74 (patch)
treef2ca9a05d094ab0a85a42f500fb9ea1cc6630240 /src/glwidget.cpp
parentdcab788763ff0af5918ca0c50538daa8bbfc84d8 (diff)
Do some scuffed caustics.
Diffstat (limited to 'src/glwidget.cpp')
-rwxr-xr-xsrc/glwidget.cpp52
1 files changed, 32 insertions, 20 deletions
diff --git a/src/glwidget.cpp b/src/glwidget.cpp
index 4c8696d..bac695c 100755
--- a/src/glwidget.cpp
+++ b/src/glwidget.cpp
@@ -68,8 +68,8 @@ void GLWidget::initializeGL()
// Enable depth-testing and backface culling
glEnable(GL_DEPTH_TEST);
- glEnable(GL_CULL_FACE);
- glCullFace(GL_BACK);
+// glEnable(GL_CULL_FACE);
+// glCullFace(GL_BACK);
// glShadeModel(GL_SMOOTH);
@@ -169,30 +169,38 @@ void GLWidget::initializeGL()
void GLWidget::paintCaustics() {
glClearColor(0.68f, 0.58f, 0.38f, 1);
+// glClearColor(0., 0., 0., 1);
glBindFramebuffer(GL_FRAMEBUFFER, m_fbo);
+// glBindFramebuffer(GL_FRAMEBUFFER, m_defaultFBO);
- // Task 15: Clear the screen here
-
- // TA SOLUTION
+ // Clear Screen
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable( GL_BLEND );
- // Bind the shader
- m_colorShader->bind();
+// // Bind the shader
+// m_colorShader->bind();
- // Task 16: Bind your VAO here
+//// m_colorShader->setUniform("asdf", m_arap.minCorner[0], m_arap.maxCorner[0]);
+//// // Bind VAO
+// glBindVertexArray(m_floor_vao);
- // TA SOLUTION
- glBindVertexArray(m_floor_vao);
-
- // Task 17: Draw your VAO here
+//// // Draw the VAO
+// glDrawArrays(GL_TRIANGLES, 0, 3);
- // TA SOLUTION
- glDrawArrays(GL_TRIANGLES, 0, 3);
-
- // Task 18: Unbind your VAO here
+ m_colorShader->bind();
+ //
+ m_colorShader->setUniform("proj", m_camera.getProjection());
+ m_colorShader->setUniform("view", m_camera.getView());
+ Eigen::Matrix4f inverseView = m_camera.getView().inverse();
+ m_colorShader->setUniform("inverseView", inverseView);
+ //
+ m_colorShader->setUniform("widthBounds", m_arap.minCorner[0], m_arap.maxCorner[0]);
+ m_colorShader->setUniform("lengthBounds", m_arap.minCorner[2], m_arap.maxCorner[2]);
+ m_arap.draw(m_colorShader, GL_TRIANGLES);
- // TA SOLUTION
+ // Unbind the VAO
glBindVertexArray(0);
// Unbind the shader
@@ -309,9 +317,9 @@ void GLWidget::paintGL()
glBindFramebuffer(GL_FRAMEBUFFER, m_defaultFBO);
// return;
// paintTexture(m_ground_texture, false);
-// glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-// glEnable( GL_BLEND );
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable( GL_BLEND );
m_defaultShader->bind();
m_defaultShader->setUniform("proj", m_camera.getProjection());
@@ -345,6 +353,10 @@ void GLWidget::resizeGL(int w, int h)
{
glViewport(0, 0, w, h);
m_camera.setAspect(static_cast<float>(w) / h);
+ glDeleteTextures(1, &m_fbo_texture);
+ glDeleteRenderbuffers(1, &m_fbo_renderbuffer);
+ glDeleteFramebuffers(1, &m_fbo);
+ makeFBO();
}
// ================== Event Listeners