Lượt xem bài viết. 22.216 Show
Phát triển kiến thức vượt trội về kết xuất phần cứng vertex shader của đồ họa 3DTìm hiểu OpenGL với Python Bạn sẽ học được gì
Yêu cầu
Sự miêu tảTại sao bạn nên học OpenGL? . (b) Kiến thức về OpenGL sẽ tiết lộ cho bạn những gì diễn ra trong nền tảng của các công cụ đồ họa và trò chơi khác, giúp bạn có kỹ năng xử lý sự cố và giải quyết vấn đề vượt trội trong các ứng dụng khác (c) Nó sẽ nâng cao hiểu biết của bạn về toán học 3D và Được thiết kế cho sinh viên trình độ TRUNG CẤP có kiến thức lập trình làm việc, nội dung trong khóa học này sẽ hướng dẫn bạn từng bước thiết lập Python, Pygame và PyOpenG cũng như phát triển công cụ đồ họa 3D tổng quát được thiết kế nhanh chóng (như Bạn sẽ tìm hiểu về
Mọi người đang nói gì về các khóa học của Penny
Khóa học này tập trung vào việc cung cấp cho sinh viên trải nghiệm thực hành mã hóa một công cụ đồ họa 3D chung bằng PyOpenGL, đồng thời cung cấp phần giới thiệu dễ dàng về Python cho lập trình viên trung cấp Khóa học này dành cho ai
Được tạo bởi Penny de Byl, Penny @Holistic3D. com Cập nhật lần cuối 04/2022 Tiếng Anh Tiếng Anh [Tự động]
Kích thước. 6. 72GB TẢI HƯỚNG DẪN https. //www. demy. com/course/learning-opengl-with-python-for-graphics-and-games/ Gần đây, chúng tôi đã nhận được doanh thu rất thấp. Chủ yếu là do nhấp chuột không hợp lệ (Những người nhấp vào quảng cáo của chúng tôi nhưng không tương tác với các trang quảng cáo. Google biết điều này và sau đó cắt giảm doanh thu của chúng tôi). Chúng tôi cũng nhận được nhiều phản hồi về việc "quá nhiều quảng cáo" nhưng mong các bạn thông cảm rằng bạn càng tương tác với trang web và quảng cáo nhiều thì chúng tôi càng có thể phục vụ các bạn tốt hơn. Cảm ơn bạn đã phản hồi của bạn tho Đồ họa đã là một phần quan trọng của máy tính trong nhiều thập kỷ nay. Mọi thứ chúng tôi sử dụng trong máy tính và hầu hết mọi ứng dụng chúng tôi sử dụng đều sử dụng đồ họa. Python cũng là ngôn ngữ lập trình cho phép tạo các chương trình liên quan đến đồ họa. Một trong những thư viện quan trọng nhất mà Python sử dụng để phát triển các chương trình liên quan đến đồ họa là PyOpenGL Nó sử dụng khái niệm OpenGL để hỗ trợ nhiều nền tảng như Linux, Windows và macOS. Trong bài viết này, bạn sẽ tìm hiểu về cách sử dụng thư viện OpenGL như PyOpenGL để triển khai đồ họa trong chương trình Python OpenGL là gì?OpenGL là viết tắt của Open Graphics Library, là thư viện lập trình đồ họa đa nền tảng. Nó được hỗ trợ bởi nhiều ngôn ngữ lập trình và giao diện lập trình ứng dụng (API) của nó giúp hiển thị đồ họa vector 2D và 3D. Thư viện đồ họa này tương tác trực tiếp với bộ xử lý đồ họa (GPU) để hiển thị đồ họa vectơ và đồ họa tăng tốc phần cứng. OpenGL đơn giản hơn nhiều so với các thư viện đồ họa khác. Không có gì khó chịu, bây giờ chúng ta hãy bắt đầu triển khai thư viện từ một ví dụ cơ bản Cài đặt thư viện OpenGL Để cài đặt OpenGL lần đầu tiên trong chương trình Python của bạn, bạn phải sử dụng pip (gói) Lệnh cài đặt thư viện PyOpenGL
Khi lệnh này cài đặt thư viện PyOpenGL cho bạn, bạn sẽ nhận được một thông báo
Bây giờ chúng ta hãy viết chương trình để kiểm tra xem các thành phần OpenGL có hoạt động tốt hay không
PyOpenGL hoạt động như thế nào?PyOpenGL hoạt động như một thư viện ràng buộc cho chương trình Python. Nó liên kết các giá trị của nó với thư viện GLUT và cho phép nó chạy trên nhiều hệ điều hành như Windows, Linux và Mac OS X. Nó tương tác với Bộ xử lý đồ họa (GPU) để hiển thị hình ảnh vectơ cung cấp cho chúng tôi hình ảnh hoặc hình rõ ràng Các thành phần của PyOpenGL và các chức năng của nóĐiều đầu tiên, chúng ta cần làm là tạo một cửa sổ với các thuộc tính sau
Tạo hai điểm với tọa độ đã cho làm tham số
Sử dụng PyOpenGlut để vẽ hình tam giácChương trình
đầu ra Giải trình Trước tiên, bạn sẽ phải nhập ba thư viện khác nhau bằng cách sử dụng từ khóa nhập. Đây là glfw, NumPy và OpenGL. GL. Biểu tượng * trong câu lệnh nhập xác định mọi thứ. Một điều quan trọng khác mà bạn sẽ nhận thấy là chúng tôi đã nhập thư viện NumPy Điều này là do chúng tôi phải làm việc, chúng tôi NumPy trong PyOpenGL vì PyopenGL không thể hoạt động với các danh sách Python đơn giản. Theo cách mà mọi họa sĩ yêu cầu một khung vẽ để vẽ bất kỳ bản phác thảo nào, chương trình Python của bạn cũng yêu cầu tạo một cửa sổ trong đó bạn sẽ vẽ đồ họa 2D hoặc 3D. Bạn sẽ phải sử dụng glfw. init() để khởi tạo. Không khởi tạo, lập trình viên sẽ không thể truy cập các chức năng của nó Tiếp đến là glfw. hàm tạo_window(). Nó giúp tạo ra một cửa sổ. Nó sẽ lấy nhiều đối số (chiều rộng, chiều cao và tên của cửa sổ) làm đầu vào và trả về đầu ra tương ứng. gfw. set_window_pos() giúp thiết lập vị trí cụ thể của cửa sổ trong luồng đầu ra (màn hình) của bạn. Phương pháp này sẽ chấp nhận 3 đối số Đây là trục x, trục y và tên cửa sổ. Hàm gfw. make_context_current() sẽ chấp nhận phần mở rộng cửa sổ liên quan đến ngữ cảnh hiện tại. Giá trị đỉnh sẽ có ba điểm dưới dạng danh sách đại diện cho vị trí x (đỉnh bên trái), y (đỉnh bên phải) và z (đỉnh trên cùng) trên một mặt phẳng Tiếp theo, bạn phải sử dụng chức năng glEnableClientState() để kích hoạt các năng lực phía máy khách. Sau đó, hàm glClearColor(0,0,0,0) sẽ giúp thiết lập màu nền lấy R (đỏ), G (xanh lục), B (xanh dương), A (alpha) làm 4 đối số khác nhau. Cuối cùng, bạn sẽ phải tạo một vòng lặp sẽ thực thi cho đến khi quá trình tạo cửa sổ kết thúc. Ở đây, chúng ta đã làm điều này bằng cách sử dụng hàm while(). Bên trong vòng lặp, chúng tôi sẽ sử dụng glfw. poll_events() sẽ kiểm tra các sự kiện được kích hoạt đối với hệ thống cửa sổ Hàm tiếp theo glClear() sẽ chịu trách nhiệm dọn dẹp màn hình mỗi khi vòng lặp thực thi. Điều này sẽ đảm bảo rằng không có gì trên màn hình trước khi kết xuất đồ họa bằng chương trình Python này. Cuối cùng, hàm glDrawArrays() sẽ đặt đồ họa được vector hóa thành các pixel liên tiếp. Ngoài ra, điều quan trọng là phải kết thúc vòng lặp và tạo đồ họa véc tơ bằng glfw. chấm dứt() Tạo Tam giác hoạt hình với Độ dốc màuChương trình
đầu ra Giải trình Trong chương trình này, chúng tôi cũng áp dụng cách tiếp cận tương tự. Nhưng lần này chúng tôi đã thay đổi kích thước đỉnh. Giá trị đỉnh sẽ có ba điểm dưới dạng danh sách đại diện cho vị trí x (đỉnh bên trái), y (đỉnh bên phải) và z (đỉnh trên cùng) trên một mặt phẳng. 0. 2, -0. 2, 0. 0, 0. 2, -0. 2,0. 0, 0. 0, 0. 2, 0. 0. Sau đó, chúng ta sẽ sử dụng vòng lặp while. Bên trong vòng lặp, chúng tôi sẽ sử dụng glfw. poll_events() phương thức sẽ kiểm tra các sự kiện được kích hoạt cho hệ thống windows. Hàm tiếp theo glClear() sẽ chịu trách nhiệm dọn dẹp màn hình mỗi khi vòng lặp thực thi Điều này sẽ đảm bảo rằng không có gì trên màn hình trước khi kết xuất đồ họa bằng chương trình Python này. Trong vòng lặp while đó, chúng ta phải sử dụng thêm hàm glrotatef() để thực hiện hoạt ảnh xoay. Cuối cùng, hàm glDrawArrays() sẽ đặt đồ họa được vector hóa thành các pixel liên tiếp Sử dụng PyOpenGL cùng với mô-đun pygameCác lập trình viên có thể sử dụng PyOpenGL như một thư viện có thể tương tác với một số lượng lớn các thư viện GUI (bên ngoài) khác của Python. Trong phần này, bạn sẽ sử dụng mô-đun pygame sẽ giúp chúng tôi tạo một khối hoạt hình với sự trợ giúp của thư viện PyOpenGL Chương trình
đầu ra Giải trình Đầu tiên, chúng tôi đã nhập OpenGL. GL và OpenGL. GLU theo sau là thư viện pygame. Vì đây là hình lập phương ba chiều nên ta phải đặt 8 cạnh khác nhau của nó. Đối với điều này, chúng tôi đã chỉ định tất cả 8 đỉnh trong một danh sách và đặt tên cho danh sách đó là "verti". Khi chúng ta xác định các đỉnh, biến "edgez" sẽ lưu trữ cạnh được vẽ giữa các đỉnh đó Chúng tôi bắt đầu với 0, vì đó là cách Python và các ngôn ngữ lập trình khác hiểu hoặc biểu thị các cạnh. Sau đó, chúng ta tạo một hàm Cube(). Bên trong nó, chúng ta phải gọi hàm glBegin(GL_LINES) Nó sẽ thông báo cho OpenGL rằng chúng tôi hiện sẽ ném một số mã vào nó. Sau đó, GL_LINES sẽ hướng dẫn OpenGL cách mã sẽ được xử lý để biểu diễn đường. Điều đó có nghĩa là chúng ta có thể coi mã này là mã vẽ đường. Điều này sẽ thực hiện vòng lặp lồng nhau để tạo và kết nối các đỉnh với các cạnh Bây giờ, chúng ta sẽ định nghĩa hàm main(). Ở đây, trước tiên chúng tôi khởi tạo pygame bằng phương thức init(). Sau đó, chúng ta phải đặt vùng hiển thị (ở đây, 900 x 700). Sau đó, chúng tôi sẽ sử dụng pygame. trưng bày. phương thức set_mode(). Các tham số được sử dụng bên trong thực sự là hằng số. glTranslatef() giúp nhân ma trận hiện tại với ma trận dịch. Bây giờ, chúng tôi sẽ sử dụng mô-đun pygame để thực hiện sự kiện cho đến khi chúng tôi thoát bằng cách sử dụng thoát(). Tiếp theo chúng ta có glRotatef(). Hàm glRotatef() sẽ nhân ma trận hiện tại để biến nó thành ma trận xoay và do đó hoạt ảnh xoay sẽ diễn ra. Nó chấp nhận góc, x, y và z làm tham số Cuối cùng, chúng ta có glClear(), giống như bất kỳ chức năng xóa nào khác để xóa vùng đệm và độ sâu của màn hình. Ở đây chúng ta phải chỉ định các hằng số sẽ yêu cầu OpenGL xóa bộ đệm và độ sâu của màn hình. Sau đó, chúng tôi sẽ gọi pygame. trưng bày. flip() chức năng sẽ cập nhật màn hình của chúng tôi. Cuối cùng, chúng tôi sẽ sử dụng pygame. thời gian. wait() để hiển thị thời gian chờ ngắn và cuối cùng gọi hàm main() để chạy toàn bộ chương trình Phần kết luận Hy vọng, bạn đã hiểu cách chúng ta có thể làm việc với OpenGL từ chương trình Python. Bài viết này đã hướng dẫn bạn tạo hình cũng như chuyển đổi hoạt hình 2D và 3D để giúp bạn hiểu các chức năng khác nhau mà PyOpenGL hỗ trợ trong thư viện của nó Python có tốt cho OpenGL không?Python cũng là ngôn ngữ lập trình cho phép tạo các chương trình liên quan đến đồ họa . Một trong những thư viện quan trọng nhất mà Python sử dụng để phát triển các chương trình liên quan đến đồ họa là PyOpenGL. Nó sử dụng khái niệm OpenGL để hỗ trợ nhiều nền tảng như Linux, Windows và macOS.
Cách tốt nhất để học OpenGL là gì?Tôi nên học OpenGL như thế nào? . Nhưng bạn nên chuyển sang đọc sách sau khi bạn nắm bắt được mọi thứ lần đầu tiên, nếu bạn có thể và muốn. Chúng phải đầy đủ hơn, chính xác hơn và có cấu trúc tốt hơn cho việc học tập chính thức. Tutorials are a great way to start, as they are intended to be the simplest and most hands-on. But you should move to books after you get the first grip on things, if you can and want to. They should be more complete, more accurate, and better structured for formal learning.
Tại sao nên sử dụng OpenGL trong Python?OpenGL là giao diện lập trình ứng dụng (API) đa ngôn ngữ, đa nền tảng để hiển thị đồ họa vector 2D và 3D. API thường được sử dụng để tương tác với đơn vị xử lý đồ họa (GPU), để đạt được kết xuất được tăng tốc phần cứng .
Các tài nguyên tốt nhất để tìm hiểu OpenGL là gì?Tài nguyên hữu ích để học OpenGL
. ShaderToy — Trang web Show and Tell nơi mọi người xuất bản các shader tuyệt vời mà họ đã tạo. Book of Shaders — This is a great resource for learning all about Shaders and the different mathematical functions that can produce different results. ShaderToy — Show and Tell website where people publish awesome shaders that they have made. |