Tôi đang cố gắng triển khai sơ đồ truyền tải bát độ bằng cách sử dụng OpenGL và GLSL và muốn giữ dữ liệu ở dạng kết cấu. Trong khi có một số lượng lớn các định dạng để sử dụng cho dữ liệu kết cấu (float và số nguyên có kích thước khác nhau), tôi có một số vấn đề trong việc tìm ra cách để kiểm soát chính xác hơn các bit. Đây có thể là vấn đề chung, không chỉ áp dụng cho OpenGL và GLSL.Kiểm soát chính xác các bit kết cấu trong GLSL
Là ví dụ về đồ chơi đơn giản, giả sử rằng tôi có một texel chứa số nguyên 16 bit. Tôi muốn mã hóa hai boolean của 1 bit mỗi, một giá trị số nguyên 10 bit và sau đó một giá trị số nguyên 4 bit vào texel này. Có một kỹ thuật để mã hóa điều này khi tạo kết cấu không, sau đó giải mã các thành phần này khi lấy mẫu kết cấu bằng cách sử dụng trình đổ bóng GLSL?
Chỉnh sửa: Có vẻ như tôi đang thực sự tìm kiếm các kỹ thuật thao tác bit. Vì chúng dường như được hỗ trợ, tôi nên ổn sau khi nghiên cứu thêm.
Bạn đang hỏi làm thế nào để làm thao tác bit? –
Thao tác bit là có thể trong GLSL 1.3 (OpenGL 3.0), tôi không biết làm thế nào bạn có thể đọc int thô từ kết cấu trong GLSL tuy nhiên ... Texture2D trả về float vec4 –
@NicolBolas: Sau khi tìm kiếm thêm, có vẻ như Tôi là. Tôi đã không làm điều đó rất nhiều, vì vậy tôi không chắc chắn. Nếu GLSL hỗ trợ nó, tôi sẽ có thể tìm ra nơi để bắt đầu tìm hiểu về nó! –