1. Trang chủ
  2. » Giáo Dục - Đào Tạo

kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập

39 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế góc học tập
Tác giả Đỗ Thị Mai, Lê Bá Long, Lê Xuân Thịnh, Lưu Mạnh Chiến
Trường học Trường Đại Học Công Nghệ Đông Á
Chuyên ngành Kĩ Thuật Đồ Họa Máy Tính
Thể loại Bài Tập Lớn
Năm xuất bản 2024
Thành phố Bắc Ninh
Định dạng
Số trang 39
Dung lượng 3,44 MB

Cấu trúc

  • Chương 1. Cơ sở lý thuyết về đồ họa máy tính (5)
    • 1.1. Các khái niệm cơ bản về đồ họa máy tính (5)
    • 1.2. Các giải thuật đồ họa cơ bản (10)
    • 1.3. Ứng dụng của đồ họa máy tính (15)
  • Chương 2: Thiết kế sản phẩm đồ họa 3D với openGL (22)
    • 2.1. Xây dựng ý tưởng thiết kế (22)
    • 2.2. Vẽ các đối tượng 3D với openGL (23)
    • 2.3. Kết quả (36)
  • Chương 3 Kết luận (37)
    • 3.1 Các nội dung đã đạt được (37)
    • 3.2. Bài học kinh nghiệm (37)

Nội dung

Cơ sở lý thuyết về đồ họa máy tính

Các khái niệm cơ bản về đồ họa máy tính

Khái niệm Đồ họa máy tính là một lĩnh vực quan trọng và đa dạng, nó liên quan đến việc tạo ra và xử lý hình ảnh, đồ họa và đối tượng trực quan bằng sự hỗ trợ của máy tính Điều này bao gồm sự tạo ra, biểu diễn và thao tác với hình ảnh dưới nhiều dạng khác nhau.

Thành phần cơ bản: Bao gồm phần cứng và phần mềm

 Phần cứng đồ họa: Bao gồm các thành phần vật lý như màn hình máy tính, bộ xử lý đồ họa (GPU - Graphics Processing Unit), và các thiết bị ngoại vi như bảng vẽ đồ họa và máy in màu GPU đóng vai trò quan trọng trong việc xử lý hình ảnh và hiển thị chúng trên màn hình.

 Phần mềm đồ họa: Đây là các ứng dụng và công cụ phần mềm được sử dụng để tạo, chỉnh sửa và biểu diễn đồ họa Các ví dụ bao gồm Photoshop, Illustrator, CorelDRAW và Blender.

Các kĩ thuật đồ họa máy tính thường gặp:

 Kỹ thuật đồ họa Bitmap(Raster).

Trong đồ hoạ máy tính, một hình ảnh đồ hoạ raster hay bitmap là cấu trúc dữ liệu ma trận điểm đại diện cho lưới pixel hình chữ nhật nói chung (các điểm màu), có thể thấy được thông qua màn hình, giấy hoặc phương tiện hiển thị khác Các hình ảnh raster được lưu trữ trong các tệp hình ảnh với các định dạng khác nhau.

Một bitmap là một lưới các pixel hình chữ nhật, với mỗi màu của pixel được chỉ định bởi một số bit Một bitmap có thể được tạo để lưu trữ trong bộ nhớ video của màn hình hoặc dưới dạng tệp bitmap độc lập với thiết bị Một raster được đặc trưng về mặt kỹ thuật bởi chiều rộng và chiều cao của hình ảnh tính bằng pixel và theo số bit trên mỗi pixel (hoặc độ sâu màu, xác định số lượng màu sắc mà nó đại diện).

Hình1 Kỹ thuật đồ họa Raster(Bitmap)

 Kỹ thuật đồ họa Vector: Đồ họa vector trong đồ họa máy tính sử dụng các tọa độ trong mặt phẳng 2 chiều để biểu diễn hình ảnh Các tọa độ này sẽ góp phần tạo nên các path và các path này còn có thể có các thuộc tính như màu nét, hình dạng, độ dày,… Ảnh được tạo thành bằng kỹ thuật này được gọi là ảnh vector Các định dạng ảnh vector phổ biến hiện nay bao gồm: SVG, EPS, PDF…

