add an extra body for testing. slightly better zoom behavior
This commit is contained in:
17
src/main.cpp
17
src/main.cpp
@@ -80,7 +80,7 @@ void scroll_callback(GLFWwindow* window, double xoffset, double yoffset)
|
||||
glm::vec4 k = camera_t[2];
|
||||
float d = yoffset;
|
||||
|
||||
camera_loc += k * (-d * glm::length(camera_loc) / 10);
|
||||
camera_loc += k * (d/10 * std::max(glm::length(camera_loc), 1.0f));
|
||||
|
||||
camera_t = glm::lookAt(camera_loc, focal_point, up);
|
||||
}
|
||||
@@ -138,6 +138,14 @@ int main() {
|
||||
return -1;
|
||||
b.shader = shader;
|
||||
b.pose = glm::translate(b.pose, glm::vec3(0, 0, 0));
|
||||
b.color = glm::vec4(0.5, 0, 0, 1);
|
||||
|
||||
body b2;
|
||||
if (!load_body(&b2, "Icosphere.obj"))
|
||||
return -1;
|
||||
b2.shader = shader;
|
||||
b2.pose = glm::translate(b.pose, glm::vec3(2, 0, 0));
|
||||
b2.color = glm::vec4(0, 0.5, 0, 1);
|
||||
|
||||
//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
//set_uniform(shader, "color", glm::vec4 { sin(time), sin(time + glm::radians(45.0f)), sin(time + glm::radians(90.0f)), 1.0 } / 2.0f);
|
||||
@@ -154,10 +162,11 @@ int main() {
|
||||
while (!glfwWindowShouldClose(window)) {
|
||||
process_input();
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
set_uniform(shader, "camera_t", camera_t);
|
||||
set_uniform(shader, "projection_t", projection_t);
|
||||
|
||||
set_uniform(b.shader, "projection_t", projection_t);
|
||||
set_uniform(b.shader, "camera_t", camera_t);
|
||||
draw_body(b);
|
||||
draw_body(b);
|
||||
draw_body(b2);
|
||||
|
||||
glfwSwapBuffers(window);
|
||||
glfwPollEvents();
|
||||
|
||||
@@ -7,10 +7,10 @@ in vec3 frag_pos;
|
||||
out vec4 frag_color;
|
||||
|
||||
void main() {
|
||||
vec3 dx = dFdx(frag_pos) * 100;
|
||||
vec3 dy = dFdy(frag_pos) * 100;
|
||||
vec3 dx = dFdx(frag_pos) * 500;
|
||||
vec3 dy = dFdy(frag_pos) * 500;
|
||||
vec3 N = normalize(cross(dFdx(frag_pos), dFdy(frag_pos)));
|
||||
frag_color = color + vec4(N/2, 1)/3;
|
||||
frag_color = color + vec4(N/2, 1)/2;
|
||||
//frag_color = vec4(length(dx), length(dy), length(dy), 1.0);
|
||||
//frag_color += color;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user