Python cài đặt OpenGL

OpenGL là một thư viện đồ họa được hỗ trợ trên Mac, Windows và Linux. Mặc dù X-Plane đã chuyển sang sử dụng Vulkan/Metal làm thư viện đồ họa cơ bản, OpenGL vẫn được hỗ trợ để sử dụng bởi các plugin

Để sử dụng OpenGL với python, bạn sử dụng mô-đun python OpenGL, cung cấp giao diện giữa python và thư viện OpenGL của hệ thống. Vì mô-đun này không được cài đặt tự động bởi python, các nhà phát triển plugin nên bao gồm một kiểm tra với thông báo lỗi hữu ích, có thể trỏ đến trang này để giúp người dùng. [Gợi ý xem bên dưới. ]

Cài đặt OpenGL

OpenGL đã có trên máy tính của bạn, điều bạn thực sự muốn làm là cài đặt gói python pyopengl. [“OpenGL” là mô-đun python đi kèm với gói “pyopengl”. ]

Cài đặt gói pyopengl

Bạn sẽ cần cài đặt pyopengl vào phiên bản python đang được XPPython3 sử dụng. Cách dễ nhất để thực hiện việc này là sử dụng “Trình cài đặt gói Pip” đi kèm với XPPython3. Chọn mục menu đó trong khi chạy X-Plane. Xem Sử dụng PIP .

Bạn sẽ cần cài đặt gói pyopengl

Đang xác minh cài đặt

Giả sử pyopengl được cài đặt đúng cách, bạn có thể nhanh chóng xác minh thành công bằng cách chạy plugin đơn giản

import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
0 được tìm thấy trong thư mục
import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
1. Sao chép tệp lên đến
import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
2 và khởi động lại X-Plane. Khi thành công, bạn sẽ thấy một cửa sổ động

Nếu bạn không nhìn thấy cửa sổ ngay lập tức, hãy kiểm tra nhật ký

/
└─── Resources/
     └─── plugins/
          ├─── XPPython3/
          └─── PythonPlugins/
               ├─── PI_OpenGL.py  ❮══════╗
               └─── samples/             ║
                    └─── PI_OpenGL.py ❯══╝

Ghi chú

Các phiên bản cũ hơn của python trên máy Mac có lỗi không tìm được thư viện OpenGL. Giải pháp tốt nhất là nâng cấp python lên ít nhất là phiên bản 3. 11. 0

Lập trình OpenGL

Tôi không phải là chuyên gia về OpenGL, vì vậy bạn tự làm. Điều quan trọng là bạn sẽ vẽ trong DrawCallback của cửa sổ ["cửa sổ" có thể trong suốt và không yêu cầu trang trí]. Sau đó, mỗi cuộc gọi bạn sẽ

import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]

Gợi ý dành cho nhà phát triển

Bởi vì rất có thể người dùng plugin của bạn chưa cài đặt mô-đun pyopengl, nên bạn nên xác minh quá trình nhập của mình, thực hiện thao tác như

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng thư viện PyOpenGL trong Python. OpenGL là một thư viện đồ họa được hỗ trợ bởi nhiều nền tảng bao gồm Windows, Linux và MacOS, đồng thời cũng có sẵn để sử dụng trong nhiều ngôn ngữ khác;

OpenGL, so với các thư viện đồ họa tương tự khác, khá đơn giản. Chúng ta sẽ bắt đầu với việc thiết lập nó trên hệ thống của mình, tiếp theo là viết một ví dụ đơn giản minh họa việc sử dụng thư viện

Cài đặt

Cách dễ nhất để cài đặt OpenGL bằng Python là thông qua trình quản lý gói pip. Nếu bạn đã cài đặt pip trong hệ thống của mình, hãy chạy lệnh sau để tải xuống và cài đặt OpenGL

$ pip install PyOpenGL PyOpenGL_accelerate

Tôi khuyên bạn nên sao chép lệnh trên để tránh lỗi chính tả

