Đồ họa máy tính

Các khái niệm trong đồ họa máy tính

Điểm ảnh(Pixel)

Tọa độ

Mành và vectơ

Độ phân giải màn hình

Các chế độ màu của màn hình

  • Đơn vị cơ bản xây dựng nên một bức ảnh
    trên màn hình máy tính
  • Viết tắt của “picture element” – thành phần
    ảnh
  • Hình tròn, hình vuông, hay HCN
  • Ảnh mành >< Ảnh vectơ
  • Đưa ra từ khái niệm mành trong các hệ
    thống TV – là một hàng các điểm ảnh
  • Thường được biết đến là đường quét
    (scanline)
  • Ảnh hưởng nhiều đến các thuật toán yêu cầu giảm bộ nhớ, song song hóa,

Hệ trục tọa độ

Hàng

Cột

Hệ tọa độ Đềcac

Hệ tọa độ góc

Điểm: Một vị trí trong không gian 3D hoặc 2D

Đoạn thẳng:

  • Nối 2 điểm
  • Có mật độ không đổi
  • Bắt đầu và kết thúc tại điểm

Đỉnh(Vertex): Đỉnh của 1 đa giác

Cạnh(Edge): Nối 2 đỉnh

Mặt (Polygon/Face/Facet):

  • Một đa giác bất kỳ
  • Đơn vị cơ bản của ĐHMT

Luồng xử lý

Xử lý 2D

Đối tượng 2D thực tế -> Cắt xén dựa vào cửa sổ -> Biến đổi dựa vào điểm nhìn -> Biến đổi sang hệ tọa độ vật lý thiết bị

Xử lý 3D

Đối tượng 3D thực tế -> Biến đổi sang hệ tọa độ quay -> Cắt xén dựa vào khối nhìn -> Chiếu lên mặt phẳng nhìn -> Biến đổi dựa vào điểm nhìn -> Biến đổi sang hệ tọa độ vật lý thiết bị

Mô hình hóa đối tượng

Thể hiện khung dây:

  • Biểu diễn các vật thể chỉ bằng
    cạnh của chúng
    Ưu điểm:
  • Hình dung kết cấu bên trong mô
    hình 3D
  • Đơn giản, nhanh chóng
    Nhược điểm:
  • Không cho phép người dùng hình dung toàn bộ chi tiết

Thể hiện bề mặt thông qua đa giác:

  • Dạng 3D cơ bản trong hầu hết các ứng dụng trong tất cả các ứng dụng thời gian thực.
  • Xử lý dễ và nhanh.
  • Một số ứng dụng có thể sử dụng các hình khối khác, v.d. Splines, tuy nhiên sau đó đều đưa về dạng đa giác để xử lý.
  • Rất phù hợp với thuật toán “dòng quét” (scan-line algorithms).

Thuật toán mành hóa

Thuật toán tô phủ cơ bản

image

Thuật toán tô phủ Smith

Thuật toán tô phủ của Fishkin

Thuật toán cắt xén

2D

Thuật toán Cohen-Sutherland

Nếu cả hai đầu có mã là 0000, chấp nhận, nếu không:
Thực hiện phép AND logic 2 mã
Thực hiện AND logic mã của 2 đầu mút,
Loại bỏ đoạn thẳng nếu khác không.

Phương pháp hiệu quả để chấp nhận hoặc loại bỏ
những đoạn thẳng không cắt các cạnh của cửa sổ
Gán mã 4 bit cho mỗi đầu mút: c(P) = x3x2x1x0

  • Bit 1: ở trên đỉnh của cửa sổ, y > ymax
  • Bit 2: ở phía dưới đáy, y < ymin
  • Bit 3 : bên phải của cạnh phải, x > xmax
  • Bit 4 : bên trái của cạnh trái, x < xmin
    Mã 4-bit được gọi là: Outcode

Thuật toán Cyrus & Beck

Sử dụng phương trình tham số
Đường thẳng chứa đoạn cần xử lý sẽ cắt các đường thẳng chứa biên của cửa số ở đâu đó :

  • Tìm tất cả các giao điểm, kiểm tra xem nó có
    nằm trên cửa số hay không.
  • Xem xét véctơ pháp tuyến tại một điểm.

image
Mẫu số < 0 -> điểm vào khu vực cửa sổ, xếp vào loại PE.
Mẫu số > 0 -> điểm ra khu vực cửa sổ, xếp vào loại PL.
Giữ lại đoạn từ điểm vào cuối cùng và điểm ra đầu tiên.

Thuật toán Liang - Barsky

Phương trình tham số:
X=X1+tdeltaX
Y=Y1+t
deltaY
Với deltaX=X2-X1
deltaY=Y2-Y1

Điểm P thuộc về cửa sổ W khi và chỉ khi:
Xmin <= X1+deltaXt <= Xmax
Ymin <= Y1+deltaY
t <= Ymax

Hay:
deltaXt <= Xmax-X1
deltaY
t <= Ymax-Y1
-deltaXt <= X1-Xmin
-deltaY
t <= Y1-Ymin

tk=qk/ck

(1) ck > 0, đt L đi từ phía trong ra phía ngoài của đường biên Bk khi t tăng,
và chúng ta gọi tk là điểm ra.
(2) ck < 0, đt L đi từ phía ngoài vào phía trong của đường biên Bk khi t tăng
và ta gọi tk là điểm vào.
(3) ck = 0, đt L song song với Bk, và ngoài cửa số nếu qk < 0

