Nỗ lực của tôi: Tôi tạo một kết cấu (có thể là một màu hoặc bằng cách khác), và sau đó kéo dài kết cấu đó từ mức tối thiểu 0
lên đến max
giá trị tối đa . Điều này hoạt động, nhưng khiến tôi khá không hài lòng vì một số lý do, một trong số đó là:
- Nếu tôi muốn các góc tròn khi thanh tiến triển, các cạnh bị đè bẹp hoặc kéo dài.
Câu hỏi của tôi: thực hành tốt nhất để đạt được kết quả thanh tiến trình là gì.
Suy nghĩ: Có cách nào để ngăn openGL vẽ bất cứ thứ gì từ một x
giá trị nhất định trở đi của một kết cấu không? Bằng cách đó tôi có thể vẽ kết cấu như nó sẽ xuất hiện, nhưng chỉ định giá trị củax
.
Tôi đã tìm thấy cái này liên kết có khả năng hữu ích.
Cập nhật
Tôi có ấn tượng rằng sử dụng bộ đệm stpson có thể là cách để đi. Bộ đệm stprint cho phép xác định bất kỳ khu vực nào bạn thích thông qua đó hình học được hiển thị khác có thể được cắt bớt. Rõ ràng có nhiều cách sử dụng khác cho bộ đệm stpson, ví dụ như phản xạ.
Giải pháp có thể
Cuối cùng tôi đã đạt được những gì tôi muốn bằng cách sử dụng bộ đệm stpson kết hợp với trình tạo bóng của riêng tôi, vì OpenGL ES 2.0 không hỗ trợ glAplhaTest
và các chức năng liên quan. Đây là hình ảnh của kết quả:
Các kết cấu được vẽ vào bộ đệm stpson là một hình chữ nhật dài với các góc tròn. Các kết cấu được vẽ vào bộ đệm hình ảnh chỉ là một hình chữ nhật màu đỏ kéo dài, mà như bạn có thể thấy được cắt bớt vào nội dung stprint. Bạn cần phải viết shader của riêng mình để xử lý kênh alpha vì OpenGL ES 2.0 không hỗ trợglAplhaTest
chức năng và liên quan.
Lưu ý - có lẽ đây không phải là ví dụ hình ảnh tốt nhất. Trong thực tế, giải pháp được trình bày cho phép bạn tiết lộ dần các nắp bên trái và bên phải, điều mà tôi không may không thể hiện trong hình trên.