Khi lệnh này kết thúc thực thi, nếu quá trình cài đặt thành công, bạn sẽ nhận được đầu ra sau ở cuối

Successfully installed PyOpenGL-3.1.0 PyOpenGL-accelerate-3.1.0

Nếu điều này không hoạt động, bạn cũng có thể tải xuống thủ công. Đối với điều đó, liên kết này, cuộn xuống tiêu đề 'tải xuống và cài đặt' và tải xuống tất cả các tệp ở đó. Sau đó, điều hướng đến thư mục mà bạn đã tải xuống các tệp đó và chạy lệnh sau trong thiết bị đầu cuối hoặc dấu nhắc lệnh

$ python setup.py

Cần phải đề cập rằng bạn yêu cầu Visual C++ 14. 0 được cài đặt trên hệ thống của bạn để hoạt động với các thư viện OpenGL trong Python

Bây giờ chúng ta đã cài đặt thành công OpenGL trên hệ thống của mình, hãy bắt tay vào làm với nó

Bài tập mã hóa

Điều đầu tiên chúng ta cần làm để sử dụng OpenGL trong mã của mình là nhập nó. Để làm điều đó, hãy chạy lệnh sau

import OpenGL

Trước khi chúng tôi tiếp tục, có một vài thư viện khác mà bạn cần nhập bất cứ khi nào bạn định sử dụng thư viện này trong chương trình của mình. Dưới đây là mã cho những lần nhập

Bây giờ chúng ta đã hoàn thành các thao tác nhập cần thiết, trước tiên hãy tạo một cửa sổ trong đó đồ họa của chúng ta sẽ được hiển thị. Mã cho điều đó được đưa ra bên dưới, cùng với lời giải thích của nó trong các bình luận

Sao chép phần nhập ở trên, cũng như mã này trong một tệp python [. py] và thực thi nó. Bạn sẽ thấy một màn hình kích thước hình vuông màu trắng bật lên. Bây giờ, nếu chúng ta muốn vẽ bất kỳ hình dạng nào hoặc tạo bất kỳ loại đồ họa nào khác, chúng ta cần thực hiện điều đó trong chức năng "showScreen" của mình

Bây giờ chúng ta hãy thử tạo một hình vuông bằng OpenGL, nhưng trước khi thực hiện, chúng ta cần hiểu hệ tọa độ mà OpenGL tuân theo

Điểm [0,0] ở dưới cùng bên trái cửa sổ của bạn, nếu bạn đi lên từ đó, bạn sẽ di chuyển dọc theo trục y và nếu bạn đi từ đó sang phải, bạn sẽ di chuyển dọc theo trục x. Vì vậy, điểm trên cùng bên trái của cửa sổ của bạn sẽ là [0, 500], trên cùng bên phải sẽ là [500, 500], dưới cùng bên phải sẽ là [500, 0]

Ghi chú. Chúng tôi đang nói về cửa sổ mà chúng tôi đã tạo ở trên, có kích thước 500 x 500 trong ví dụ của chúng tôi chứ không phải toàn màn hình máy tính của bạn

Bây giờ chúng ta đã giải quyết được vấn đề đó, hãy viết mã một hình vuông. Lời giải thích cho mã có thể được tìm thấy trong các ý kiến

Chạy đoạn mã trên sẽ vẽ một hình vuông, nhưng hình vuông đó sẽ không hiển thị vì màu của nó sẽ giống với màu của cửa sổ, vì vậy chúng tôi cũng cần gán cho nó một màu khác, vì vậy chúng tôi sẽ thực hiện một số thay đổi trong . e. chức năng

import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
3. Thêm dòng sau vào bên dưới câu lệnh
import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
4 và bên trên câu lệnh
import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
5

