Quá trình rasterization vector của Illustrator là gì?


18

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.

Hình ảnh cơ sở

Để 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.)

Hình ảnh được hiển thị trong các công cụ chỉnh sửa đồ họa phổ biến

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.

Kết xuất cao cấp hiển thị chống răng cưa

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.

Tệp SVG được hiển thị trong trình duyệt

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.

Sơ đồ tái tạo hình ảnh

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.

Kết quả của hình ảnh được ghép lại

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)

SVG trong khung nhìn Blender

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.

Kết xuất thực tế 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?

4
Những người kết xuất phổ biến khác cũng có vấn đề về sự kết hợp này. Xem w3.impa.br/~diego/projects/GanEtAl14/sample.html?contour .
lhf

Câu trả lời:


11

Theo như tôi có thể nói Illustrator có 2 hoặc 3 rasterizer khác nhau. Bản xem trước trên màn hình cũng dễ bị tạo ra khoảng cách tương tự như chương trình của bạn mặc dù nó được điều chỉnh để giảm thiểu hiệu ứng. Bài đăng của bạn dường như ngụ ý rằng bạn quan tâm đến đầu ra " tối ưu hóa nghệ thuật ".

Nghệ thuật được tối ưu hóa so với xem trước màn hình của họa sĩ minh họa

Hình 1 : Các chế độ kết xuất khác nhau của họa sĩ minh họa. Nghệ thuật tối ưu hóa bên trái và gợi ý bên phải. Lưu ý rằng gợi ý cho thấy nền nhẹ thông qua. Tôi không có phiên bản CC mới vì vậy tôi không thể hiển thị phiên bản thứ ba.

Làm thế nào để tối ưu hóa nghệ thuật sau đó

Chế độ kết xuất được tối ưu hóa nghệ thuật chỉ đơn giản là một hình ảnh không được khử răng cưa được hiển thị ở độ phân giải cao hơn, sau đó đã được lọc theo hộp . Điều này được gọi là siêu mẫu rất tốn kém. Bộ lọc hộp chỉ đơn giản là giá trị trung bình của các mẫu trong hộp (pixel). Đây thực sự là một công nghệ tương tự như những gì bộ lọc đa pixel được sử dụng trong máy xay sinh tố của bạn sử dụng. Bạn có thể làm điều tương tự bằng tay và nhận được kết quả tương tự.

Trong thực tế, kết xuất mà bạn có được minh họa mẫu không thực sự tốt. Nó được hiển thị trong không gian phi tuyến và không được sửa và bạn có thể nhận được kết quả tốt hơn bằng cách hoán đổi sang các bộ lọc bậc cao và tính toán trong không gian màu tuyến tính. Tất cả các phương pháp đa mẫu thể hiện cùng một kết xuất chính xác (được cung cấp đủ các mẫu thậm chí đúng về mặt toán học).

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

Hình 2 : Lọc nhiều pixel, ở bên trái họa sĩ minh họa 'Nghệ thuật được tối ưu hóa'. Trên cùng một hình ảnh ở 16x16 pixel với bộ lọc Lanczos nhiều thùy trong không gian tuyến tính . Đảm bảo thu phóng của bạn là 1: 1.

Vấn đề

Trong thực tế, bạn có vấn đề với vấn đề thực sự của thế hệ trình kết xuất trên màn hình hiện tại. Họ cố gắng tránh lấy mẫu nhiều để ủng hộ tính toán bảo hiểm. Nhưng nó chỉ đơn giản là không thể làm việc hoàn hảo! Đơn giản vì hỗn hợp alpha là:

c0= =c1*α+c2*(1-α)

Khi bị xiềng xích không bao giờ đạt đến 0 khi bị xích trên các bề mặt bán trong suốt để nền hiển thị máng. Ngoài ra, nó không biết phạm vi bảo hiểm được phân phối như thế nào nên sẽ làm sai. Đơn giản là không có cách nào khác trong trường hợp không chồng chéo như thế này. nhưng nếu bạn cho phép các hình dạng chồng lên nhau thì tính toán phạm vi có thể được giải quyết (Xem tại đây ).

Các câu hỏi khác Bạn có thể nhận được kết quả tương tự trong bất kỳ công cụ nào khác chỉ bằng cách ghép nhiều hình ảnh không khử răng cưa. Bạn không thể có được hiệu ứng trong kết xuất màn hình mà không thực hiện thủ thuật chồng chéo vì chúng tối ưu hóa tốc độ. Có họa sĩ minh họa sử dụng 3D? CC mới có thể phụ thuộc vào cách giải thích của bạn về 3D là gì. Vấn đề này không liên quan gì đến 3D chỉ về các phương pháp tái tạo tín hiệu nên nó không áp dụng được cho câu hỏi thực sự.


1
BTW, để có cái nhìn chi tiết hơn về lý do tại sao pha trộn alpha không "làm đúng" trong những trường hợp như thế này, hãy xem bài viết này: Phiên dịch Alpha của Andrew Glassner.
Nathan Reed

@NathanReed Sẽ trông thnx, nhưng ở đây chỉ đơn giản là ngay cả khi alpha hoạt động đúng phạm vi bảo hiểm sẽ không biết phần nào bao gồm các pixel và phần nào không. Vì vậy, hai lớp với 50% alpha có thể có nghĩa là hoàn toàn mờ đục hoặc chỉ có thể nhìn thấy một lớp vì các đối tượng điền vào vùng giống hệt nhau mà chúng ta không biết.
joojaa

2
@joojaa Vâng, về cơ bản đó là điểm mà bài báo đang thực hiện: alpha có thể đại diện cho độ mờ đục, độ bao phủ hoặc kết hợp cả hai. :)
Nathan Reed

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.