48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
# ==============================================================================================================
|
|
# The following snippet demonstrates various camera properties
|
|
# ==============================================================================================================
|
|
|
|
import math
|
|
import torch
|
|
import numpy as np
|
|
from kaolin.render.camera import Camera
|
|
|
|
device = 'cuda'
|
|
|
|
camera = Camera.from_args(
|
|
eye=torch.tensor([4.0, 4.0, 4.0]),
|
|
at=torch.tensor([0.0, 0.0, 0.0]),
|
|
up=torch.tensor([0.0, 1.0, 0.0]),
|
|
fov=30 * np.pi / 180, # In radians
|
|
width=800, height=800,
|
|
dtype=torch.float32,
|
|
device=device
|
|
)
|
|
|
|
print(camera.width)
|
|
print(camera.height)
|
|
print(camera.lens_type)
|
|
|
|
print(camera.device)
|
|
camera = camera.cpu()
|
|
print(camera.device)
|
|
|
|
# Create a batched camera and view single element
|
|
camera = Camera.cat((camera, camera))
|
|
print(camera)
|
|
camera = camera[0]
|
|
print(camera)
|
|
|
|
print(camera.dtype)
|
|
camera = camera.half()
|
|
print(camera.dtype)
|
|
camera = camera.double()
|
|
print(camera.dtype)
|
|
camera = camera.float()
|
|
print(camera.dtype)
|
|
|
|
print(camera.extrinsics.requires_grad)
|
|
print(camera.intrinsics.requires_grad)
|
|
|
|
print(camera.to('cuda', torch.float64))
|