Tuy nhiên, mã của chúng tôi vẫn chưa hoàn thành. Những gì nó hiện đang làm là vẽ hình vuông một lần, sau đó xóa lại màn hình. chúng tôi không muốn điều đó. Trên thực tế, chúng ta thậm chí sẽ không thể phát hiện ra thời điểm nó thực sự vẽ hình vuông vì nó sẽ xuất hiện và biến mất trong tích tắc. Hãy viết một chức năng khác để tránh điều này

Gọi hàm lặp này trong "Phần 2" của mã ở trên. Thêm nó vào bên dưới

import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
4 và bên trên câu lệnh
import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
7 trong hàm
import OpenGL.GL as GL

def drawWindowCallback[...]:
    xp.setGraphicsState[...]  # So it's in a known state
    GL.glBegin[...]
    do_stuff[]
    GL.glEnd[]
3

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Bây giờ chúng ta hãy biên dịch tất cả những thứ này thành một tệp mã duy nhất để không có sự mơ hồ

from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *

w,h= 500,500
def square[]:
    glBegin[GL_QUADS]
    glVertex2f[100, 100]
    glVertex2f[200, 100]
    glVertex2f[200, 200]
    glVertex2f[100, 200]
    glEnd[]

def iterate[]:
    glViewport[0, 0, 500, 500]
    glMatrixMode[GL_PROJECTION]
    glLoadIdentity[]
    glOrtho[0.0, 500, 0.0, 500, 0.0, 1.0]
    glMatrixMode [GL_MODELVIEW]
    glLoadIdentity[]

def showScreen[]:
    glClear[GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT]
    glLoadIdentity[]
    iterate[]
    glColor3f[1.0, 0.0, 3.0]
    square[]
    glutSwapBuffers[]

glutInit[]
glutInitDisplayMode[GLUT_RGBA]
glutInitWindowSize[500, 500]
glutInitWindowPosition[0, 0]
wind = glutCreateWindow["OpenGL Coding Practice"]
glutDisplayFunc[showScreen]
glutIdleFunc[showScreen]
glutMainLoop[]

Khi bạn chạy nó, một cửa sổ sẽ xuất hiện với một hộp vuông màu hồng trong đó

đầu ra

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về OpenGL, cách tải xuống và cài đặt nó, tiếp theo là sử dụng nó trong một chương trình ví dụ ngắn. Trong ví dụ này, chúng ta cũng đã thực hành tạo một hình cơ bản bằng OpenGL, giúp chúng ta hiểu sâu hơn về một số lệnh gọi hàm phức tạp cần được thực hiện bất cứ khi nào chúng ta cần vẽ một thứ gì đó bằng thư viện này. Tóm lại, OpenGL rất hữu ích và ngày càng phức tạp hơn khi chúng ta tìm hiểu sâu hơn về nó

Làm cách nào để nhập OpenGL bằng Python?

Cài đặt .
Tạo một thư mục mới và mở nó. mkdir opengl-learning && cd opengl-learning
Tạo môi trường ảo. [Chỉ để được an toàn. ] python3 -m venv opengl-tut
Kích hoạt môi trường ảo. nguồn opengl-tut/bin/kích hoạt
Cài đặt các thư viện. cài đặt pip PyOpenGL PyOpenGL_accelerate

Có OpenGL trong Python 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.

Làm cách nào để cài đặt PyOpenGL trong cmd?

Mở dấu nhắc lệnh [cmd. exe] với tư cách quản trị viên. Thay đổi thư mục tải xuống và cài đặt các gói bằng pip install packagename. whl . Cảm ơn bạn.

Làm cách nào để cài đặt Python miễn phí?

Trên Windows. truy cập http. //freeglut. nguồn. net/ để có được một freeglut. tập tin dll. Nó được bao gồm trong bất kỳ bản tải xuống nhị phân Windows nào. Đặt tệp DLL bên cạnh tập lệnh Python của bạn hoặc cài đặt nó ở đâu đó trong PATH của bạn để cho phép mọi tập lệnh sử dụng nó . ”

Chủ Đề