Hình 2 Kỹ thuật đồ họa Vector

 Kỹ thuật đồ họa 3D: Đồ họa 3 chiều trong đồ họa máy tính là kĩ thuật đồ họa sử dụng các dữ liệu hình học có tọa độ 3 chiều rồi thực hiện tính toán để kết xuất hình ảnh 2 chiều Các hình ảnh đó có thể được lưu trữ hoặc hiển thị theo thời gian thực Đồ họa máy tính 3D dựa trên nhiều thuật toán giống như máy tính 2D đồ họa vector trong mô hình khung dây và máy tính 2D đồ họa raster trong màn hình hiển thị cuối cùng Đồ họa máy tính 3D thường được gọi là mô hình 3D Ngoài đồ họa được hiển thị, mô hình được chứa trong tệp dữ liệu đồ họa Tuy nhiên, có sự khác biệt: mô hình 3D là biểu diễn toán học của bất kỳ đối tượng ba chiều nào Một mô hình không phải là một đồ họa kỹ thuật cho đến khi nó được hiển thị Một mô hình có thể được hiển thị trực quan dưới dạng hình ảnh hai chiều thông qua một quá trình được gọi là dựng hình 3D hoặc được sử dụng trong các phép tính và tính toán mô phỏng máy tính phi đồ họa Với in 3D, các mô hình 3D tương tự được hiển thị thành mô hình vật lý 3D của mô hình, với những giới hạn về độ chính xác của kết xuất có thể phù hợp với mô hình ảo.

Hình 3 Kỹ thuật đồ họa 3D

Khái niệm về Texture là một khái niệm quan trọng trong thiết kế đồ họa Texture đề cập đến cấu trúc bề mặt của một đối tượng hoặc vật liệu, bao gồm các đặc điểm như sự mịn màng, sần sùi, gồ ghề, hoặc mờ mờ.

Texture có vai trò quan trọng trong việc tạo ra cảm giác thị giác và trải nghiệm haptics cho người dùng Bằng cách sử dụng texture, chúng ta có thể tạo ra các hiệu ứng trực quan và cảm nhận được sự thay đổi về cảm giác khi tiếp xúc với các đối tượng trong môi trường ảo.

Trong thiết kế đồ họa, texture được sử dụng để làm cho các đối tượng trở nên thực tế hơn Bằng cách áp dụng texture phù hợp, chúng ta có thể tạo ra các hiệu ứng như da thú, gỗ, kim loại, vải, và nhiều hơn nữa Texture cũng có thể được sử dụng để tạo ra các hiệu ứng ánh sáng và bóng, giúp tăng cường sự chuyển động và chi tiết của các đối tượng.

Hình 4 Kỹ thuật đồ họa Texture Mapping

Trong thiết kế đồ họa, Render (hay Kết xuất đồ họa) là quá trình tạo ra hình ảnh trực quan cuối cùng ở dạng ba chiều để chúng ta có thể hình dung được hoặc nhìn thấy được hình ảnh, chuyển động, phối cảnh, mô hình sẽ như thế nào trong thực tế.

Những hình ảnh này mô phỏng môi trường thực tế của dự án hoặc mô hình 3D, vật liệu, ánh sáng và vật thể Mô hình hình học được tạo ra với hình ảnh (kết cấu) và màu sắc, giống với vật liệu thực và có thể được chiếu sáng bằng các nguồn sáng tự nhiên hoặc nhân tạo Nếu các thông số render được đặt chính xác để khớp với những thông số trong tự nhiên, thì chất lượng của kết cấu và các phối cảnh khác nhau của render cuối cùng có thể được coi là giống như thật.

Hình 5 Kỹ thuật đồ họa Render

Các lĩnh vực đồ họa máy tính:

- Kỹ thuật xử lý ảnh (Computer Imaging): sau quá trình xử lý ảnh cho ta ảnh số của đối tượng Trong quá trình xử lý ảnh sử dụng rất nhiều các kỹ thuật phức tạp: kỹ thuật khôi phục ảnh, kỹ thuật làm nổi ảnh, kỹ thuật xác định biên ảnh