Loại bỏ đoạn thẳng nếu:

  • Một giá trị vào (t ứng với điểm vào) >1
  • Hoặc giá trị ra (t ứng với điểm ra) <0
  • Hoặc một giá trị vào > hơn giá trị ra
    Nếu không đoạn thẳng sẽ giao với cửa sổ.
    Đoạn giao chỉ khi t0>0 và t1<1:
  • t0=max(0,max(các giá trị vào tk)
  • t1=min(1,min(các giá trị ra tk))

Vẽ đường thẳng và đường tròn

Thuật toán DDA

Thuật toán Bresenham

x=0,y=0
Untitled1

Thuật toán điểm giữa

Cần phải tính giá trị ban đầu của đại lượng
quyết định d.

Các phép biến đổi

Khái niệm

Các loại biến đổi 2D

Các loại biến đổi 3D

Chọn một trong hai điểm tiếp theo dựa trên
dấu của đại lượng quyết định

Điểm bắt đầu là (x1,y1).

DDA = Digital Differential Analyser
(Phân tích vi phân số hóa)

Quay

Tịnh tiến

Co dãn

Phép kéo 3D

Kéo

Tịnh tiến

Tịnh tiến 2D

Co dãn theo gốc tọa độ

Ánh sáng

Mô hình tạo bóng

Mô hình ánh sáng

Mô hình ánh sáng cục bộ

Mô hình ánh sáng toàn cục

Tạo bóng Phong

Tạo bóng nội suy
Interpolated shading

Tạo bóng Gouraud

click to edit

Các loại phản quang

Phản chiếu

Mô hình Phong và Blinn

Độ bóng và các vùng phản
chiếu

Khuyếch tán hoàn hảo

Luật lambert

Matte

Phản chiếu hoàn hảo

Luật phản chiếu

Gương

Môi trường

Phép chiếu

1 số hệ tọa độ

Hệ tọa độ máy quay (The camera coordinate system)

Hệ tọa độ thế giới (The world coordinate system)

Hệ tọa độ hình dạng (The shape coordinate system)

Khung nhìn 3D

Các phép chiếu

Phối cảnh

Song song

phức tạp hơn 2D

Thêm một chiều mới

Các thiết bị hiển thị là 2D

Cần dùng phép chiếu (projection) để chuyển vật thể hay cảnh vật 3D về thiết bị hiển thị 2D

Cần thực hiện cắt với một khối 3D

Sáu mặt phẳng

Hình chóp cụt

1 điểm

2 điểm

3 điểm

Trực giao

Xiên

Từ mặt trên

Từ mặt bên

Từ mặt trước

Có trục đo

Cabinet

Khác

Cùng kích thước

Khác

P=T(P)

281628684_506149927956906_5615239291869265366_n

Chỉ một đối tượng được xét đến khi tính toán về ánh sáng

Ánh sáng của bề mặt lấy trực tiếp từ nguồn
sáng

toàn bộ các đối tượng trong cảnh được xét đến đồng thời khi tính toán về ánh sáng

Ánh sáng của bề mặt được tính toán dựa trên sự tương tác của tất cả các nguồn sáng và các vật

Thành phần

Môi trường (ambient)

Khuyếch tán (diffuse)

Phản chiếu (specular)

Wylie, Romney, Evans và Erdahl: đề xuất ý tưởng dùng nội suy tuyến tính các thông tin về tạo bóng trên các điểm

Độ sáng được nội suy giống như chúng ta
thực hiện với z-buffering.

Sử dụng pháp tuyến với mô hình tạo bóng nào đó

Nội suy cường độ màu sắc của đỉnh dọc theo các cạnh

Nội suy giá trị các cạnh theo đường quét

Véc-tơ pháp tuyến được tính toán cho mỗi đỉnh.

Vec-tơ pháp tuyến được nội suy cho các bè mặt

Áp dụng mô hình ánh sáng với các vec-tơ pháp
tuyến.

Trong mô hình phản chiếu của Phong, điểm sáng giảm dần với cosn 

Xác định mặt hiện
(Visible surface determination)

Thuật toán BSP

Thuật toán mặt hiện

Ưu tiên theo danh sách

Thuật toán ng thợ sơn

Chính xác theo ảnh (image precision)

Chính xác theo đối tượng (object precision)

Thuật toán z-buffer

Thuật toán Warnock

Thuật toán Watkins Thuật toán dòng quét trong không gian ảnh

Vẽ các bề mặt theo thứ tự từ sau đến trước – các đa giác gần hơn sẽ được vẽ đề lên đa giác xa hơn

Hỗ trợ tính trong suốt.

Vấn đề mấu chốt là xác định
thứ tự.

Không phai lúc nào cũng
thực hiện được

Chuyển danh sách đa giác sang dạng cấu trúc cây nhị phân (cây BSP)

Duyệt cây BSP và vẽ các đa giác ra bộ đệm khung theo thứ tự từ sau ra trước

Thuật toán chính xác theo ảnh

Khởi tạo danh sách cửa sổ L (ban đầu: toàn bộ màn hình)
Mỗi cửa sổ W trong L tìm cửa sổ thỏa mãn:

Tất cả đa giác tách biệt với W: vẽ W với màu nền

Chỉ có P giao với W

Tìm đa giác bao phủ W và đa giác đó nằm trước tất cả các
đa giác khác giao với W

Lưu lại thông tin về độ sâu hiện thời của mỗi điểm

Nội suy z trong quá trình tính toán

Lưu trữ một ma trận độ sâu tương ứng với ảnh đầu ra

Mỗi khi xử lý một đa giác, so sánh với các giá trị z
đang lưu trữ

Lưu lại giá trị màu của những điểm gần nhất