Tại sao các mối nối T trong các lưới dẫn đến các vết nứt?


19

Tôi đã nghe từ nhiều nguồn rằng có các điểm nối T trong các lưới 3D là một ý tưởng tồi bởi vì nó có thể dẫn đến các vết nứt trong quá trình kết xuất. Ai đó có thể giải thích tại sao điều đó xảy ra, và những gì người ta có thể làm để tránh chúng?


Câu trả lời:


20

Câu trả lời của lhf là tốt từ quan điểm của tessname, nhưng những điều này có thể xảy ra với các trường hợp sử dụng lưới tam giác đơn giản hơn.

Lấy ví dụ tầm thường này về ba hình tam giác không gian màn hình , ABC, ADE và DBE ...

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

Mặc dù điểm E, về mặt toán học, được dự định là chính xác trên đoạn thẳng AB, đường ống sẽ không được sử dụng các giá trị hoàn toàn chính xác, chẳng hạn như số hữu tỷ (ví dụ: https://gmplib.org/ ). Thay vào đó, nó có thể sẽ sử dụng float, và do đó một số xấp xỉ / lỗi sẽ được giới thiệu. Kết quả có thể sẽ là một cái gì đó như:

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

Lưu ý rằng tất cả các đỉnh có thể không chính xác. Mặc dù ví dụ trên cho thấy một vết nứt, thay vào đó, đường nối T có thể dẫn đến sự chồng chéo dọc theo cạnh khiến các pixel bị vẽ hai lần. Điều này có vẻ không tệ, nhưng nó có thể gây ra vấn đề với các hoạt động trong suốt hoặc stprint.

Sau đó, bạn có thể nghĩ rằng với dấu phẩy động, lỗi được giới thiệu sẽ không đáng kể, nhưng trong trình kết xuất, các giá trị đỉnh không gian màn hình (X, Y) gần như luôn được biểu thị bằng các số điểm cố định và do đó độ dịch chuyển từ vị trí lý tưởng sẽ thường là lớn hơn nhiều. Hơn nữa, khi phần cứng kết xuất "nội suy" từng pixel từng đoạn với độ chính xác bên trong của chính nó, thậm chí nhiều khả năng nó sẽ phân kỳ khỏi vị trí tròn của E.

Nếu ngã ba T bị "loại bỏ", giả sử, cũng chia tam giác ABC thành hai, tức là AEC và EBC, vấn đề sẽ biến mất khi các ca được giới thiệu bởi các lỗi sẽ đều nhất quán.

Bây giờ, bạn có thể hỏi tại sao các trình kết xuất (đặc biệt là CTNH) sử dụng toán học điểm cố định cho tọa độ XY đỉnh? Tại sao họ không sử dụng dấu phẩy động để giảm sự cố? Mặc dù một số người đã làm (ví dụ như Dreamcast của Sega), nó có thể dẫn đến một vấn đề khác khi toán học thiết lập tam giác trở nên không chính xác một cách thảm khốc, đặc biệt là đối với các tam giác mỏng dài và chúng thay đổi kích thước theo những cách khó chịu.


2
Khi bạn nói "giá trị đỉnh (X, Y) gần như luôn luôn được biểu thị bằng số điểm cố định", tôi đoán bạn có nghĩa là tọa độ đỉnh không gian màn hình trong trình raster, phải không? Không phải các đỉnh không gian mô hình ban đầu.
Nathan Reed

2
@NathanReed Có. Chỉ là X & Y không gian màn hình (và, có lẽ trên một số GPU Z). Tôi sẽ chỉnh sửa nó để làm cho rõ ràng hơn.
Simon F

9

Khi mô hình hóa các bề mặt tham số với một lưới trong miền tham số, các mối nối T có thể sẽ xuất hiện dưới dạng không liên tục trên bề mặt. Chúng sẽ hiển thị như những khoảng trống trong kết xuất. Xem bên dưới.

Tổng quát hơn, các mối nối T trong các lưới tam giác có thể sẽ dẫn đến sự gián đoạn của các thuộc tính được nội suy, chẳng hạn như màu sắc và quy tắc.

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



4

Lỗi làm tròn điểm nổi.

Sau khi bạn chuyển đổi đường giao nhau T và điểm trong T có thể được làm tròn ra khỏi cạnh.

Sau đó, có thể xảy ra rằng một mảnh được lấy mẫu cho một pixel nằm trong khoảng cách giữa hai bề mặt.

Điều này có thể được khắc phục bằng cách không có ngã ba ở vị trí đầu tiên.


3

Cách đơn giản để tránh điều này là đảm bảo rằng tất cả các đỉnh của bạn được hàn

Vấn đề là bạn có các đường cắt dọc theo các cạnh với một đỉnh, nhưng bạn không có một đỉnh tương ứng ở cạnh liền kề để hàn / kết nối nó với nhau, nếu bạn nghĩ nó giống như một nút trên áo, bạn đã gieo vào nút để cạnh, nhưng không cho nó một lỗ để vải được mở.

Trong hình bên dưới, các chấm đỏ đại diện cho các đỉnh được hàn chính xác, tất cả các chấm màu xanh cần một đỉnh bổ sung để được cắt vào cạnh liền kề.

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

Nói chung, đó là một cách thực hành tốt để giữ mô hình của bạn trong quad & tri ', điều này giúp giảm bớt vấn đề này vì bạn luôn phải có một đỉnh tương ứng để hàn. Nó cũng giúp giữ cho quads nếu bạn có kế hoạch sử dụng bất kỳ phương pháp phân chia nào trên lưới.

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.