Tôi hiện đang cố gắng để hiểu một số điều về rasterization đồ họa vector và các cách khác nhau được thực hiện trong các loại ứng dụng khác nhau.
Tôi đã thử nghiệm và so sánh một vài chương trình và nhận thấy rằng có một sự khác biệt lớn trong cách hành xử chống răng cưa trong quá trình rasterization. Tôi đặc biệt quan tâm đến hành vi kết xuất trong Illustrator . Bạn sẽ thấy tại sao bằng cách đọc thêm.
Để thử nghiệm, tôi đã sử dụng một bố cục thực sự đơn giản gồm các hình tam giác được sắp xếp theo hình lục giác không đều với các màu khác nhau.
Phần mềm đồ họa Vector
Dưới đây là ba kết xuất của cùng một đồ họa vector trong Illustrator, Affinity và Inkscape. (Hình ảnh được tạo ra trong Affinity và Inkscape hoàn toàn giống nhau.)
Như bạn có thể thấy có một đường trắng không mong muốn trên mỗi cạnh trong hình ảnh được hiển thị với Affinity và Inkscape. Khử răng cưa không lấp đầy khu vực này bằng một màu đơn sắc dẫn đến một khoảng cách nhỏ giữa các hình dạng liền kề.
Mặc dù không có khoảng cách trong kết xuất đồ họa Illustrator, nhưng các cạnh của hình dạng trông mượt mà như kết xuất của Affinity.
Đây là một hình ảnh hiển thị cùng một khu vực của mỗi hình ảnh được nâng cấp.
Có một sự khác biệt rất tinh tế giữa hai hình ảnh. Kết xuất của Affinity mượt hơn một chút nhưng hầu như không thể thấy sự khác biệt khi nhìn vào hình ảnh ở kích thước ban đầu của chúng.
Trình duyệt
Kết xuất SVG
Hiển thị cùng đồ họa được xuất dưới dạng SVG trong trình duyệt trông rất giống với hình ảnh raster được tạo bởi cả Affinity và Inkscape.
Có sự khác biệt rất nhỏ trong các cạnh khử răng cưa (không thực sự đáng để hiển thị ở đây) nhưng quá trình raster hóa SVG trong các trình duyệt phổ biến hoạt động khá giống nhau.
Kết xuất phân tách
Thử nghiệm Illustrator hiển thị xa hơn một chút, tôi đã thử tách các phần đồ họa của mình và xuất chúng riêng lẻ sau đó kết hợp chúng lại với nhau bằng một phần mềm chỉnh sửa raster.
Về lý thuyết, nó sẽ dẫn đến hình ảnh giống như có nó trong một mảnh duy nhất, nhưng kết quả hơi khác nhau khi sử dụng phương pháp này.
Như được hiển thị, khi hai phần được sáng tác, có một khoảng cách nhỏ giữa chúng. Mặc dù nó tinh tế hơn, nhưng nó rất giống với đồ họa được hiển thị trong Affinity.
Kết xuất đa giác
Máy xay sinh tố (phần mềm 3D)
Blender cho phép bạn nhập các tệp SVG và thao tác chúng dưới dạng các đối tượng đường cong. Dưới đây là hình ảnh nhập khẩu được hiển thị trong chế độ xem 3D. (Theo mặc định, vật liệu sẽ bị ảnh hưởng bởi ánh sáng trong cảnh. Kiểm tra thuộc tính không bóng trong bảng thuộc tính vật liệu sẽ cho phép các hình được hiển thị với màu gốc của chúng.)
Đây là một kết xuất được tạo từ SVG bên trong Blender.
Nó không có bất kỳ khoảng cách giữa các hình tam giác. Các phần mềm 3D khác rất có khả năng hoạt động theo cùng một cách. Vậy Blender hoạt động giống như Illustrator , hay không? Có lẽ đó là cách khác?
Những câu hỏi thực sự
- Illustrator sử dụng thư viện vẽ vector nào đằng sau hậu trường?
- Có thể là Illustrator sử dụng một loại công cụ kết xuất 3D? Nó có phải là nguồn mở không? (chắc là không?)
- Bất kỳ thư viện vẽ vector nổi tiếng nào như Cairo và Skia có thể đạt được cùng một hành vi kết xuất không? (Không có khoảng cách giữa các hình dạng)
- Có thư viện vẽ vector nào ít được biết đến ngoài kia có hành vi tương tự không?