cuốn sách gpt4 ai đã làm

Chi tiết kênh OpenGL Alpha?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 07:55:07 28 4
mua khóa gpt4 Nike

Tôi đã viết trình tải bitmap 24 bit đơn giản bằng OpenGL. Tôi mở tệp bitmap và đọc pixel của nó, sau đó tạo một mảng dữ liệu pixel RGB từ tệp đó và chuyển nó tới glDrawPixels().

câu hỏi:Tôi cần làm cho một số pixel nhất định của hình ảnh trở nên trong suốt nhưng tôi không chắc kênh alpha hoạt động như thế nào. Nếu tôi muốn thêm độ trong suốt, tôi không biết phải làm gì với glDrawPixels định dạngkiểu Loại tham số nào được truyền? Tôi đang cố gắng tạo tệp bitmap bằng kênh alpha, nhưng sau khi xem nội dung của tệp, byte thứ 4 (alpha) luôn bằng 0 và bản thân hình ảnh cũng không trong suốt.

Đây là cấu trúc tệp RGB của tôi:

cấu trúc bmpRGB{
ký tự không dấu R, G, B;
};

Tôi cần thêm gì để bao gồm Alpha? Khi sử dụng RGBA, tôi nên đặt những gì kiểu Tham số được truyền cho hàm? Tôi sẽ tự thêm kênh alpha khi điền vào mảng pixel, nhưng tôi cần biết cấu trúc dữ liệu cần thiết cho việc này.

Đây là những gì tôi làm bây giờ:

glDrawPixels(bmp->Width, bmp->Height, GL_RGB,GL_UNSIGNED_BYTE, bmp->Dữ liệu);

câu trả lời hay nhất

Thêm thành phần alpha và đặt địa điểm định dạng 设置为 GL_RGBA:

cấu trúc bmpRGB
{
ký tự không dấu R, G, B, A;
};

glDrawPixels(bmp->Width, bmp->Height, GL_RGBA, GL_UNSIGNED_BYTE, bmp->Dữ liệu);

Đảm bảo tính năng trộn được bật và định cấu hình.

Giới thiệu về c++ - Chi tiết kênh OpenGL Alpha? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/20865738/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress