Sơ đồ phân chia tam giác này được gọi là gì?


7

Tôi đã nghĩ đến một phân chia tam giác cho mục đích tam giác trơn tru (không xuất hiện) theo thời gian trên bay. Tôi nghĩ rằng rất có thể chương trình này đã được phát minh và có tên nhưng dường như tôi có thể tìm thấy nó.

Phân chia được thực hiện trên cơ sở cạnh tam giác. Đối với mỗi cạnh dài hơn một ngưỡng nhất định, giả sử 1cm trên màn hình (tức là không gian được chiếu), cạnh đó có hai điểm mới cách nhau một khoảng cách (1cm). Các cạnh ở giữa các điểm mới sau đó được hoàn thành và không cần phân chia thêm. Do đó, có tới sáu điểm mới được tạo từ phân chia phụ, nhưng nó có thể chỉ là một cạnh tạo ra hai điểm mới. Từ các điểm tam giác được hình thành và phân chia phụ được thực hiện đệ quy cho đến khi tất cả các cạnh ngắn hơn ngưỡng.

Tạo hai điểm dọc theo cạnh cách nhau một ngưỡng rất có ý nghĩa để phân chia được trơn tru theo thời gian. Tôi không thể thấy Loop hay Catmull Clark đang làm điều này.

Tôi có lẽ nên đề cập đến việc tôi sử dụng nó thành công cho các lưới cartesian trong các hình chiếu cực. Nói một cách chính xác hai điểm được tạo dọc theo một cạnh có thể có hoặc không nằm trên đường được chiếu ban đầu.

Vậy nó được gọi là gì?

Giải trình

Vì vậy, tôi đoán rằng tôi phải giải thích một vài điều về các hệ tọa độ cartesian trong các phép chiếu cực.

Một ví dụ điển hình của hệ tọa độ cực là một trái đất phẳng. Trái đất có thể trông như thế này trong một hệ thống cartesian với một cái bàn lớn ở trên nó: trái đất

Một hệ tọa độ cực có thể có trục x được định nghĩa là góc từ tâm trái đất đến tọa độ cartesian cho một mặt phẳng dùng để chiếu trái đất. Trục y sau đó là độ cao, từ bề mặt trái đất hoặc thẳng thừng là khoảng cách từ tâm trái đất. Một phiên bản cực được chiếu của hình ảnh trên được đưa ra mô tả của tôi sẽ trông như thế này (với giả định trái đất là hình cầu, mà nó không ...):

cực bắc

(xin hãy kiên nhẫn với tôi không phải là một nghệ sĩ tuyệt vời.)

Như bạn có thể thấy cái bàn bây giờ bị bẻ cong bởi vì ở giữa nó gần trung tâm trái đất hơn ở các cạnh (phóng đại, tôi biết).

Nếu không có phân chia phụ, bảng sẽ vẫn phẳng trong chế độ xem cực, độ cao của nó sẽ bị sai lệch. Một đối tượng điểm trên đầu bảng theo tọa độ cartesian có thể ở dưới nó trong chế độ xem cực. Phân chia tam giác nhằm giảm bớt lỗi cho đến khi nó "đủ nhỏ". Tôi đo lường điều này bằng độ dài dự kiến ​​trên màn hình bởi vì nó rẻ và có sự tương ứng tốt với các yêu cầu chất lượng của tôi, nhưng các phương án khác sẽ làm tốt hoặc tốt hơn tùy thuộc vào các thuộc tính cực, ví dụ như bạn quan tâm đến độ cao chính xác ở xa bề mặt trái đất.

Như bạn có thể nhận ra lỗi trở nên càng lớn thì đối tượng càng lớn và càng gần với điểm gốc.

Biết một số chi tiết của thuật toán.

Đây là một hình tam giác (theo tọa độ cartesian) với cạnh màu đỏ và màu xanh lá cây dài ở chế độ xem cực , tức là màu đỏ rất gần gốc cực, màu xanh lá cây không quá gần và màu đen khá xa:

nhập mô tả hình ảnh ở đây

Và đây là cách hình tam giác sẽ được hình thành:

nhập mô tả hình ảnh ở đây

Khi các điểm mới được tạo tọa độ cartesian của chúng là tọa độ dọc theo cạnh ban đầu. Các tam giác mới được đưa vào thuật toán một lần nữa và lặp lại cho đến khi sai số đủ nhỏ. Trong hình trên, người ta có thể nghi ngờ cạnh màu đỏ nên được phân vùng ít nhất một lần nữa.

Điểm trong việc tạo hai điểm kiểm soát là để có được hành vi khớp cạnh mà không cần thêm thông tin cạnh. Việc chia hai hình tam giác liền kề (hoặc đường cho vấn đề đó) được đảm bảo có các điểm mới trên cùng một vị trí với cùng thông tin chính xác.

Đặc điểm chính ở đây là các tam giác mới không vượt qua giữa tam giác ban đầu vì điều này sẽ gây ra quá nhiều sửa lỗi từ khung này sang khung khác vì lỗi lớn nhất nằm ở giữa các điểm kiểm soát. Các điểm gần với điểm kiểm soát sẽ được sửa ít nhất và do đó đưa ra mức hiệu chỉnh ít nhất để làm cho lỗi đủ nhỏ. Điều này rất quan trọng để phóng to mượt mà trong bất kỳ trục hoặc thậm chí chuyển động của các đối tượng được chiếu.

Bố cục tam giác ổn định cho dù cạnh nào quá dài.

Đệ quy đầu tiên theo chiều rộng là cách tốt hơn để phân chia phụ bị giới hạn bởi thời gian hoặc bộ nhớ vì việc khớp cạnh được đảm bảo ngay cả đối với phân chia phụ bị gián đoạn / một phần.


4
Một số sơ đồ hoặc ảnh chụp màn hình về những gì bạn muốn nói có thể hữu ích. Khi bạn nói hai điểm mới cách nhau một ngưỡng, điều đó có nghĩa là chúng không cách đều nhau dọc theo cạnh? Tôi hoàn toàn không hiểu làm thế nào giúp ổn định thời gian.
Nathan Reed

Nghe có vẻ hơi giống ROAM, nhưng thật khó để nói ... youtube.com/watch?v=PPjWW8uPp3o
Alan Wolfe

@NathanReed Đã thêm giải thích và hình ảnh.
Andreas

@AlanWolfe Tôi chỉ nói rằng thuật toán này nằm trong cùng một công viên bóng với một vài điểm khác biệt. Tìm kiếm tốt :-)
Andreas

Câu trả lời:


4

Thay vì chia nhỏ cho đến khi đạt được độ dài cạnh nhất định trên màn hình, bạn nên xem bài viết của GPU Gems 2 " Điều chỉnh thích nghi các bề mặt phân khu với Bản đồ dịch chuyển " của Michael Bunnell. Nó sử dụng thử nghiệm độ phẳng cạnh để điều chỉnh một cách thích nghi hình học dẫn đến chất lượng tốt hơn với cùng số lượng hình tam giác.

Với chiến lược xử lý thích ứng hiện tại của bạn, cuối cùng bạn sẽ tách các bề mặt phẳng, điều này làm tăng số lượng tam giác của bạn một cách không cần thiết. Điều này đặc biệt tệ trên GPU vì nó tăng khả năng rút tiền gấp bốn lần cho các microtriang kết quả.

Về câu hỏi của bạn cho tên của sơ đồ phân khu của bạn, tôi không nghĩ có tên cụ thể cho nó nhưng nó chỉ thuộc "tessname thích nghi" chung chung hơn.


Vâng, đó là một câu trả lời hơi vội vàng, đã thêm một số chỉnh sửa
JarkkoL

Gần đây bạn đã đưa ra rất nhiều câu trả lời chi tiết mà tôi đoán bạn có nhiều hơn bạn có thể nói về câu hỏi này. +1
trichoplax 7/11/2016

"Với chiến lược xử lý thích ứng hiện tại của bạn, cuối cùng bạn sẽ tách các bề mặt phẳng, điều này làm tăng số lượng tam giác của bạn một cách không cần thiết." - Nó chính xác thì ngược lại. Tôi đoán bạn (và nhiều người khác) không đồng ý biết hệ thống tọa độ cực là gì và làm thế nào nó làm cong các mô hình 3D của cartesian tùy thuộc vào vị trí được chiếu của nó. Tôi đồng ý với bạn rằng ngưỡng có thể phức tạp hơn độ dài hiển thị nhưng việc tạo ra nó trở nên khó khăn. Và bên cạnh GPU mục tiêu của tôi không có khả năng vận chuyển. Tôi sẽ cập nhật câu trả lời của mình với nhiều thông tin hơn về lần xuất hiện sau.
Andreas
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.