Thay đổi giao diện nội dung dựa trên loại màn hình

Các thiết bị XR được hỗ trợ
Hướng dẫn này giúp bạn xây dựng các trải nghiệm cho những loại thiết bị XR sau.
Thiết bị đeo đầu XR
Kính thông minh XR có dây
Kính có màn hình
và âm thanh

Mỗi loại thiết bị lại có các đặc điểm hiển thị riêng. Ứng dụng của bạn có thể kiểm tra các đặc điểm hiển thị của thiết bị mà ứng dụng đang chạy để điều chỉnh nội dung nhằm đảm bảo nội dung đó được hiển thị theo cách tốt nhất có thể.

Các loại chế độ kết hợp hiển thị

Giá trị DisplayBlendMode mô tả cách hình ảnh được phủ lên trên thế giới thực. Công nghệ màn hình thay đổi hoàn toàn cách nội dung kỹ thuật số hoà vào thế giới thực.

Pha trộn phụ gia

Khi chế độ kết hợp hiển thị hiện tại là ADDITIVE, các pixel màu đen sẽ xuất hiện trong suốt. Chế độ này thường được dùng cho các thiết bị có thấu kính trong suốt, cho phép người dùng nhìn thấy trực tiếp môi trường xung quanh. Thiết bị chỉ có thể thêm ánh sáng vào bề mặt.

Cụ thể, điều này có nghĩa là nội dung ảo được thêm vào thế giới thực bằng cách thêm giá trị pixel cho từng thành phần màu đỏ, xanh lục và xanh dương. Kênh alpha bị bỏ qua và các pixel màu đen sẽ xuất hiện dưới dạng trong suốt.

Phối alpha

Khi chế độ kết hợp màn hình hiện tại là ALPHA_BLEND, nội dung ảo sẽ được thêm vào thế giới thực bằng cách kết hợp alpha các giá trị pixel dựa trên thành phần alpha. Đây là trường hợp của kính XR, sử dụng màn hình mờ để hiển thị nội dung. Độ sáng của mỗi pixel có thể được kiểm soát và các pixel có thể được đặt để hiển thị màu đen. Tuỳ thuộc vào môi trường không gian đang hoạt động, các pixel này có thể đại diện cho thế giới thực thông qua luồng video của camera hoặc môi trường kỹ thuật số.

Không có màn hình

Khi chế độ kết hợp hiển thị hiện tại là NO_DISPLAY, thiết bị không thể hiển thị bất kỳ pixel nào.

Lấy DisplayBlendMode hiện tại

Để kiểm tra DisplayBlendMode đang hoạt động, hãy sử dụng XrDevice.getPreferredDisplayBlendMode:

val preferredDisplayBlendMode =
    XrDevice.getCurrentDevice(session).getPreferredDisplayBlendMode()
when (preferredDisplayBlendMode) {
    ADDITIVE -> {
        // Virtual content is added to the real world by adding the pixel values for each of
        // Red, Green, and Blue components. Alpha is ignored. Black pixels will appear transparent.
    }

    ALPHA_BLEND -> {
        // Virtual content is added to the real world by alpha blending the pixel values based
        // on the Alpha component.
    }

    NO_DISPLAY -> {
        // Device doesn't have a display.
    }
}

Tìm hiểu thêm