- Kỹ thuật nhận dạng (Pattern Recognition): từ những ảnh mẫu có sẵn ta phân loại theo cấu trúc, hoặc theo các tiêu trí được xác định từ trước và bằng các thuật toán chọn lọc để có thể phân tích hay tổng hợp ảnh đã cho thành một tập hợp các ảnh gốc, các ảnh gốc này được lưu trong một thư viện và căn cứ vào thư viện này ta xây dựng được các thuật giải phân tích và tổ hợp ảnh.

- Kỹ thuật tổng hợp ảnh (Image Synthesis): là lĩnh vực xây dựng mô hình và hình ảnh của các vật thể dựa trên các đối tượng và mối quan hệ giữa chúng.

Các giải thuật đồ họa cơ bản

 Thuật toán DDA (Digital Differential Analysis): Đây là một thuật toán đơn giản và hiệu quả để vẽ đường thẳng, hoạt động bằng cách tính toán từng điểm pixel trên đường thẳng dựa trên độ dốc của đường thẳng.

+ Ý tưởng :Cho PT đoạn thẳng đi qua 2 điểm (x1,y1), (x2,y2) như sau: y=kx+m Trong đó: 𝑘=(𝑦2−𝑦1)/(𝑥2−𝑥1) ; 𝑚=𝑦1−𝑘𝑥1

Hình 1 Ví dụ thuật toán DDA

 Thuật toán Bresenham vẽ đường thẳng:

Chức năng: Tạo đường thẳng trên màn hình từ điểm đầu đến điểm cuối. Ý tưởng: Sử dụng thuật toán tối ưu để quyết định xem pixel nào nên được sơn để xấp xỉ đường thẳng trên màn hình Thuật toán này sử dụng tính chất toán học của đường thẳng để chỉ định các điểm sơn tiếp theo trên đường.

Tăng x1, xác định điểm ảnh tiếp theo bằng cách so sánh d1 và d2 Nếu d1d2 thì điểm tiếp theo là P

Hình 2 Ví dụ giải thuật Bresenham

 Các thuật toán vẽ hình tròn:

Chức năng: Vẽ hình tròn hoặc hình tròn tương đối trên màn hình. Ý tưởng: Sử dụng thuật toán đơn giản như Midpoint Circle để tính toán và chọn các điểm trên đường tròn để vẽ Thuật toán này tận dụng tính chất đối xứng của hình tròn để chỉ cần tính toán 1/8 một phần của đường.

Cung 1/8 được mô tả như sau:

Nếu có (x, y) ∈ (C 1/8 ) thì các điểm: (y, x), (y, x), (x,-y), (-x,-y), (-y,-x), (-y,x), (-x,y) sẽ thuộc (C).

+ Ý tưởng Phương trình đường tròn

F(x,y): 0 nếu (x,y)nằm ngoài đường tròn) Đặt Pold=F(M)

Pold=(xp+1) 2 + (yp-1/2) 2 – R 2 Nếu chọn E, MnewE(xp+2,yp-1/2)

PnewE=(xp+2) 2 + (yp-1/2) 2 – R 2 PnewE= Pold + 2xp + 3

Nếu chọn SE, MnewSE(xp+2,yp-3/2)

PnewE=(xp+2) 2 + (yp-3/2) 2 – R 2 PnewE= Pold + 2(xp - yp) + 5

Hình 3 Ví dụ thuật toán midpoint

 Thuật toán tô màu theo dòng quét (Scanline Fill Algorithm):

Chức năng: Tô màu các đa giác hoặc hình đa giác bằng cách quét từng dòng của hình ảnh. Ý tưởng: Xác định các cạnh của đa giác và sau đó quét từng dòng của hình ảnh Khi quét qua mỗi dòng, thuật toán tô màu các vùng liên tục bị giới hạn bởi các cạnh của đa giác.

Hình 2 Ví dụ giải thuật tô màu các đối tượng

 Giải thuật cắt xén vùng

Duyệt lần lượt (theo chiều kim đồng hồ) các cạnh đa giác

Nếu đỉnh duyệt xuất phát từ trong cửa sổ theo cạnh đa giác đi ra ngoài cửa sổ: lưu trữ giao của cạnh đa giác với biên cửa sổ

Nếu đường đi từ ngoài vào trong cửa sổ: lưu trữ đỉnh đa giác và giao điểm Thí dụ xét hai đỉnh đa giác S và P:

