2011-11-30 21 views
5

Tôi đã cố gắng để có được SDL FSAA với Multisampling làm việc, nhưng nó không muốn.SDL Multisampling

tôi bắt đầu với một cái gì đó đơn giản:

SDL_GL_SetAttribute (SDL_GL_MULTISAMPLEBUFFERS, 1); SDL_GL_SetAttribute (SDL_GL_MULTISAMPLESAMPLES, 2);

Nhưng tôi thực hiện các mục được liên kết và trả về 0 cho bộ đệm và 1 cho mẫu. (cả trước và sau SetVideo).

Tôi đã thử cả trên GeForce 280M của mình và nghi ngờ đó là sự cố trên thiết bị di động, đã thử trên 580 của tôi cũng không có may mắn.

Tôi đang chạy Windows 7 với trình điều khiển cập nhật.

Nếu tôi ép FSAA vào trong Bảng điều khiển NVidia, nó hoạt động rất tốt, nhưng dường như tôi không thể ứng dụng để kích hoạt nó.

Bất kỳ ý tưởng nào?

+0

FSAA là tính năng chống răng cưa toàn màn hình. Nó hiển thị ở độ phân giải cao và sau đó cân vảy xuống để hiển thị. MSAA là đa răng cưa chống răng cưa. Ở đây chỉ có bộ đệm độ sâu được tăng tỷ lệ và phần trăm các pixel sâu có thể nhìn thấy xác định độ mờ. FSAA với Multisampling không tồn tại. – Arne

Trả lời

1

Các chức năng đó phải trả về 0 hoặc -1. Họ không bao giờ nên trở lại 1. . . vì vậy tôi không biết những gì đang xảy ra ở đó. Là những giá trị trả lại cho một số chức năng khác?

Dù sao, điều quan trọng cần lưu ý là đây là các yêu cầu . Không có gì đảm bảo rằng họ là những gì bạn nghĩ. Đó là lý do tại sao chức năng SDL_GL_GetAttribute tồn tại (gọi nó là SAU SDL_SetVideoMode để xem những gì bạn có).

Bạn đang yêu cầu bộ đệm đa khớp với hai mẫu trên mỗi pixel. Đó không phải là một số lượng khổng lồ của multisampling. TRƯỚC KHI SDL_SetVideoMode, hãy thử các cách sau:

SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); 
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES,16); 

Và nếu bạn thấy các cạnh được làm nhẵn, đừng lo lắng về điều đó.

+0

Giá trị 0 và 1 là giá trị khi tôi gọi SDL_GL_GetAttribute sau khi tạo ngữ cảnh. Vì vậy, nó xuất hiện yêu cầu của tôi đã bị bỏ qua; Tôi không chắc tại sao. Tôi chỉ chọn 2, bởi vì tôi cho rằng đó là khả năng thành công nhất. –

+0

Tôi hiểu. Nó có thể là trường hợp mà thẻ không hỗ trợ 2. Tôi muốn sử dụng một cái gì đó lớn hơn. Thông thường, tôi khuyên bạn nên 4 hoặc 8, nhưng tôi đã sử dụng thành công 32 trên 580 (M) của tôi cho FBOs, và tôi sẽ ngạc nhiên nếu 16 không hoạt động. Trong mọi trường hợp, tôi sẽ lo lắng nhiều hơn về những gì bạn thấy. Nếu nó trông mềm mại và mượt mà, đừng lo lắng về những gì SDL_GL_GetAttribute (...) nói. – imallett

Các vấn đề liên quan