2011-07-23 9 views
11

Mỗi lần tôi say rượu, tôi thấy một câu hỏi không được trả lời. Và nó làm cho tôi tự hỏi những gì nó thực sự được thiết kế để làm.chức năng glwidth glwidth thực sự được sử dụng để làm gì?

Đọc tài liệu là: abs (dFdx (p)) + abs (dFdy (p)).

Vì vậy, đây không phải là lựa chọn mip cổ điển tối đa (dx, dy). Có phải lựa chọn thay thế mip không? Nhưng tôi không tìm thấy một trường hợp abs (dx) + abs (dy) sẽ tốt hơn. Phải có một số giấy siggraph hoặc thuật toán phổ biến tôi hoàn toàn mất tích sử dụng chức năng đó. Và nó phải thực sự phổ biến bởi vì nó biến nó thành GLSL. Điều duy nhất tôi có thể nghĩ đến là một số bộ lọc bài 2d mà tôi đang thiếu.
Nhưng sao? Tôi chắc rằng ai đó ở đây biết và một khi bạn thấy nó rõ ràng. Vì vậy: Thuật toán nào sử dụng abs (dx) + abs (dy)?

+1

Tính năng lọc bài đăng 2D mà bạn đề cập là một ví dụ phù hợp thực sự. – Bart

+0

nhưng bộ lọc nào? – starmole

+4

Hãy chọn. Chống răng cưa, phát hiện cạnh, lọc không đẳng hướng. Trên thực tế, sau khi một số Google-ing tôi tìm thấy một ví dụ sử dụng [ở đây] (http://prideout.net/blog/?p=22), nơi nó được sử dụng để chống răng cưa của một bóng đổ bóng celer. – Bart

Trả lời

9

Bạn thực sự khá tiền với đề xuất lọc 2D. Bất kỳ bộ lọc nào dựa vào một số loại chỉ số nào đó cho tỷ lệ thay đổi giữa pixel và những người hàng xóm có thể hưởng lợi từ chức năng này.

Ví dụ sẽ là chống răng cưa, phát hiện cạnh, lọc không đẳng hướng. Tôi chắc rằng có nhiều ví dụ mà người ta có thể nghĩ đến.

Dường như từ câu hỏi và nhận xét của bạn mà bạn mong đợi có lý do tâm trí để chức năng này được đưa vào GLSL. Tôi sẽ chỉ nói rằng đó là một chức năng hữu ích để có. Có lẽ ai đó có kiến ​​thức chuyên sâu hơn về nội bộ thực tế của chức năng này có thể cung cấp thêm chi tiết về những gì xảy ra sau hậu trường (tức là nếu có bất kỳ cải thiện hiệu suất nào so với viết tay tương đương với dFdx và dFdy).

+0

Cảm ơn bạn đã trả lời. Nó có ý nghĩa. Những gì tôi đang tìm kiếm thực sự là một cái gì đó "mindblowing". Ví dụ xem xét chức năng tiếng ồn GLSL, tôi biết tại sao nó lại ở đó, tại sao nó cần được điều khiển bởi đầu vào vv Nhưng chỉ vì tôi biết về tiếng ồn Perlin trước đây! Vì vậy, tôi loại giả định chức năng này là quan trọng tương tự như trong một số thuật toán tôi chỉ không biết về. Nhưng với tuổi của câu hỏi và không ai trả lời với một liên kết siggraph bạn có lẽ đúng: Đó là một phím tắt hữu ích, dễ thực hiện và thi đua.Dù sao đi nữa, cảm ơn sự kiên nhẫn và xin lỗi nếu tôi có vẻ chán nản một chút :) – starmole

+0

Đây là một ví dụ đẹp về bóng đổ bằng cách sử dụng băng thông: [địa hình đường viền] (http://www.gamedev.net/topic)/529926-địa hình-đường viền-đường-sử dụng-pixel-shader /) – wil

3

đây là tổng đạo hàm cho hàm DF = dF/dx * dx + dF/dy * dy. fWidth> = DF hoặc bằng từ fWidth là sự thay đổi tối đa có thể có trong một biến phân đoạn F, giữa bất kỳ điểm ảnh hiện tại nào lân cận. tức là 8 pixel xung quanh trong vùng lân cận 3x3.