Hình 3 Ví dụ giải thuật cắt xén vùng

 Thuật toán tô màu lan truyền (Flood Fill Algorithm):

Chức năng: Tô màu một vùng liên tục trong hình ảnh bắt đầu từ một điểm xuất phát. Ý tưởng: Sử dụng phép lan truyền để mở rộng việc tô màu từ điểm bắt đầu sang các điểm lân cận Thuật toán này duyệt qua các điểm kề nhau và tô màu chúng nếu chúng thuộc vùng cần tô màu và chưa được tô.

 Các thuật toán biến đổi hình học (Transformation Algorithms):

Chức năng: Thay đổi kích thước, hình dạng và vị trí của các đối tượng đồ họa. Ý tưởng: Áp dụng các phép biến đổi toán học để di chuyển, xoay, co giãn hoặc đối xứng các đối tượng trên màn hình Các phép biến đổi này được áp dụng trên tọa độ của các điểm của đối tượng.

Ứng dụng của đồ họa máy tính

Đồ họa máy tính đã có sự ảnh hưởng mạnh mẽ và đa dạng trong nhiều khía cạnh của cuộc sống và ngành công nghiệp Dưới đây là một số ứng dụng quan trọng:

 Đồ họa 2D Công nghệ: Đồ họa raster: Sử dụng mạng lưới các điểm ảnh (pixel) để tạo hình ảnh Ưu điểm: dễ chỉnh sửa, phù hợp cho ảnh chụp và ảnh vẽ Nhược điểm: hình ảnh bị vỡ khi phóng to. Đồ họa vector: Sử dụng các đường thẳng, đường cong và hình dạng toán học để tạo hình ảnh Ưu điểm: có thể phóng to thu nhỏ mà không bị vỡ ảnh, tệp tin nhỏ gọn Nhược điểm: phức tạp hơn trong việc chỉnh sửa so với đồ họa raster.

Adobe Photoshop: Chỉnh sửa ảnh raster phổ biến, cung cấp nhiều công cụ để chỉnh sửa, tô vẽ, và tạo hiệu ứng

Adobe Illustrator: Chỉnh sửa ảnh vector mạnh mẽ, cho phép tạo logo, biểu tượng, minh họa và đồ họa thông.

GIMP: Phần mềm chỉnh sửa ảnh miễn phí và mã nguồn mở, có chức năng tương tự như Photoshop.

Inkscape: Phần mềm chỉnh sửa ảnh vector miễn phí và mã nguồn mở, có chức năng tương tự như Illustrator. Ứng dụng:

1.Thiết kế đồ họa: logo, banner, poster, infographic, v.v.

2.Chỉnh sửa ảnh: chỉnh sửa ảnh chụp, ghép ảnh, xóa phông nền, v.v.

3.Vẽ tranh kỹ thuật số: sáng tạo tranh vẽ, minh họa, truyện tranh, v.v.

4.Thiết kế giao diện người dùng: giao diện web, ứng dụng di động, phần mềm, v.v.

Mô hình 3D: Biểu diễn các đối tượng 3D bằng các điểm, đường thẳng, mặt và kết cấu.

Phân cảnh 3D: Sắp xếp các đối tượng 3D trong không gian ảo, bao gồm ánh sáng, camera và hiệu ứng.

Kết xuất 3D: Chuyển đổi mô hình 3D và phân cảnh 3D thành hình ảnh hoặc video

Autodesk Maya: Phần mềm mô hình, hoạt hình và render 3D chuyên nghiệp, được sử dụng trong phim ảnh, trò chơi điện tử và hiệu ứng hình ảnh.

Blender: Phần mềm mô hình, hoạt hình và render 3D miễn phí và mã nguồn mở, có chức năng tương tự như Maya.

Cinema 4D: Phần mềm mô hình, hoạt hình và render 3D dễ sử dụng, phù hợp cho người mới bắt đầu.

Unreal Engine: Công cụ phát triển trò chơi 3D mạnh mẽ, cung cấp môi trường hoàn chỉnh để tạo ra các trò chơi, trải nghiệm thực tế ảo và ứng dụng tương tác. Ứng dụng:

 Phim ảnh: Tạo hiệu ứng hình ảnh, mô phỏng môi trường, nhân vật 3D cho phim ảnh.

 Trò chơi điện tử: Thiết kế thế giới trò chơi, nhân vật, vật phẩm và hiệu ứng.

 Kiến trúc: Thiết kế mô hình 3D cho tòa nhà, nội thất và cảnh quan.

 Kỹ thuật: Mô phỏng sản phẩm, quy trình sản xuất và đào tạo kỹ thuật.

 Y tế: Hình ảnh y tế 3D, mô phỏng phẫu thuật và lập kế hoạch điều trị.

