Tôi có một số kinh nghiệm lập trình hình học và tính toán shader - nhưng không bao giờ tự phiêu lưu trong việc thực sự chơi với các shader mảnh. Hiện tại, tôi đang cố gắng để hiểu rõ hơn về cách họ làm việc và tiềm năng của họ. Một trong những điều tôi đã đọc ở nhiều nơi là một đoạn (tức là pixel màn hình) không thể vượt ra ngoài chính nó trong shader mảnh. Điều đó có nghĩa là, một đoạn nhất định được lặp đi lặp lại chỉ có thể ảnh hưởng đến chính nó.
Do đó, và vì mục đích học tập, tôi muốn biết liệu những điều sau đây có khả thi hay không (và nếu có, làm thế nào, trong các dòng chung, nó có thể đạt được không). Giả sử chúng ta có, vì đơn giản, một lưới điểm chỉ gồm hai đỉnh (nằm trong không gian Thế giới 3D). Chúng ta có thể lập trình một shader theo cách sao cho mỗi hai đỉnh này sẽ được vẽ trên màn hình ở vị trí WorldToViewport chính xác của chúng, nhưng cũng có một vòng tròn xung quanh mỗi bán kính = R cũng được vẽ trong các pixel xung quanh ngay cả khi chúng mở rộng ngoài lưới ban đầu mà shader được gắn vào? Giống như trong hình bên dưới (trong đó hình vuông màu đỏ ở giữa tâm của các vòng tròn biểu thị các đỉnh được vẽ trên màn hình):
Nếu điều đó là có thể, một shader cũng có thể được lập trình theo cách mà các vòng tròn vượt ra ngoài các đỉnh ảnh hưởng đến màu sắc (RGBA) của nhau không? Giống như trong hình dưới đây:
Như tôi đã nói, nếu đây là những điều có thể, tôi rất thích nghe một chút về cách đạt được một điều như vậy - về mặt khái niệm hoặc thực tế. Nó được thực hiện trong shader mảnh, hoặc phải được tính toán trước ở các shader đỉnh hoặc hình học? Làm thế nào để tính toán và vượt qua "các mảnh bổ sung" vượt ra ngoài các mảnh bị chiếm bởi thân lưới?