2010-06-18 32 views
12

Tôi đang cố gắng viết một ứng dụng có thể được sử dụng để tạo ra những bức tranh giống như tranh vẽ bằng cách sử dụng các nét vẽ mô phỏng. Có bất kỳ nguồn tốt nào cho các cách đơn giản để mô phỏng nét vẽ không? Ví dụ, được đưa ra một danh sách các vị trí chuột mà người dùng đã kéo chuột qua, chiều rộng bàn chải và kết cấu bàn chải, làm thế nào để tôi xác định những gì để vẽ vào canvas?Mô phỏng nét vẽ cho ứng dụng vẽ tranh

Tôi đã thử kết cấu bàn chải theo hướng di chuyển chuột và thoa một số hình ảnh kết cấu cọ dọc theo đường dẫn, nhưng nó trông không tuyệt vời. Tôi nghĩ rằng tôi đang thiếu một cái gì đó mà kết cấu bàn chải sẽ thu nhỏ và phát triển trên các góc.

Bất kỳ liên kết đơn giản nào để theo dõi đều sẽ được đánh giá cao. Tôi đã tìm thấy các tài liệu học thuật phức tạp về mô phỏng ví dụ: sơn dầu nhưng tôi chỉ muốn một thuật toán cơ bản để sử dụng mà tạo ra kết quả OK nếu có thể.

+0

Ngoài danh sách toạ độ, bạn có thể nhận được dấu thời gian không? Điều đó có thể cho phép bạn làm tối các lần chạy mà người dùng đang vẽ chậm hoặc do dự. – genpfault

+0

để mô phỏng đúng cách hành vi của bàn chải, bạn sẽ ít nhất cần biết thông tin này: danh sách tọa độ, áp suất, tốc độ và góc bút/bàn chải. Một con chuột thông thường chỉ có thể thu thập dữ liệu về danh sách toạ độ và tốc độ; bạn cần một máy tính bảng wacom để thu thập áp lực và có thể góc. Bạn có thể muốn xem cách Inkscape sử dụng công cụ Brush của nó, một công cụ khá tốt cho một bản vẽ chỉ dành cho chuột. –

Trả lời

5

Có một tài liệu lớn về Hiển thị phi photorealist. Sách chính là "Non-Photorealistic Computer Graphics" của Strothotte & Schlechtweg và "Non-photorealistic Rendering" của Gooch & Gooch. Họ thảo luận về nét vẽ. Có một số giấy tờ liên quan đến các nét vẽ mô phỏng. Xem ví dụ "Simulating Artistic Brushstrokes Using Interval Splines".

+2

Liên kết cho Gooch bị hỏng. [Liên kết thay thế] (http://www.cs.northwestern.edu/~ago820/book.html) –

0

Cách tôi có thể nghĩ đến là tìm ra sức mạnh của bàn chải tại mỗi điểm trong đường kẻ và lớp nhiều họa tiết đồng đều trên đó. Mỗi kết cấu sẽ có giá trị alpha tương ứng với "mức độ khó" của cọ vẽ trên canvas ở vị trí đó. Chức năng để tìm ra làm thế nào cứng bàn chải sẽ được đẩy xuống có lẽ sẽ phải được tương quan với đầu vào.

Nếu bạn đi vào một công cụ như Photoshop hoặc GIMP, và quan sát cách nó thực hiện công cụ cọ vẽ, nó sẽ được khá dễ dàng để mô phỏng một cái gì đó gần với nó.

+0

Tôi đã thực sự sao chép những gì gimp có tại thời điểm này và gimp dường như không làm mô phỏng sơn tốt cả. Tôi đã có cài đặt cho độ mờ và khoảng cách và góc của nét vẽ theo con chuột. Góc không nhìn đúng như hình dạng bàn chải không thay đổi, giống như trong gimp. – DrRobot

6

Đây là cổ điển từ năm 1989 - Dynadraw, của Paul Haeberli. Nó sử dụng một mô hình động đơn giản để điền vào một vị trí chuột thô trơn tru.

Trong khi các nét được vẽ tăng dần thành đa giác, bạn sẽ có thể sử dụng các điểm được tạo bởi bộ lọc động để đặt các bản sao của kết cấu cọ vẽ của bạn.

+0

Cảm ơn, điều này có vẻ thú vị! Tôi tò mò nếu có một thuật toán tương tự đặc biệt cho nét vẽ. – DrRobot

+0

@DrRobot, tôi không chắc chắn ý của bạn là gì.Dynadraw * là * đặc biệt cho nét vẽ, không? – brainjam

+0

Rất tiếc, tôi nghĩ đó là mô phỏng của một công cụ giống như bút ...: -/Cảm ơn. – DrRobot

0

Không chính xác những gì bạn đang yêu cầu, nhưng tôi thấy rằng các ứng dụng sử dụng tính năng làm mịn đường thẳng (như Adobe Ideas trên iPad hoặc Doozla trên máy Mac) giúp bạn thực hiện các nét vẽ chân thực và dễ chịu hơn không nhận được những "jaggies" không tự nhiên liên quan đến việc theo dõi chuyển động của chuột một cách hoàn hảo.

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