(CAD - Computer-Aided Design) - Đồ họa máy tính đã tạo ra một sự cách mạng trong việc thiết kế và mô phỏng sản phẩm Nó cho phép các kỹ sư và nhà thiết kế tạo ra mô hình 3D chính xác, giúp cải thiện hiệu suất và chất lượng sản phẩm.

 Giáo dục và đào tạo

Trong lĩnh vực giáo dục, đồ họa máy tính cung cấp một công cụ mạnh mẽ để giảng dạy và học tập Nó tạo ra các hình ảnh và video trực quan để giúp học sinh và sinh viên hiểu các khái niệm phức tạp dễ dàng hơn.

 Hỗ trợ biểu diễn thông tin Đồ họa máy tính giúp biểu diễn thông tin một cách sinh động và hấp dẫn Chúng giúp người trình bày truyền đạt thông tin một cách rõ ràng và hiệu quả hơn thông qua các biểu đồ, sơ đồ và infographics.

 Lĩnh vực giải trí và nghệ thuật

Trong lĩnh vực giải trí, đồ họa máy tính được sử dụng rộng rãi trong trò chơi điện tử để tạo ra môi trường sống động và hấp dẫn Nó cũng được áp dụng trong sản xuất phim hoạt hình và video đồ họa quảng cáo.

 Giao diện đồ họa Đồ họa máy tính thường được sử dụng để thiết kế giao diện người dùng (UI) và giao diện trải nghiệm người dùng (UX) Chúng tạo ra các hiệu ứng động và trải nghiệm tương tác hấp dẫn trên các ứng dụng, trang web và sản phẩm số.

Một số ví dụ của ứng dụng kỹ thuật đồ hoạ:

Thiết kế sản phẩm đồ họa 3D với openGL

Xây dựng ý tưởng thiết kế

Trong thế giới ngày nay, góc học tập không chỉ là nơi để nghỉ ngơi mà còn là nơi thể hiện phong cách và cá nhân hóa không gian riêng của mỗi người Với sự phát triển của công nghệ và sự sáng tạo trong thiết kế, chúng ta có cơ hội biến những ý tưởng tưởng chừng không thể thành hiện thực Nhóm chọn đề tài thiết kế góc học tập với mục tiêu tạo ra một không gian học tập và làm việc lý tưởng, phản ánh cá nhân và thúc đẩy sự thoải mái và hạnh phúc của người sử dụng.

Trong đề tài này bao gồm:

Vẽ các đối tượng 3D với openGL

#include void initialize(void); void display(void); void reshape(int w, int h); void keyboard(unsigned char key, int x, int y); void idle(void); void setLight0(bool flag); void setLight1(bool flag); void setLight2(bool flag);

