mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-12 02:45:34 +08:00
RaySamples contained fields for bin_starts and bin_ends. These are also stored in the frustums. This PR removes them from the RaySamples.
34 KiB
34 KiB
In [6]:
import torch
from pyrad.cameras.rays import RayBundle
from pyrad.graphs.modules import ray_sampler
from matplotlib import pyplot as plt
In [13]:
num_samples = 1000
near = 2
far = 5
train_stratified = False
samplers = {
"Uniform": ray_sampler.UniformSampler,
"Linear in Disparity": ray_sampler.LinearDisparitySampler,
"Square Root": ray_sampler.SqrtSampler,
"Log Sampler": ray_sampler.LogSampler,
}
for name, Sampler in samplers.items():
sampler = Sampler(num_samples=num_samples, train_stratified=train_stratified)
ray_bundle = RayBundle(
origins=torch.ones([1, 3]),
directions=torch.ones([1, 3]),
pixel_area=torch.ones([1, 1]),
nears=torch.ones([1, 1]) * near,
fars=torch.ones([1, 1]) * far,
)
samples = sampler.generate_ray_samples(ray_bundle)
samples.frustums.starts.shape
plt.hist(samples.frustums.starts[0,:,0], alpha=0.5, bins=100)
plt.xlabel("Distance")
plt.ylabel("# Samples")
plt.title(name)
plt.show()