Làm cách nào tôi có thể tạo một trình tạo bóng nở hiệu quả với GLSL?


12

Tôi đã tìm kiếm trên mạng các tài nguyên liên quan đến kết xuất hiệu ứng nở hoa bằng GLSL, nhưng không tìm thấy gì. Mặc dù hướng dẫn tại trang web của Philip Rideout là một tốt, nhưng nó hoạt động rất kém trên GPU Nvidia của tôi.

Bất cứ ai có thể hướng dẫn tôi làm thế nào tôi nên tiếp cận vấn đề này và xây dựng một triển khai khá hiệu quả của hiệu ứng nở hoa?


1
Ardor3d, một công cụ java 3d mã nguồn mở, đã triển khai trình tạo bóng. Vì nó là nguồn mở, bạn có thể dễ dàng kiểm tra xem (www.ardor3d.com). Nhưng về cơ bản, nó chỉ sao chép bộ đệm khung, giảm âm lượng, làm mờ, trộn phụ gia ..
Pjotterke

1
Bạn có loại GPU nào?

1
Rất quan trọng để cho chúng tôi biết bạn có GPU / card màn hình nào. +! @JoshPetrie
Patrick Hughes

Tôi có card đồ họa Nvidia GeForce GT 230M trên máy tính xách tay của mình
snape

6
@snape: Bạn đang sử dụng hạt nhân gaussian lớn đến mức nào và độ phân giải của FBO mờ lớn nhất của bạn là bao nhiêu? Cách dễ nhất để cải thiện hiệu suất là sử dụng kernel nhỏ hơn và FBO nhỏ hơn. (Theo cách của tôi, tôi làm mờ bên trong FBO độ phân giải 512x512, bất kể độ phân giải màn hình)
Trevor Powell

Câu trả lời:


3

Như Trevor đã đề cập trong bình luận của mình, lựa chọn duy nhất của bạn có thể là giảm kích thước hạt nhân của bạn hoặc thực hiện lấy mẫu tiếp theo.

Nhưng bạn đã đọc kỹ hướng dẫn mà bạn đã liên kết chưa? Có một mẹo về khai thác lọc phần cứng, mà tác giả gọi là phiên bản "lén lút". Đây có lẽ là mẹo tốt nhất bạn có thể sử dụng để tối ưu hóa hiệu ứng nở hoa mà không ảnh hưởng đến chất lượng của nó.


Vâng, tôi đọc kỹ hướng dẫn. Cuối cùng tôi đã cải thiện hiệu suất của nó bằng cách sử dụng kết xuất ngoại tuyến và tôi cũng chưa bật hỗ trợ phần cứng cho ứng dụng đồ họa trước đó.
snape

0

Tôi đã giải quyết một vấn đề rất giống nhau (làm mờ, nhưng bộ lọc nở đang mờ) với hai lần vượt qua.

Ở đường chuyền thứ nhất, tôi làm mờ theo hướng X và ở đường chuyền thứ hai, tôi làm mờ theo hướng Y.

Tôi không biết từ đâu tôi có thủ thuật này nhưng nó làm giảm độ phức tạp thời gian từ n² xuống còn 2n.

Điều này chỉ hoạt động đối với các hạt nhân không có bất kỳ hướng nào (vì vậy bạn không thể tối ưu hóa hạt nhân theo cách này).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.