GLfloat light_spc2[] = { 1.0, 1.0, 0, 1.0 }; bool RoomLight = true; bool Computer = false; bool ChristmasTree = false; int ChristmasTreeAng = 0; bool ChristmasTreeLight = false; bool ChristmasTreeJumpUp = true; float ChristmasTreeJumpDis = 0; bool CeilingLight = false; bool Mouse = false; bool MouseEyeBigger = true; float MouseEyeScale = 1.0; float MouseTrace[] = { 0,0,0 }; void setLight0(bool flag) { glLightfv(GL_LIGHT0, GL_POSITION, light_pos0); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light_dir0); glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, light_cutoff0); glLightfv(GL_LIGHT0, GL_AMBIENT, light_amb0); glLightfv(GL_LIGHT0, GL_DIFFUSE, light_dif0); glLightfv(GL_LIGHT0, GL_SPECULAR, light_spc0); if (flag) glEnable(GL_LIGHT0); else glDisable(GL_LIGHT0);

} void setLight1(bool flag) { glLightfv(GL_LIGHT1, GL_POSITION, light_pos1); glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, light_dir1); glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, light_cutoff1); glLightfv(GL_LIGHT1, GL_AMBIENT, light_amb1); glLightfv(GL_LIGHT1, GL_DIFFUSE, light_dif1); glLightfv(GL_LIGHT1, GL_SPECULAR, light_spc1); if (flag) glEnable(GL_LIGHT1); else glDisable(GL_LIGHT1);

} void setLight2(bool flag) { glLightfv(GL_LIGHT2, GL_POSITION, light_pos2); glLightfv(GL_LIGHT2, GL_SPOT_DIRECTION, light_dir2); glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, light_cutoff2); glLightfv(GL_LIGHT2, GL_AMBIENT, light_amb2); glLightfv(GL_LIGHT2, GL_DIFFUSE, light_dif2); glLightfv(GL_LIGHT2, GL_SPECULAR, light_spc2); if (flag) glEnable(GL_LIGHT2); else glDisable(GL_LIGHT2);

} void initialize(void) { glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); glEnable(GL_NORMALIZE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

} void display(void) // Here's Where We Do All The Drawing { setLight0(RoomLight); setLight1(ChristmasTreeLight); setLight2(CeilingLight); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity();

//back wall glColor3f(0.6, 1, 1); glMaterialfv(GL_FRONT, GL_AMBIENT, matSkyBlue); glMaterialfv(GL_FRONT, GL_DIFFUSE, matSkyBlue); glMaterialfv(GL_FRONT, GL_SPECULAR, matSkyBlue); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glBegin(GL_QUADS); glVertex3f(10, 10, -20); glVertex3f(-10, 10, -20); glVertex3f(-10, -10, -20); glVertex3f(10, -10, -20); glEnd();

//top wall glColor3f(0.9, 0.8, 0.7); glMaterialfv(GL_FRONT, GL_AMBIENT, matWhite); glMaterialfv(GL_FRONT, GL_DIFFUSE, matWhite); glMaterialfv(GL_FRONT, GL_SPECULAR, matWhite); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glBegin(GL_QUADS); glVertex3f(10, 10, -20); glVertex3f(10, 10, 0); glVertex3f(-10, 10, 0); glVertex3f(-10, 10, -20); glEnd();

//left wall glColor3f(0.6, 1, 1); glMaterialfv(GL_FRONT, GL_AMBIENT, matSkyBlue); glMaterialfv(GL_FRONT, GL_DIFFUSE, matSkyBlue); glMaterialfv(GL_FRONT, GL_SPECULAR, matSkyBlue); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glBegin(GL_QUADS); glVertex3f(-10, 10, -20); glVertex3f(-10, 10, 0); glVertex3f(-10, -10, 0); glVertex3f(-10, -10, -20); glEnd();

//bottom wall glColor3f(0.5, 0.45, 0.33); glMaterialfv(GL_FRONT, GL_AMBIENT, matBlue); glMaterialfv(GL_FRONT, GL_DIFFUSE, matBlue); glMaterialfv(GL_FRONT, GL_SPECULAR, matBlack); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glBegin(GL_QUADS); glVertex3f(-10, -10, -20); glVertex3f(-10, -10, 0); glVertex3f(10, -10, 0); glVertex3f(10, -10, -20); glEnd();

//right wall glColor3f(0.6, 1, 1); glMaterialfv(GL_FRONT, GL_AMBIENT, matSkyBlue); glMaterialfv(GL_FRONT, GL_DIFFUSE, matSkyBlue); glMaterialfv(GL_FRONT, GL_SPECULAR, matSkyBlue); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glBegin(GL_QUADS); glVertex3f(10, -10, -20); glVertex3f(10, -10, 0); glVertex3f(10, 10, 0); glVertex3f(10, 10, -20); glEnd();

//Bed glColor3f(1, 0.8, 0.2); glMaterialfv(GL_FRONT, GL_AMBIENT, matBrown); glMaterialfv(GL_FRONT, GL_DIFFUSE, matBrown); glMaterialfv(GL_FRONT, GL_SPECULAR, matWhite); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glPushMatrix(); glTranslatef(-6, -6, -19.5); glScalef(8, 8, 1); glutSolidCube(1); glPopMatrix(); glPushMatrix(); glTranslatef(-6, -7, -11.5); glScalef(8, 1, 16); glutSolidCube(1); glPopMatrix(); glPushMatrix(); glTranslatef(-6, -8.5, -4); glScalef(8, 3, 1); glutSolidCube(1); glPopMatrix();

