Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- For David M.
- float ct_trace(glm::vec3 from, glm::vec3 direction) {
- float distance_total = 0.0;
- int steps;
- for (steps = 0; steps < 64; steps++) {
- glm::vec3 p = from + distance_total * direction;
- float distance_sum = 9999.;
- glm::vec3 p_0 = p + glm::vec3(-3., 0., 0.);
- glm::vec3 p_1 = p + glm::vec3(3., 0., 0.);
- glm::vec3 p_2 = p + glm::vec3(0., 3., 0.);
- glm::vec3 p_3 = p + glm::vec3(0., -3., 0.);
- glm::vec3 p_4 = p + glm::vec3(0., .0, -3.);
- glm::vec3 p_5 = p + glm::vec3(0., .0, 3.);
- //float color_0 = ct_box(p_1, glm::vec3(1., 1., 1.));
- //float color_1 = ct_box(p_1, glm::vec3(1., 1., 1.));
- //float color_2 = ct_box(p_2, glm::vec3(1., 1., 1.));
- //float color_3 = ct_box(p_3, glm::vec3(1., 1., 1.));
- // float color_4 = ct_box(p_4, glm::vec3(1., 1., 1.));
- //float color_5 = ct_box(p_5, glm::vec3(1., 1., 1.));
- float color_0 = ct_torus(p_0, glm::vec2(1., 1.));
- float color_1 = ct_torus(p_1, glm::vec2(1., 1.));
- float color_2 = ct_torus(p_2, glm::vec2(1., 1.));
- float color_3 = ct_torus(p_3, glm::vec2(1., 1.));
- float color_4 = ct_torus(p_4, glm::vec2(1., 1.));
- float color_5 = ct_torus(p_4, glm::vec2(1., 1.));
- float color_6 = ct_box(p, glm::vec3(2., 2., 2.)); //ct_sphere_distance(p, 2.);
- float color_7 = ct_sphere_distance(p, 1.0);
- distance_sum = glm::min(distance_sum, color_0);
- distance_sum = glm::min(distance_sum, color_1);
- distance_sum = glm::min(distance_sum, color_2);
- distance_sum = glm::min(distance_sum, color_3);
- distance_sum = glm::min(distance_sum, color_4);
- distance_sum = glm::min(distance_sum, color_5);
- distance_sum = glm::min(distance_sum, color_6);
- //distance_sum = glm::min(distance_sum, color_7);
- distance_total += distance_sum;
- if (distance_sum < .001)
- {
- break;
- }
- }
- return 1.0 - float(steps) / float(64);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement