Skip to content
Snippets Groups Projects
Commit 8d0f1208 authored by Thomas Müller's avatar Thomas Müller
Browse files

NeRF: make rendering near distance configurable & default 0

parent 51e4107e
Branches
No related tags found
No related merge requests found
......@@ -145,6 +145,7 @@ public:
bool snap_to_pixel_centers,
const BoundingBox& render_aabb,
const Eigen::Matrix3f& render_aabb_to_local,
float near_distance,
float plane_z,
float aperture_size,
const Lens& lens,
......@@ -657,7 +658,8 @@ public:
bool render_with_lens_distortion = false;
Lens render_lens = {};
float rendering_min_transmittance = 0.01f;
float render_near_distance = 0.00f;
float render_min_transmittance = 0.01f;
float glow_y_cutoff = 0.f;
int glow_mode = 0;
......
......@@ -233,7 +233,7 @@ if __name__ == "__main__":
testbed.snap_to_pixel_centers = True
spp = 8
testbed.nerf.rendering_min_transmittance = 1e-4
testbed.nerf.render_min_transmittance = 1e-4
testbed.fov_axis = 0
testbed.fov = test_transforms["camera_angle_x"] * 180 / np.pi
......
......@@ -537,7 +537,9 @@ PYBIND11_MODULE(pyngp, m) {
.def_readwrite("render_with_lens_distortion", &Testbed::Nerf::render_with_lens_distortion)
.def_readwrite("render_distortion", &Testbed::Nerf::render_lens)
.def_readwrite("render_lens", &Testbed::Nerf::render_lens)
.def_readwrite("rendering_min_transmittance", &Testbed::Nerf::rendering_min_transmittance)
.def_readwrite("rendering_min_transmittance", &Testbed::Nerf::render_min_transmittance)
.def_readwrite("render_min_transmittance", &Testbed::Nerf::render_min_transmittance)
.def_readwrite("render_near_distance", &Testbed::Nerf::render_near_distance)
.def_readwrite("cone_angle_constant", &Testbed::Nerf::cone_angle_constant)
.def_readwrite("visualize_cameras", &Testbed::Nerf::visualize_cameras)
.def_readwrite("glow_y_cutoff", &Testbed::Nerf::glow_y_cutoff)
......
......@@ -720,6 +720,9 @@ void Testbed::imgui() {
accum_reset |= ImGui::InputFloat("f_theta p4", &m_nerf.render_lens.params[4], 0.f, 0.f, "%.5f");
}
}
accum_reset |= ImGui::SliderFloat("Near distance", &m_nerf.render_near_distance, 0.0f, 1.0f, "%.3f", ImGuiSliderFlags_Logarithmic | ImGuiSliderFlags_NoRoundToFormat);
accum_reset |= ImGui::SliderFloat("Min transmittance", &m_nerf.render_min_transmittance, 0.0f, 1.0f, "%.3f", ImGuiSliderFlags_Logarithmic | ImGuiSliderFlags_NoRoundToFormat);
ImGui::TreePop();
}
......
......@@ -1794,6 +1794,7 @@ __global__ void init_rays_with_payload_kernel_nerf(
bool snap_to_pixel_centers,
BoundingBox render_aabb,
Matrix3f render_aabb_to_local,
float near_distance,
float plane_z,
float aperture_size,
Lens lens,
......@@ -1866,7 +1867,7 @@ __global__ void init_rays_with_payload_kernel_nerf(
framebuffer[idx] = read_envmap(envmap_data, envmap_resolution, ray.d);
}
float t = fmaxf(render_aabb.ray_intersect(render_aabb_to_local * ray.o, render_aabb_to_local * ray.d).x(), NERF_RENDERING_NEAR_DISTANCE()) + 1e-6f;
float t = fmaxf(render_aabb.ray_intersect(render_aabb_to_local * ray.o, render_aabb_to_local * ray.d).x(), near_distance) + 1e-6f;
if (!render_aabb.contains(render_aabb_to_local * (ray.o + ray.d * t))) {
payload.origin = ray.o;
......@@ -1975,6 +1976,7 @@ void Testbed::NerfTracer::init_rays_from_camera(
bool snap_to_pixel_centers,
const BoundingBox& render_aabb,
const Matrix3f& render_aabb_to_local,
float near_distance,
float plane_z,
float aperture_size,
const Lens& lens,
......@@ -2009,6 +2011,7 @@ void Testbed::NerfTracer::init_rays_from_camera(
snap_to_pixel_centers,
render_aabb,
render_aabb_to_local,
near_distance,
plane_z,
aperture_size,
lens,
......@@ -2270,6 +2273,7 @@ void Testbed::render_nerf(CudaRenderBuffer& render_buffer, const Vector2i& max_r
m_snap_to_pixel_centers,
m_render_aabb,
m_render_aabb_to_local,
m_nerf.render_near_distance,
plane_z,
m_aperture_size,
lens,
......@@ -2309,7 +2313,7 @@ void Testbed::render_nerf(CudaRenderBuffer& render_buffer, const Vector2i& max_r
m_nerf.rgb_activation,
m_nerf.density_activation,
m_nerf.show_accel,
m_nerf.rendering_min_transmittance,
m_nerf.render_min_transmittance,
m_nerf.glow_y_cutoff,
m_nerf.glow_mode,
extra_dims_gpu,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment