Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
3,54 MB
Nội dung
OpenGL Programming Guide Lớp : INT3403 21 Nhóm : Thành viên : Hoàng Việt Anh, Lê Anh Đức, Đinh Tiến Anh, Trần Đức Anh, Nguyễn Tiến Đạt Chủ đề: Color Phân cơng cơng việc : Hồng Việt Anh – Trưởng nhóm Trần Đức Anh Lê Anh Đức Nguyễn Tiến Đạt Đinh Tiến Anh Hoàng Việt Anh - Đọc tìm hiểu viết phần 1.1 1.2 Đọc tìm hiểu viết phần 1.4 Làm Slide Đọc tìm hiểu viết phần 1.3 Tổng hợp phần, viết báo cáo, Code tập ứng dụng làm sản phẩm ứng dụng CHƯƠNG IV : COLOR Color 1.1 Cảm nhận màu sắc - Về mặt vật lý, ánh sáng bao gồm hạt photon – hạt giả tưởng, hạt di chuyển theo quỹ đạo dao động tần số riêng (bước sóng lượng) Một photon xác định vị trí, hướng tần số/bước sóng/năng lượng Ánh sáng khả kiến tạo thành từ photon có bước sóng từ 380 nm (tím) đến 760 nm (đỏ) , tạo thành màu sắc cầu vồng (tím chàm lam lục vàng cam đỏ) - - Những mắt bạn thực nhìn thấy hỗn hợp photon có tần số khác Các ánh sáng thực đặc trưng phân bố tần số photon mà chúng phát Ánh sáng trắng lý tưởng bao gồm lượng ánh sáng tất tần số Sự phân bố tần số ánh sáng từ hầu hết nguồn môi trường trực tiếp bạn phức tạp - Mắt người nhận biết màu sắc tế bào định võng mạc (gọi hình nón tế bào , tế bào hình nón ) trở nên kích thích sau bị tác động photon Bộ ba loại tế bào hình nón khác phản ứng tốt với ba bước sóng khác ánh sáng: Một loại tế bào hình nón phản ứng tốt với ánh sáng đỏ, loại với ánh sáng xanh lục,và lại với ánh sáng xanh lam (Một người mù màu thường tích nhiều loại tế bào hình nón.) Khi hỗn hợp photon định vào mắt, tế bào hình nón võng mạc có mức độ kích thích khác tùy thuộc vào loại chúng hỗn hợp photon khác xảy kích thích ba loại tế bào hình nón mức độ, màu sắc khơng rõ ràng - phân biệt với hỗn hợp - Vì màu mắt ghi lại dạng mức độ kích thích hình nón tế bào tạo photon tới, mắt cảm nhận màu sắc khơng nằm quang phổ lăng kính cầu vồng tạo Ví dụ, bạn gửi hỗn hợp photon màu đỏ xanh lam cho hình nón màu đỏ xanh lam võng mạc bị kích thích, mắt bạn nhìn thấy có màu đỏ tươi, khơng có quang phổ Các kết hợp khác tạo màu nâu, màu ngọc lam màu hoa cà, khơng có xuất quang phổ màu - Màn hình máy tính - đồ họa mô màu sắc khả kiến cách chiếu sáng điểm ảnh với kết hợp ánh sáng đỏ, xanh lục xanh lam theo tỷ lệ kích thích tế bào nhạy cảm với màu đỏ, xanh lục xanh lam võng mạc theo cách mà khớp với mức kích thích tạo hỗn hợp photon mà cố gắng mơ Nếu người có nhiều loại tế bào hình nón hơn, số loại có màu vàng - nhạy cảm, ví dụ: hình màu có màu vàng, sử dụng tứ RGBY (đỏ, lục, lam, vàng) để xác định màu sắc Và tất người mù màu theo cách, chương đơn giản - Để hiển thị màu cụ thể, hình gửi lượng màu đỏ, ánh sáng xanh lục xanh lam (RGB) để kích thích thích hợp loại tế bào hình nón mắt bạn Màn hình màu gửi tỷ lệ khác đỏ, lục lam cho pixel mắt nhìn thấy hàng triệu điểm sáng, điểm có màu sắc riêng Lưu ý : Có nhiều cách biểu diễn màu khác mơ hình màu HLS, HSV, CMYK Nếu liệu bạn mơ hình mơ hình màu này, bạn cần đổi mơ hình màu RGB 1.2 Màu sắc máy tính - Trên hình máy tính màu, pixel phát lượng ánh sáng đỏ, lục lam khác Chúng gọi giá trị R, G B Chúng thường đóng gói ( đơi có thêm giá trị Alpha hay A) giá trị gọi RGB ( hay RGBA) Trong giá trị R, G, B A lưu trữ pixel hay color – index mode Mỗi giá trị màu giá trị bảng xác định giá trị RGB cụ thể Bảng gọi đồ màu - - - Trong chế độ color – index , bạn thay đổi giá trị đồ màu Vì đồ màu điều khiển hệ thống cửa sổ, khơng có lệnh OpenGL thực việc Giữa máy tính khác có khác phần cứng kích thước mảng pixel số lượng màu hiển thị pixel Trên hệ thống đồ họa nào, pixel có lượng nhớ để lưu trữ màu tất nhớ cho tất pixel gọi đệm màu Kích thước đệm thường đo tính bit, đệm bit lưu trữ bit liệu (có thể khác 256 màu sắc) cho pixel Kích thước đệm thay đổi tùy theo từ máy sang máy khác Các giá trị R, G B nằm khoảng từ 0,0 (khơng có) đến 1,0 (cường độ đầy đủ) Ví dụ : R = G = B = 1,0 đại diện cho màu xanh lam sáng Nếu R, G B pixel có màu đen; tất 1,0, pixel vẽ có màu trắng sáng hiển thị hình Để giúp bạn tạo màu bạn muốn từ R, G, thành phần B, nhìn vào khối màu hiển thị Hình 1.2.1 Các trục khối đại diện cho cường độ màu đỏ, xanh lam xanh lục Hình 1.2.1 RGB color space - Trong chế độ định (ví dụ: tính tốn ánh sáng texture thực hiện), màu chọn trải qua thao tác trước tới đệm frame giá trị biểu diễn pixel Trong thực tế, màu sắc pixel xác định chuỗi dài thao tác - Trước thực chương trình, chế độ hiển thị màu đặt thành chế độ RGBA chế độ color – index Khi chế độ hiển thị màu khởi chạy, khơng thể thay đổi Khi chương trình thực thi, màu (hoặc số màu giá trị RGBA) xác định sở đỉnh cho hình ban đầu Màu màu mà bạn định rõ ràng cho đỉnh ánh sáng kích hoạt, xác định từ tương tác chuyển đổi ma trận với chuẩn bề mặt đặc tính vật liệu khác Ví dụ: bóng màu đỏ ánh sáng xanh chiếu vào trơng khác so với bóng mà khơng có ánh sáng hay ánh sáng màu vàng Sau ánh sáng thực mơ hình bóng tiến hành 1.3 RGBA color-index mode - Ở chế độ color - index RGBA, lượng liệu màu định lưu trữ pixel Lượng xác định số lượng bitplanes khung đệm Một bitplane chứa bit liệu cho pixel Nếu có bitplanes màu, có bit màu pixel 28 = 256 giá trị khác màu sắc lưu trữ pixel - Bitplanes thường chia để lưu trữ cho thành phần R, G B (nghĩa là, hệ thống 24 bitplane dành bit cho màu đỏ, xanh xanh lam),nhưng điều lúc 1.3.1 Chế độ hiển thị màu RGBA - Trong chế độ RGBA, phần cứng dành số bitplanes định cho thành phần R, G, B A (không thiết phải số cho thành phần) Các giá trị R, G B thường lưu trữ dạng số nguyên, thay số dấu phẩy động chúng chia tỷ lệ theo số lượng bit có sẵn để lưu trữ truy xuất Ví dụ,nếu hệ thống có sẵn bit cho thành phần R, số nguyên từ đến 255 lưu trữ; đó, 0, 1, 2, , 255 bitplanes tương ứng thành giá trị R 0/255 = 0.0, 1/255, 2/255, , 255/255 = 1.0 Không phụ thuộc vào số bitplanes, 0.0 định cường độ tối thiểu 1.0 định cường độ tối đa Lưu ý : Giá trị A độ suốt, khơng ảnh hưởng trực tiếp đến màu hiển thị lên hình - Số lượng màu riêng biệt hiển thị pixel phụ thuộc số lượng bitplanes khả phần cứng để diễn giải planes Số màu khác biệt khơng vượt q 2n , n số lượng bitplanes Do đó, máy có 24 bitplanes cho RGB hiển thị lên đến 16,77 triệu màu khác biệt Phối màu : Một số phần cứng đồ họa sử dụng phối màu để tăng số lượng màu sắc Phối màu kỹ thuật sử dụng kết hợp số màu để tạo hiệu ứng màu khác Để minh họa hoạt động cách phối màu, giả sử hệ thống bạn có bit cho R, G B hiển thị tám màu: đen, trắng, đỏ, xanh dương, xanh cây, vàng, lục lam đỏ tươi Để hiển thị vùng màu hồng, phần cứng lấp đầy vùng cách xen kẽ pixel màu đỏ trắng Nếu mắt bạn đủ xa từ hình mà khơng thể phân biệt pixel riêng lẻ, vùng xuất màu hồng - trung bình màu đỏ trắng Màu hồng đỏ đạt cách lấp đầy tỷ lệ pixel cao với màu đỏ, hồng trắng sử dụng nhiều pixel trắng, v.v - Nếu bạn định giá trị RGB cho giá trị màu không khả dụng tô đa giác, phần cứng lấp đầy pixel phần bên đa giác với hỗn hợp màu lân cận có màu trung bình xuất trước mắt bạn có màu bạn muốn - Với khoảng bit R, G B, bạn có hình ảnh chất lượng cao mà không cần phối màu Nếu máy bạn có 24 bitplanes màu, khơng có nghĩa bạn khơng phối màu mong muốn Ví dụ, bạn chạy chế độ đệm kép, bitplanes chia thành hai 12, thực có bit thành phần R, G B.Nếu khơng có phối màu, bit màu cho thành phần cho kết hài lịng nhiều tình 1.3.2 Chế độ hiển thị màu Color-Index - Với chế độ Color - Index, OpenGL sử dụng đồ màu (hoặc bảng tra cứu),tương tự việc sử dụng bảng màu để trộn loại sơn để chuẩn bị cho việc sơn theo bối cảnh Bảng màu họa sĩ cung cấp không gian để trộn loại sơn với nhau; tương tự,bản đồ màu máy tính cung cấp số màu đỏ, xanh lục giá trị xanh lam trộn lẫn, Hình 1.3.2.1 - - Hình 1.3.2.1 Trong chế độ color - index, số lượng màu hữu hạn kích thước color map số lượng bitplanes hữu hạn Kích thước color map xác định số lượng phần cứng chuyên dụng với Kích thước color map ln lũy thừa 2, thường nằm khoảng 256 (28 ) đến 4096 (212 ) số mũ số lượng bitplanes sử dụng Nếu có 2n số color map m bitplanes khả dụng số mục sử dụng nhỏ 2n 2m - Với chế độ màu RGBA, màu pixel độc lập với màu pixel khác Tuy nhiên, chế độ color - index pixel có số lưu trữ bitplanes có vị trí với color map Nếu nội dung mục color map thay đổi, sau tất pixel số màu thay đổi màu chúng 1.3.3 Lựa chọn RGBA Color-Index mode - Bạn nên định dùng mode túy thuộc vào phần cứng có sẵn theo ứng dụng yêu cầu Tuy nhiên với hầu hết hệ thống có nhiều màu RBGA thể tương thích Ngồi với số hiệu ứng, chẳng hạn đổ bóng hay ánh sáng, ánh xạ RGBA thể linh hoạt so với Color-Index - Một vài trường hợp sử dụng Color-Index Mode : + Nếu bạn chuyển ứng dụng mà có sử dụng nhiều chế độ color-index việc chuyển qua RGBA khơng dễ dàng nên tiếp tục để color-index mode + Nếu bạn có sẵn số lượng nhỏ bitplanes, trường hợp bạn cần tạo bóng cho vật biết màu cần bóng color-index mode tạo số lượng màu lớn đáng kể so với RGBA mode + color-index mode hữu dụng tricks color-map animation, layer - Tuy nhiên, nên sử dụng RGBA cố thể VÌ linh hoạt hoạt động tốt với ánh sáng, bóng, sương mù 1.3.4 Thay đổi chế độ hiển thị - Bạn sử dụng đồng thời lúc chế độ màu RGBA color index ứng dụng Nhưng thực tế việc chuyển đổi mode chuyển đổi ứng dụng điều cần thiết Trong OpenGL người ta có cách để chuyển đổi color index mode thành RGBA mode Trong RGBA mode, mục màu chuyển thành RGBA cách chuyển cách thành phần R, G, B, A thực câu lệnh OpenGL sau: GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A Map Name Address Value GL_PIXEL_MAP_I_TO_R Color index R GL_PIXEL_MAP_I_TO_G Color Index G GL_PIXEL_MAP_I_TO_B Color Index B GL_PIXEL_MAP_I_TO_A Color Index A GL_PIXEL_MAP_I_TO_I Color Index Color Index GL_PIXEL_MAP_R_TO_R R R GL_PIXEL_MAP_A_TO_A A A GL_PIXEL_MAP_B_TO_B B B GL_PIXEL_MAP_G_TO_G G G - Trong OpenGL không hỗ trợ chuyển đổi từ RGBA mode 1.4 Xác định màu(color) đánh bóng(shading) cho mơ hình - OpenGL ln giữ dạng màu sắc (chế độ RGBA) số màu (chế độ color-index) Trừ bạn sử dụng mơ hình tơ màu phức tạp chiếu sáng (lighting) ánh xạ kết cấu (texture mapping), vật thể vẽ màu sắc (hoặc số màu sắc) Nhìn vào dịng code pseudo sau: set_color(RED); draw_item(A); draw_item(B); set_color(GREEN); set_color(BLUE); draw_item(C); - Vật A B vẽ màu đỏ, vật C vẽ màu xanh dương Dịng thứ 4, có chức chuyển màu thành màu xanh lại khơng có có tác dụng (chỉ trừ việc tốn chút thời gian) Bởi không chiếu sáng hay kết cấu hóa, nên cài đặt màu tại, tất vật chưa vẽ vẽ màu màu bị thay đổi 1.4.1 Xác định màu sắc RGBA mode - Trong chế độ RGBA, sử dụng hàm glColor*() để chọn màu void glColor3{b s i f d ub us ui}(TYPE r, TYPE g, TYPE b); voidglColor4{b s i f d ub us ui}(TYPE r,TYPE g,TYPE b,TYPE a); voidglColor3{b s i f d ub us ui}v(const TYPE *v); voidglColor4{b s i f d ub us ui}v(const TYPE *v); Điều chỉnh giá trị đỏ, xanh, xanh dương alpha Hàm có hậu tố dùng để phân biệt tham số nhận vào Hậu tố ám bạn có muốn dùng giá trị alpha hàm khơng Nếu khơng có dùng giá trị alpha mặc định để 1.0 Hậu tố thứ dùng để kiểu liệu tham số: byte, short, integer, float, double, unsigned byte, unsigned short, unsigned integer Hậu tố thứ tùy chọn v dùng để đối số trỏ đến dãy giá trị kiểu liệu cho trước - Với phiên glColor*() nhận giá trị có kiểu liệu số thực dấu phẩy động, giá trị phép nằm khoảng 0.0 đến 1.0, tương ứng với giá trị nhỏ lớn lưu trữ đệm frame Các thành phần màu xác định có kiểu liệu unsigned-interger (số nguyên khoảng - 2^161) ánh xạ tuyến tính tới giá trị số thực dấu phẩy động có giá trị lớn 1.0 (full intensity) giá trị không tương ứng với 0.0 (zero intensity) Các thành phần màu xác định có kiểu liệu signed-integer ánh xạ tuyến tính tới giá trị số thực dấu phẩy động có giá trị dương lớn 1.0 giá trị âm nhỏ -1.0 Hậu tố Kiểu liệu Giá trị nhỏ GTNN tương ứng Giá trị lớn GTLN tương ứng b 1-byte integer -128 -1.0 127 1.0 10 s 2-byte integer -32,768 i 4-byte integer -1.0 2,147,483,648 2,147,483,647 1.0 yb unsigned 1byte integer 0.0 255 1.0 us unsigned 2byte integer 0.0 65,535 1.0 ui unsigned 4byte integer 0.0 4,294,967,295 1.0 Bảng 4.1 -1.0 32,767 1.0 Chuyển đổi giá trị màu sang kiểu số thực dấu phẩy động - Các giá trị số thực dấu phẩy động hay signed-integer không nằm khoảng [0, 1] trước cập nhật màu sắc tham số vật liệu chiếu sáng Sau thực tính tốn chiếu sáng, kết giá trị màu sắc nằm khoảng [0, 1] gán tương ứng với giá trị khoảng [0, 1] trước chúng thêm viết vào đệm màu Thậm chí khơng chiếu sáng, thành phần màu sắc gán lại trước cấu trúc lưới hóa (rasterization) - Một hàm tương tự glSecondaryColor*() dùng để xác định màu sắc áp dụng sau ánh xạ cấu trúc (nếu khơng có chiếu sáng) 1.4.2 Gán màu - OpenGL phiên 3.0 giới thiệu đệm frame số thực dấu phẩy động dùng để lưu trữ thành phần màu sắc RGBA dạng gía trị số thực dấu phẩy động Khi có dãy động giá trị số thực dấu phẩy động, bạn muốn cho phép giá trị màu sắc nằm khoảng giá trị màu sắc rút gọn xác định OpenGL: 0.0 đến 1.0 void glClampColor(Glenum target, Glenum clamp) Xác định giá trị màu sắc thứ yếu gán target thay số GL_CLAMP_VERTEX_COLOR, GL_CLAMP_FRAGMENT_COLOR, GL_CLAMP_READ_COLOR, clamp thay giá trị GL_TRUE, GL_FALSE, GL_FIXED_ONLY 11 - Các lựa chọn gán màu sử dụng OpenGL phiên 3.0 mô tả Bảng 4-2 Tham số Ý nghĩa GL_TRUE Màu sắc gán vào khoảng [0, 1] GL_FALSE Màu sắc không gán GL_FIXED_ONLY Màu sắc gán đệm frame đích có dạng điểm cố định(fixed-point) Bảng 4-2 Giá trị sử dụng glClampColor() 1.4.3 Xác định màu Color Index mode - Trong chế độ color-index, sử dụng hàm glIndex*() để lựa chọn số màu sắc đơn để gán vào số màu sắc tạ void glIndex{slfd ub}(TYPE c) void glIndex{slfd ub}v(const TYPE *c) Thay số màu sắc giá trị c Hậu tố thứ O - Ngoài chế độ này, có hàm glClearIndex() void glClearIndex(GLfloat cindex) Đặt màu xóa chế độ color-index Trong cửa sổ chế độ color-index, hàm gọi tới glClear(GL_COLOR_BUFFER_BIT) sử dụng cindex để xóa đệm Chỉ số xóa mặc định 0.0 - Note: OpenGL khơng hỗ trợ hàm để đưa giá trị vào bảng tìm màu Hệ thống cửa sổ có sẵn tính tốn GLUT có hàm glutSetColor() để gọi lệnh hệ thống cửa sổ đặc biệt Nâng cao: - Chỉ mục màu lưu dạng số thực dấu phẩy động Các giá trị số nguyên chuyển sang trực tiếp thành dạng số thực dấu phẩy động mà 12 không cần ánh xạ đặc biệt Các giá trị số nằm khoảng mà đệm colorindex biểu diễn khơng thể gán Mặc dù vậy, trước số phối màu (nếu bật) viết vào đệm frame, chuyển đến dạng dấu phẩy tĩnh Mọi bit phần nguyên giá trị kết dạng dấu phẩy tĩnh không tương ứng với bit đệm frame bị che dấu 1.4.4 Xác định mơ hình đánh bóng (Shading Model) - Màu gốc đường thẳng đa giác vẽ với màu đơn (đánh bóng phẳng) với nhiều màu khác (đánh bóng mịn, cịn gọi đánh bóng Gouraud) Bạn xác định kiểu đánh bóng mà bạn muốn hàm glShadeModel() void glShadeModel(GLenum mode) Cài đặt mơ hình đánh bóng Tham số chế độ hai giá trị GL_SMOOTH(đánh bóng mịn) (mặc định) GL_FLAT(đánh bóng phẳng) - Với chế độ đánh bóng phẳng, màu điểm xác định màu gốc độc lập lặp lại xuyên suốt điểm màu gốc để xuất màu gốc Với chế độ đánh bóng mịn, màu điểm tô cách độc lập với Đối với màu gốc đường thẳng, màu sắc đoạn thẳng hòa vào các điểm màu Đối với màu gốc đa giác, màu sắc bên đa giác hòa lẫn điểm màu Bài tập 2.1 Bài tập Bài 1: Vẽ hình tam giác chế độ GL_FLAT GL_SMOOTH So sánh màu sắc hình tam giác trường mode Bài 2: Sử dụng event bàn phím để thực việc chuyển đổi màu hình vng ta ấn dấu “space” 2.2 Code đáp án Bài 1: - Code đáp án : #include #include void init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); 13 } void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glShadeModel (GL_SMOOTH); glBegin(GL_QUADS); glColor3ub(128, 0, 128); glVertex2f(-0.75, 0.75); glVertex2f(-0.75, -0.75); glColor3ub(0, 255, 0); glVertex2f(0.75, -0.75); glColor3ub(255, 255, 0); glVertex2f(0.75, 0.75); glEnd(); glutSwapBuffers(); glShadeModel (GL_FLAT); glBegin(GL_QUADS); glColor3ub(128, 0, 128); glVertex2f(1, 0.75); glVertex2f(1, -0.75); glColor3ub(0, 255, 0); glVertex2f(2.5, -0.75); glColor3ub(255, 255, 0); glVertex2f(2.5, 0.75); glEnd(); glutSwapBuffers(); glFlush (); } void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluOrtho2D (-1.0, 3.0, -1.0, 3.0); glMatrixMode(GL_MODELVIEW); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 14 glutInitWindowSize (500, 500); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; - } Hình ảnh đáp án : Bài 2: - Code đáp án: #include #include #include 15 #include static GLint r=255, g=255, b=255; // triangle points struct Point { float x; float y; }; // square points Point s1 = {75.0, 75.0}, s2 = {125.0, 125.0}; void init() { glClearColor(0.0, 0.0, 0.0, 0.0); // set clear color to black glMatrixMode(GL_PROJECTION); // projection matrix glLoadIdentity(); // set current matrix to identity matrix glOrtho(0, 400.0, 0, 400.0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); // model view matrix glLoadIdentity(); } void changeColor() { r = rand() % 256; g = rand() % 256; b = rand() % 256; glutPostRedisplay(); } void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3ub(r, g, b); glRectf(s1.x, s1.y, s2.x, s2.y); glutSwapBuffers(); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 32: changeColor(); break; default: break; } } int main(int argc, char *argv[]) { 16 glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(400, 400); glutInitWindowPosition(100, 100); glutCreateWindow("Lab_02"); init(); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutMainLoop(); return 0; - } Hình ảnh đáp án: Sản phẩm ứng dụng 3.1 Ứng dụng Shading Model Color để tạo model vật thể blender Với Shading Model Color tạo vật Blender Với chế độ Shading Smooth Mỗi đa giác mặt tô màu cách mịn màng trành tạo thành đường thô Shading Flat bới Shading Flat mặt đa giác tô màu 17 Sử dụng Shading Flat 18 Sử dụng Shading Smooth 19 Nhân vật color – dán texture 3.2 Điều khiển cảm xúc khán giả màu sắc qua phim ảnh Màu sắc mang nhiều ý nghĩa khác sử dụng theo nhiều cách khác Khơng có cách sai việc sử dụng màu xanh dương, xanh lá, cam… Việc tìm phương thức độc đáo lôi việc chọn màu để khuấy động cảm xúc khán giả thử thách Hãy điểm qua cách sử dụng màu sắc khác điện ảnh cảm xúc mà màu sắc đem lại cho - Đầu tiên màu đỏ:Những ý nghĩa gắn liền với màu đỏ đa dạng, có điều phủ nhận màu sắc đầy sức mạnh sử dụng ảnh Một mặt, màu đỏ sử dụng cách thể cơng kích, bạo lực hay giận Hãy xem hình Trong phim Ex Machina Alex Garland, khung hình xuất bất ngờ phim xoay chuyển 180 độ bước qua ranh giới tội ác Không gian tràn ngập màu đỏ báo hiệu căng thẳng có vai trị dấu hiệu cho khán giả tập trung ý – điều quan trọng sửa xảy 20 Mặt khác, màu đỏ gợi lên cho ta cảm giác tình yêu đam mê Bộ phim “Her” Spike Jonze ví dụ tuyệt vời cách phim kể, không thông qua ngôn từ mà bố cục thiết kế bối cảnh Nhân vật phim, Theodore, mặc áo màu khác – đỏ, xanh dương, vàng trắng – thể trạng thái cảm xúc khác anh xuyên suốt phim Toàn bộ phim minh chứng hoàn hảo cho quan trọng lý thuyết màu sắc - Tiếp màu cam: Màu cam thường gắn với ấm áp, đầy lượng hài hước Tuy nhiên, màu cam cịn mang ý nghĩa cảnh báo cho ta phải cẩn thận Đạo Khổng xưa kết nối màu cam với chuyển hóa Khung hình xuất thời điểm bùng phát phim Beasts of No Nation – nhân 21 vật người hồn tồn khác, gần khơng thể nhận ra, lê bước qua hố rãnh màu cam u ám - Toàn bộ phim Mad Max: Fury Road mang tông màu cam nhẹ, dùng để khuếch đại cảm giác khải huyền đổ nát vùng đất Cằn cỗi, không hy vọng kết thúc, hình ảnh kết cấu Hỏa thật đưa người xem tới giới khác, nơi tràn ngập hỗn loạn Sau màu tím: Nói Ryan Gosling, phim đầu tay anh đạo diễn, Lost River, có phân cảnh giới thiệu nhân vật quyến rũ duyên dáng thời gian gần Người phụ nữ đầy cám dỗ chiếu sáng ngược ánh sáng màu tím, phát họa dáng người cô khán giả cảm nhận bí ẩn nhân vật Màu tím thường gắn với mơ hồ hoang phí 22 Cả hai chủ đề thể theo nhiều cách khác suốt phim - Sự quyến rũ khiết màu tím khai thác cách hiệu phim Guardians of The Galaxy (2014) – tạo tiền đề cho phim bom sau Màu tím màu bí ẩn dùng, sử dụng cách tinh tế, tạo nên cảnh phim ấn tượng lại lâu lòng khán giả Cuối màu hồng: 23 Cách sử dụng màu hồng nhạt Wes Anderson tiệm bánh phim The Grand Budapest Hotel khơng đơn người ta nghĩ Tình cảm trẻ nhân vật đơm hoa kết trái cảnh Bao quanh hộp màu hồng, tình yêu họ nở hoa Cách sử dụng màu sắc Wes Anderson đáng để học hỏi Trong phim kinh dị năm 2015, It Follows, nhân vật ban đầu xuất với quần áo phòng tràn ngập màu hồng Về sau ta biết ý đồ đạo diễn việc lựa chọn màu sắc cho phòng trang phục cho nhân vật Màu hồng đại diện cho ngây thơ khiết cô gái Từ sau kiện đáng sợ xảy ra, ngây thơ cô – quần áo màu hồng ánh sáng đồng thời biến Tím/magenta/đỏ/hồng nhạt — tất sắc màu thường gắn liền với lãng mạn, tình u đam mê Mặc dù chúng mang tầng nghĩa khác, theo cách hiểu thông thường, người ta hay liên tưởng đến điều liên quan đến tình yêu 24 Việc lựa chọn hay loại bỏ màu sắc phim hồn tồn phụ thuộc vào bạn Khơng có quy chuẩn sai để thể u buồn, hạnh phúc hay sợ hãi Tuy nhiên, màu sắc sử dụng cách tinh tế có chủ ý, cảm xúc khán giả tầng vơ thức kích hoạt Giống định khác bạn đưa trình sản xuất, định phục vụ cho câu chuyện lôi khán giả 25 ... Value GL_PIXEL_MAP_I_TO_R Color index R GL_PIXEL_MAP_I_TO_G Color Index G GL_PIXEL_MAP_I_TO_B Color Index B GL_PIXEL_MAP_I_TO_A Color Index A GL_PIXEL_MAP_I_TO_I Color Index Color Index GL_PIXEL_MAP_R_TO_R... lưu trữ pixel hay color – index mode Mỗi giá trị màu giá trị bảng xác định giá trị RGB cụ thể Bảng gọi đồ màu - - - Trong chế độ color – index , bạn thay đổi giá trị đồ màu Vì đồ màu điều khiển... nhau; tương tự,bản đồ màu máy tính cung cấp số màu đỏ, xanh lục giá trị xanh lam trộn lẫn, Hình 1.3.2.1 - - Hình 1.3.2.1 Trong chế độ color - index, số lượng màu hữu hạn kích thước color map số lượng