8

Tôi đang phát triển một ứng dụng iOS hình ảnh cong vênh với OpenGL ES 2.0.OpenGL ES 2.0 Các thuật toán chuyển đổi Vertex

Tôi có nắm bắt tốt về thiết lập, đường dẫn, v.v. và giờ đây đang chuyển sang toán học.

Vì trải nghiệm của tôi với cong vênh hình ảnh là không, tôi liên hệ với một số đề xuất thuật toán.

Hiện tại, tôi đang thiết lập các đỉnh ban đầu tại các điểm theo kiểu lưới, chia đều hình ảnh thành các hình vuông. Sau đó, tôi đặt thêm một đỉnh ở giữa mỗi ô vuông đó. Khi tôi vẽ các chỉ số, mỗi ô vuông chứa bốn hình tam giác trong hình dạng của một X. Xem hình dưới đây:

opengl es image vertex map

Sau khi chơi với photoshop một chút, tôi nhận thấy adobe sử dụng một thuật toán hơi phức tạp hơn đối với họ rối sợi dọc, nhưng một thuật toán đơn giản hơn nhiều cho sợi dọc tiêu chuẩn của chúng. Bạn nghĩ điều gì là tốt nhất cho tôi để áp dụng ở đây/sở thích cá nhân? Thứ hai, khi tôi di chuyển một đỉnh, tôi muốn áp dụng một chuyển đổi trọng số cho tất cả các đỉnh khác để làm mịn các cạnh (thay vì những gì tôi có dưới đây, nơi chỉ có các đỉnh được chọn được chuyển đổi). Tôi nên áp dụng loại thuật toán nào ở đây?

opengl es image warping

+0

im facine cùng một problem.did u nhận được giải pháp? Làm thế nào bạn đi với nó? Xin vui lòng giúp tôi –

+1

xin lỗi, nhưng nó đã được làm việc cho một nhà tuyển dụng vì vậy tôi không thể đưa ra các mã. thao tác các cấu trúc đỉnh trong phương pháp touchesmoved. khi bạn thao tác các đỉnh, gán cho chúng một trọng lượng dựa trên khoảng cách của chúng từ những điểm nhất định bạn đặt là "neo" và từ các bức tường của màn hình. neo có thể được đặt bất cứ nơi nào; ví dụ, tôi ghim các em học sinh để giữ cho mắt không di chuyển. nếu trọng số là 0, thì đỉnh không bị ảnh hưởng. nếu trọng số là 1, thì một phép biến đổi đầy đủ được áp dụng. new x = (chuyển đổi ngang * trọng lượng), new y = (chuyển đổi dọc * trọng lượng). v.v. –

+1

cảm ơn ............. –

Trả lời

4

Khi mỗi đỉnh được xử lý một cách độc lập bởi các vertex shader, nó không phải là dễ dàng để có các đỉnh ảnh hưởng đến vị trí của nhau. Tuy nhiên, vì không có nhiều đỉnh nên bạn nên thực hiện công việc trên CPU và cập nhật động các thuộc tính đỉnh của bạn trên mỗi khung hình.

Vì những gì bạn đang tìm kiếm là bề mặt của bạn hoạt động giống như tấm cao su khi các bộ phận của nó được kéo ra, làm thế nào để tiến hành và thực hiện mô phỏng động của tấm cao su? Có rất nhiều bài viết hay về mô phỏng vải ở chế độ 3D đầy đủ như Jeff Lander's. Ứng dụng của bạn có thể đơn giản hóa các kỹ thuật này. Trước đây tôi có implemented a simulation like this ở chế độ 3D. Tôi yêu cầu một lực lượng thu hút các đỉnh được tạo ra của tôi đến các vị trí lưới ban đầu của chúng. Bạn có thể có một lực tương tự thu hút các đỉnh tới các điểm ảnh mà chúng được tạo ra trước khi mô phỏng được bắt đầu. Điều này sẽ làm cho chúng trở lại trạng thái mặc định của chúng khi chỉ còn lại một mình và dần dần sẽ làm giảm ảnh hưởng của việc kéo của bạn ở các đỉnh xa hơn.

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