//Bed mattress glPushMatrix(); glColor3f(1, 0.7, 0.7); glMaterialfv(GL_FRONT, GL_AMBIENT, matPink); glMaterialfv(GL_FRONT, GL_DIFFUSE, matPink); glMaterialfv(GL_FRONT, GL_SPECULAR, matWhite); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glTranslatef(-6, -6, -11.5); glScalef(8, 2, 16); glutSolidCube(1); glPopMatrix();

//cabin glColor3f(1, 0.8, 0.1); glMaterialfv(GL_FRONT, GL_AMBIENT, matBrown); glMaterialfv(GL_FRONT, GL_DIFFUSE, matBrown); glMaterialfv(GL_FRONT, GL_SPECULAR, matBrown); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matGold); glPushMatrix(); glTranslatef(6, -10, -18); glScalef(8, 10, 4); glutSolidCube(1); glPopMatrix();

//computer //bottom glColor3f(0, 0, 0); glPushMatrix(); glTranslatef(6, -5, -18); glRotatef(0, 0, 1, 0); glScalef(1, 0.1, 0.8); glutSolidCube(1); glPopMatrix();

//neck glPushMatrix(); glTranslatef(6, -4.9, -18); glRotatef(0, 0, 1, 0); glScalef(0.1, 0.8, 0.1); glutSolidCube(1); glPopMatrix();

//screen glPushMatrix(); glMaterialfv(GL_FRONT, GL_AMBIENT, matYellow); glMaterialfv(GL_FRONT, GL_DIFFUSE, matYellow); glMaterialfv(GL_FRONT, GL_SPECULAR, matWhite); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); if (Computer) glMaterialfv(GL_FRONT, GL_EMISSION, matBlue); glTranslatef(6, -3.6, -18); glRotatef(0, 0, 1, 0); glScalef(3, 1.8, 0.1); glutSolidCube(1); glPopMatrix();

//Brown desk glColor3f(1, 0.6, 0.3); glMaterialfv(GL_FRONT, GL_AMBIENT, matBrown); glMaterialfv(GL_FRONT, GL_DIFFUSE, matBrown); glMaterialfv(GL_FRONT, GL_SPECULAR, matWhite); glMaterialfv(GL_FRONT, GL_SHININESS, matShininess); glMaterialfv(GL_FRONT, GL_EMISSION, matBlack); glPushMatrix(); glTranslatef(8, -4.5, -6); glScalef(4, 1, 12); glutSolidCube(1); glPopMatrix(); glPushMatrix(); glTranslatef(9.5, -7, -6); glScalef(1, 6, 12); glutSolidCube(1); glPopMatrix();

Ngày đăng: 11/07/2024, 15:52

HÌNH ẢNH LIÊN QUAN

Hình 2. Kỹ thuật đồ họa Vector - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 2. Kỹ thuật đồ họa Vector (Trang 6)
Hình 3. Kỹ thuật đồ họa 3D - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 3. Kỹ thuật đồ họa 3D (Trang 7)
Hình 4. Kỹ thuật đồ họa Texture Mapping - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 4. Kỹ thuật đồ họa Texture Mapping (Trang 8)
Hình 5. Kỹ thuật đồ họa Render - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 5. Kỹ thuật đồ họa Render (Trang 9)
Hình 1 Ví dụ thuật toán DDA - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 1 Ví dụ thuật toán DDA (Trang 11)
Hình 2. Ví dụ giải thuật Bresenham - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 2. Ví dụ giải thuật Bresenham (Trang 11)
Hình 3. Ví dụ thuật toán midpoint - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 3. Ví dụ thuật toán midpoint (Trang 13)
Hình 2 Ví dụ giải thuật tô màu các đối tượng - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 2 Ví dụ giải thuật tô màu các đối tượng (Trang 14)
Hình 3 Ví dụ giải thuật cắt xén vùng - kĩ thuật đồ họa máy tính đề tài 19 thiết kế góc học tập
Hình 3 Ví dụ giải thuật cắt xén vùng (Trang 14)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w