Rendering how I want for now
This commit is contained in:
@@ -6,28 +6,22 @@ const CAMERA_PIXEL_SCALE = 1.0
|
||||
|
||||
@export var camera:Camera3D = null
|
||||
@export var target:Node3D = null
|
||||
@export var offset:Vector3 = Vector3(0, 0, 12)
|
||||
|
||||
var angle = 0.0
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if !camera || !target:
|
||||
return
|
||||
|
||||
# Follow target
|
||||
# camera.global_transform.origin = target.global_transform.origin
|
||||
|
||||
# I tried a few things but this is most consistent for both backbuffer and
|
||||
# framebuffer viewports.
|
||||
var viewportHeight = get_viewport().get_visible_rect().size.y;
|
||||
var unitScale = CAMERA_PIXEL_SCALE * CAMERA_PIXELS_PER_UNIT;
|
||||
# # Spin around origin.
|
||||
# var rotation_speed = 1 # Radians per second
|
||||
# angle += rotation_speed * delta
|
||||
# var radius = 3.0
|
||||
# var offset = Vector3(radius * sin(angle), 2.0, radius * cos(angle))
|
||||
# camera.global_transform.origin += offset
|
||||
|
||||
var z:float = (
|
||||
tan((deg_to_rad(180) - deg_to_rad(camera.fov)) / 2.0) *
|
||||
(viewportHeight / 2.0)
|
||||
) / unitScale;
|
||||
|
||||
var look = target.global_position;
|
||||
var position = offset + look;
|
||||
|
||||
camera.look_at_from_position(
|
||||
Vector3(position.x, position.y + z, position.z),
|
||||
look
|
||||
);
|
||||
|
||||
pass
|
||||
# # Look at target
|
||||
# camera.look_at(target.global_transform.origin, Vector3.UP)
|
||||
|
||||
Reference in New Issue
Block a user